Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
}
}, this);
// Detect global 'use strict' directives
if (parentNode === this.parseTree &&
node instanceof uglifyJs.AST_Directive &&
node.value === 'use strict') {
this.strict = true;
}
if (node instanceof uglifyJs.AST_SimpleStatement &&
node.body instanceof uglifyJs.AST_Call &&
node.body.expression instanceof uglifyJs.AST_Dot &&
node.body.expression.property === 'config' &&
node.body.expression.expression instanceof uglifyJs.AST_SymbolRef &&
node.body.args[0] instanceof uglifyJs.AST_Object &&
(node.body.expression.expression.name === 'require' || node.body.expression.expression.name === 'requirejs')) {
outgoingRelations.push(new AssetGraph.JavaScriptRequireJsConfig({
from: this,
node: node.body.args[0],
parentNode: node.body,
to: new AssetGraph.RequireJsConfig({
parseTree: node.body.args[0].transform(deepCloneTransform)
})
}));
} else if (node instanceof uglifyJs.AST_Var) {
node.definitions.forEach(function (varDefNode) {
if (varDefNode.name.name === 'require' && varDefNode.value instanceof uglifyJs.AST_Object) {
outgoingRelations.push(new AssetGraph.JavaScriptRequireJsConfig({
isRequireVar: true,
from: this,
var angularWalker = new uglifyJs.TreeWalker(function (node) {
var parentNode = angularWalker.parent();
if (node instanceof uglifyJs.AST_Object) {
node.properties.forEach(function (keyValue) {
if (keyValue.key === 'templateUrl' && keyValue.value instanceof uglifyJs.AST_String) {
outgoingRelations.push(new AssetGraph.JavaScriptAngularJsTemplate({
from: this,
to: {
type: 'Html',
url: keyValue.value.value
},
node: keyValue,
parentNode: node
}));
} else if (keyValue.key === 'template' && keyValue.value instanceof uglifyJs.AST_String) {
outgoingRelations.push(new AssetGraph.JavaScriptAngularJsTemplate({
from: this,
to: new AssetGraph.Html({
text: keyValue.value.value