MCPcopy Index your code
hub / github.com/nodejs/node / transformUMDModule

Function transformUMDModule

test/fixtures/snapshot/typescript.js:104500–104565  ·  view source on GitHub ↗

* Transforms a SourceFile into a UMD module. * * @param node The SourceFile node.

(node)

Source from the content-addressed store, hash-verified

104498 * @param node The SourceFile node.
104499 */
104500 function transformUMDModule(node) {
104501 var _a = collectAsynchronousDependencies(node, /*includeNonAmdDependencies*/ false), aliasedModuleNames = _a.aliasedModuleNames, unaliasedModuleNames = _a.unaliasedModuleNames, importAliasNames = _a.importAliasNames;
104502 var moduleName = ts.tryGetModuleNameFromFile(factory, node, host, compilerOptions);
104503 var umdHeader = factory.createFunctionExpression(
104504 /*modifiers*/ undefined,
104505 /*asteriskToken*/ undefined,
104506 /*name*/ undefined,
104507 /*typeParameters*/ undefined, [factory.createParameterDeclaration(/*decorators*/ undefined, /*modifiers*/ undefined, /*dotDotDotToken*/ undefined, "factory")],
104508 /*type*/ undefined, ts.setTextRange(factory.createBlock([
104509 factory.createIfStatement(factory.createLogicalAnd(factory.createTypeCheck(factory.createIdentifier("module"), "object"), factory.createTypeCheck(factory.createPropertyAccessExpression(factory.createIdentifier("module"), "exports"), "object")), factory.createBlock([
104510 factory.createVariableStatement(
104511 /*modifiers*/ undefined, [
104512 factory.createVariableDeclaration("v",
104513 /*exclamationToken*/ undefined,
104514 /*type*/ undefined, factory.createCallExpression(factory.createIdentifier("factory"),
104515 /*typeArguments*/ undefined, [
104516 factory.createIdentifier("require"),
104517 factory.createIdentifier("exports")
104518 ]))
104519 ]),
104520 ts.setEmitFlags(factory.createIfStatement(factory.createStrictInequality(factory.createIdentifier("v"), factory.createIdentifier("undefined")), factory.createExpressionStatement(factory.createAssignment(factory.createPropertyAccessExpression(factory.createIdentifier("module"), "exports"), factory.createIdentifier("v")))), 1 /* EmitFlags.SingleLine */)
104521 ]), factory.createIfStatement(factory.createLogicalAnd(factory.createTypeCheck(factory.createIdentifier("define"), "function"), factory.createPropertyAccessExpression(factory.createIdentifier("define"), "amd")), factory.createBlock([
104522 factory.createExpressionStatement(factory.createCallExpression(factory.createIdentifier("define"),
104523 /*typeArguments*/ undefined, __spreadArray(__spreadArray([], (moduleName ? [moduleName] : []), true), [
104524 factory.createArrayLiteralExpression(__spreadArray(__spreadArray([
104525 factory.createStringLiteral("require"),
104526 factory.createStringLiteral("exports")
104527 ], aliasedModuleNames, true), unaliasedModuleNames, true)),
104528 factory.createIdentifier("factory")
104529 ], false)))
104530 ])))
104531 ],
104532 /*multiLine*/ true),
104533 /*location*/ undefined));
104534 // Create an updated SourceFile:
104535 //
104536 // (function (factory) {
104537 // if (typeof module === "object" && typeof module.exports === "object") {
104538 // var v = factory(require, exports);
104539 // if (v !== undefined) module.exports = v;
104540 // }
104541 // else if (typeof define === 'function' && define.amd) {
104542 // define(["require", "exports"], factory);
104543 // }
104544 // })(function ...)
104545 var updated = factory.updateSourceFile(node, ts.setTextRange(factory.createNodeArray([
104546 factory.createExpressionStatement(factory.createCallExpression(umdHeader,
104547 /*typeArguments*/ undefined, [
104548 // Add the module body function argument:
104549 //
104550 // function (require, exports) ...
104551 factory.createFunctionExpression(
104552 /*modifiers*/ undefined,
104553 /*asteriskToken*/ undefined,
104554 /*name*/ undefined,
104555 /*typeParameters*/ undefined, __spreadArray([
104556 factory.createParameterDeclaration(/*decorators*/ undefined, /*modifiers*/ undefined, /*dotDotDotToken*/ undefined, "require"),
104557 factory.createParameterDeclaration(/*decorators*/ undefined, /*modifiers*/ undefined, /*dotDotDotToken*/ undefined, "exports")

Callers

nothing calls this directly

Tested by

no test coverage detected