MCPcopy
hub / github.com/webpack/webpack / _processResult

Method _processResult

lib/typescript/TypeScriptPlugin.js:169–207  ·  view source on GitHub ↗

* processResult tap body. Returns the input untouched unless this is a * TypeScript module that needs to be transformed. * @param {Result} result loader result tuple * @param {NormalModuleType} module the normal module * @returns {Result} possibly transformed result

(result, module)

Source from the content-addressed store, hash-verified

167 * @returns {Result} possibly transformed result
168 */
169 _processResult(result, module) {
170 if (!JS_MODULE_TYPES.has(module.type)) return result;
171
172 const parser = /** @type {JavascriptParser} */ (module.parser);
173 if (!parser.options.typescript) return result;
174
175 const resource = module.nameForCondition();
176 if (!resource || !isTypeScriptResource(resource)) return result;
177
178 if (TSX_RESOURCE_RE.test(resource)) {
179 throw new ModuleBuildError(new Error(TSX_NOT_SUPPORTED));
180 }
181
182 if (!("stripTypeScriptTypes" in mod)) {
183 throw new ModuleBuildError(new Error(NODE_API_MISSING));
184 }
185
186 const [rawSource, loaderSourceMap, ...rest] = result;
187 const preStripSource = toBomFreeString(rawSource);
188 const strippedSource = stripTypes(preStripSource);
189
190 const needSourceMap = module.useSourceMap || module.useSimpleSourceMap;
191 const stripMap = needSourceMap
192 ? createIdentitySourceMap(module.resource, preStripSource)
193 : undefined;
194
195 const outputSourceMap =
196 stripMap && loaderSourceMap
197 ? composeWithLoaderSourceMap(
198 module.resource,
199 strippedSource,
200 stripMap,
201 preStripSource,
202 loaderSourceMap
203 )
204 : stripMap || loaderSourceMap;
205
206 return [strippedSource, outputSourceMap, ...rest];
207 }
208}
209
210module.exports = TypeScriptPlugin;

Callers 1

applyMethod · 0.95

Calls 8

isTypeScriptResourceFunction · 0.85
toBomFreeStringFunction · 0.85
stripTypesFunction · 0.85
createIdentitySourceMapFunction · 0.85
hasMethod · 0.45
nameForConditionMethod · 0.45
testMethod · 0.45

Tested by

no test coverage detected