* Returns generator. * @template {string} T * @param {T} type type of generator * @param {GeneratorOptions} generatorOptions generator options * @returns {GeneratorByType[T]} generator
(type, generatorOptions = EMPTY_GENERATOR_OPTIONS)
| 1465 | * @returns {GeneratorByType[T]} generator |
| 1466 | */ |
| 1467 | getGenerator(type, generatorOptions = EMPTY_GENERATOR_OPTIONS) { |
| 1468 | let cache = this.generatorCache.get(type); |
| 1469 | |
| 1470 | if (cache === undefined) { |
| 1471 | cache = new WeakMap(); |
| 1472 | this.generatorCache.set(type, cache); |
| 1473 | } |
| 1474 | |
| 1475 | let generator = cache.get(generatorOptions); |
| 1476 | |
| 1477 | if (generator === undefined) { |
| 1478 | generator = this.createGenerator(type, generatorOptions); |
| 1479 | cache.set(generatorOptions, generator); |
| 1480 | } |
| 1481 | |
| 1482 | return /** @type {GeneratorByType[T]} */ (generator); |
| 1483 | } |
| 1484 | |
| 1485 | /** |
| 1486 | * Creates a generator. |
no test coverage detected