MCPcopy Index your code
hub / github.com/ampproject/amphtml / scopeRequire

Function scopeRequire

third_party/react-dates/scope-require.js:22–34  ·  view source on GitHub ↗

* Changes global `require` calls to be referenced from a given global * namespace. e.g. if scopeName is `AMP`, calls will be transformed to * `AMP.require`. * @param {string} src The contents of a JavaScript source file. * @param {string} scopeName The name to prepend to `require` calls. * @ret

(src, scopeName)

Source from the content-addressed store, hash-verified

20 * @return {string} The transformed source code
21 */
22function scopeRequire(src, scopeName) {
23 const ast = rocambole.parse(src);
24 const globals = detectGlobals(ast);
25 const flatGlobals = globals.reduce((acc, g) => acc.concat(g.nodes), []);
26
27 flatGlobals
28 .filter(node => isIdentifier(node) && isRequire(node))
29 .forEach(node =>
30 replaceIdentifier(node.parent, test => test === node, scopeName)
31 );
32
33 return escodegen.generate(ast, {format: {compact: true}});
34}
35
36/**
37 * True if the node is an Identifier node

Callers 1

scope-require.jsFile · 0.85

Calls 8

isIdentifierFunction · 0.85
isRequireFunction · 0.85
replaceIdentifierFunction · 0.85
concatMethod · 0.80
generateMethod · 0.80
parseMethod · 0.45
forEachMethod · 0.45
filterMethod · 0.45

Tested by

no test coverage detected