| | |
| | | /** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */ |
| | | /** @typedef {import("../Entrypoint").EntryOptions} EntryOptions */ |
| | | /** @typedef {import("../NormalModule")} NormalModule */ |
| | | /** @typedef {import("../Parser").ParserState} ParserState */ |
| | | /** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */ |
| | | /** @typedef {import("../javascript/JavascriptParser")} Parser */ |
| | | /** @typedef {import("../javascript/JavascriptParser").JavascriptParserState} JavascriptParserState */ |
| | | /** @typedef {import("../javascript/JavascriptParser").Range} Range */ |
| | | /** @typedef {import("./HarmonyImportDependencyParserPlugin").HarmonySettings} HarmonySettings */ |
| | | |
| | | /** |
| | | * Returns url. |
| | | * @param {NormalModule} module module |
| | | * @returns {string} url |
| | | */ |
| | |
| | | "Worker from worker_threads" |
| | | ]; |
| | | |
| | | /** @type {WeakMap<ParserState, number>} */ |
| | | /** @type {WeakMap<JavascriptParserState, number>} */ |
| | | const workerIndexMap = new WeakMap(); |
| | | |
| | | const PLUGIN_NAME = "WorkerPlugin"; |
| | | |
| | | class WorkerPlugin { |
| | | /** |
| | | * Creates an instance of WorkerPlugin. |
| | | * @param {ChunkLoading=} chunkLoading chunk loading |
| | | * @param {WasmLoading=} wasmLoading wasm loading |
| | | * @param {OutputModule=} module output module |
| | |
| | | } |
| | | |
| | | /** |
| | | * Apply the plugin |
| | | * Applies the plugin by registering its hooks on the compiler. |
| | | * @param {Compiler} compiler the compiler instance |
| | | * @returns {void} |
| | | */ |
| | |
| | | ); |
| | | |
| | | /** |
| | | * Returns parsed. |
| | | * @param {JavascriptParser} parser the parser |
| | | * @param {Expression} expr expression |
| | | * @returns {[string, Range] | void} parsed |
| | |
| | | }; |
| | | |
| | | /** |
| | | * Checks whether this worker plugin is meta url. |
| | | * @param {JavascriptParser} parser the parser |
| | | * @param {MemberExpression} expr expression |
| | | * @returns {boolean} is `import.meta.url` |
| | |
| | | /** @typedef {Record<string, EXPECTED_ANY>} Values */ |
| | | |
| | | /** |
| | | * Parses object expression. |
| | | * @param {JavascriptParser} parser the parser |
| | | * @param {ObjectExpression} expr expression |
| | | * @returns {{ expressions: Record<string, Expression | Pattern>, otherElements: (Property | SpreadElement)[], values: Values, spread: boolean, insertType: "comma" | "single", insertLocation: number }} parsed object |
| | |
| | | }; |
| | | |
| | | /** |
| | | * Processes the provided parser. |
| | | * @param {Parser} parser parser parser |
| | | * @param {JavascriptParserOptions} parserOptions parserOptions |
| | | * @returns {void} |
| | |
| | | ? ["..."] |
| | | : parserOptions.worker; |
| | | /** |
| | | * Returns true when handled. |
| | | * @param {CallExpression} expr expression |
| | | * @returns {boolean | void} true when handled |
| | | */ |
| | |
| | | |
| | | const block = new AsyncDependenciesBlock({ |
| | | name: entryOptions.name, |
| | | circular: false, |
| | | entryOptions: { |
| | | chunkLoading: this._chunkLoading, |
| | | wasmLoading: this._wasmLoading, |
| | |
| | | return true; |
| | | }; |
| | | /** |
| | | * Processes the provided item. |
| | | * @param {string} item item |
| | | */ |
| | | const processItem = (item) => { |