Socket
Socket
Sign inDemoInstall

systemjs-builder

Package Overview
Dependencies
Maintainers
1
Versions
139
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

systemjs-builder - npm Package Compare versions

Comparing version 0.0.0 to 0.0.1

4

compilers/amd.js

@@ -9,3 +9,7 @@ // converts anonymous AMDs into named AMD for the module

// NB need to handle naming the module itself as the last defined
// TODO convert into System.register dynamic form rather
// Turns define(...) into System.register(...)
var match;

@@ -12,0 +16,0 @@

37

compilers/cjs.js

@@ -5,27 +5,24 @@ var path = require('path');

function cjsOutput(name, deps, address, source) {
var dirname = path.dirname(address);
function cjsOutput(name, deps, address, source, baseURL) {
var filename = path.relative(baseURL, address);
var dirname = path.dirname(filename);
return 'System.defined["' + name + '"] = {\n'
+ ' deps: ' + JSON.stringify(deps) + ',\n'
+ ' executingRequire: true,\n'
+ ' execute: function(require, exports, __moduleName) {\n'
+ ' var global = System.global;\n'
+ ' var __define = global.define;\n'
+ ' global.define = undefined;\n'
+ ' var module = { exports: exports };\n'
+ ' var process = System.get("@@nodeProcess");\n'
// + ' var __filename = "' + address + '";\n'
// + ' var __dirname = "' + dirname + '";\n'
+ ' ' + source.replace(/\n/g, '\n ') + '\n'
+ ' global.define = __define;\n'
+ ' return module.exports;\n'
+ ' }\n'
+ '};\n'
return 'System.register("' + name + '", ' + JSON.stringify(deps) + ', true, function(require, exports, __moduleName) {\n'
+ ' var global = System.global;\n'
+ ' var __define = global.define;\n'
+ ' global.define = undefined;\n'
+ ' var module = { exports: exports };\n'
+ ' var process = System.get("@@nodeProcess")["default"];\n'
+ ' var __filename = "' + filename + '";\n'
+ ' var __dirname = "' + dirname + '";\n'
+ ' ' + source.replace(/\n/g, '\n ') + '\n'
+ ' global.define = __define;\n'
+ ' return module.exports;\n'
+ '});\n'
}
exports.compile = function(load) {
exports.compile = function(load, loader) {
return Promise.resolve({
source: cjsOutput(load.name, load.metadata.deps, load.address, load.source)
source: cjsOutput(load.name, load.metadata.deps, load.address, load.source, loader.baseURL)
});
}

@@ -9,11 +9,8 @@ // Converts globals into a form that will define the module onto the loader

function globalOutput(name, deps, exportName, init, source) {
return 'System.defined["' + name + '"] = {\n'
+ ' deps: ' + JSON.stringify(deps) + ',\n'
+ ' execute: function(__require, __exports, __moduleName) {\n'
+ ' System.get("@@global-helpers").prepareGlobal(__moduleName, ' + JSON.stringify(deps) + ');\n'
+ ' ' + source.replace(/\n/g, '\n ') + '\n'
+ (exportName ? ' this["' + exportName + '"] = ' + exportName + ';\n' : '')
+ ' return System.get("@@global-helpers").retrieveGlobal(__moduleName, ' + (exportName ? '"' + exportName + '"' : 'false') + (init ? ', ' + init.toString().replace(/\n/g, '\n ') : '') + ');\n'
+ ' }\n'
+ '};\n';
return 'System.register("' + name + '", ' + JSON.stringify(deps) + ', false, function(__require, __exports, __moduleName) {\n'
+ ' System.get("@@global-helpers").prepareGlobal(__moduleName, ' + JSON.stringify(deps) + ');\n'
+ ' ' + source.replace(/\n/g, '\n ') + '\n'
+ (exportName ? ' this["' + exportName + '"] = ' + exportName + ';\n' : '')
+ ' return System.get("@@global-helpers").retrieveGlobal(__moduleName, ' + (exportName ? '"' + exportName + '"' : 'false') + (init ? ', ' + init.toString().replace(/\n/g, '\n ') : '') + ');\n'
+ '});\n';
}

@@ -20,0 +17,0 @@

@@ -14,4 +14,2 @@ var Promise = require('rsvp').Promise;

// TODO source maps
var loader = new Loader(System);

@@ -34,71 +32,83 @@ loader.baseURL = System.baseURL;

loader.config(config);
pluginLoader.config(config);
return exports.trace(moduleName, config)
.then(function(trace) {
return exports.buildTree(trace.tree, trace.moduleName, outFile)
});
}
exports.buildTree = function(tree, moduleName, outFile) {
var concatOutput = ['"format register";\n'];
return visitTree(tree, moduleName, function(load) {
if (load.metadata.format == 'es6') {
var result = traceur.compile(load.source, {
moduleName: load.name,
modules: 'instantiate'
});
concatOutput.push(result.js);
}
else if (load.metadata.format == 'register') {
return registerCompiler.compile(load, loader).then(function(result) {
concatOutput.push(result.source);
});
}
else if (load.metadata.format == 'amd') {
return amdCompiler.compile(load, loader).then(function(result) {
concatOutput.push(result.source);
});
}
else if (load.metadata.format == 'cjs') {
return cjsCompiler.compile(load, loader).then(function(result) {
concatOutput.push(result.source);
});
}
else if (load.metadata.format == 'global') {
return globalCompiler.compile(load, loader).then(function(result) {
concatOutput.push(result.source);
});
}
else {
throw "unknown format " + load.metadata.format;
}
})
.then(function() {
return asp(fs.writeFile)(outFile, concatOutput.join('\n'));
});
}
exports.trace = function(moduleName, config) {
if (config) {
loader.config(config);
pluginLoader.config(config);
}
var System = loader.global.System;
loader.global.System = loader;
return loader.import(moduleName).then(function() {
// we now have the full tree at loader.loads
return visitLoadTree(moduleName, function(load) {
if (load.metadata.format == 'es6') {
var result = traceur.compile(load.source, {
moduleName: load.name,
modules: 'instantiate'
});
concatOutput.push(result.js);
}
else if (load.metadata.format == 'register') {
return registerCompiler.compile(load).then(function(result) {
concatOutput.push(result.source);
});
}
else if (load.metadata.format == 'amd') {
return amdCompiler.compile(load).then(function(result) {
concatOutput.push(result.source);
});
}
else if (load.metadata.format == 'cjs') {
return cjsCompiler.compile(load).then(function(result) {
concatOutput.push(result.source);
});
}
else if (load.metadata.format == 'global') {
return globalCompiler.compile(load).then(function(result) {
concatOutput.push(result.source);
});
}
else {
console.log(load);
throw "unknown format " + load.metadata.format;
}
})
var traceTree = {};
return loader.import(moduleName)
.then(function() {
return loader.normalize(moduleName);
})
.then(function() {
.then(function(_moduleName) {
moduleName = _moduleName;
loader.global.System = System;
return asp(fs.writeFile)(outFile, concatOutput.join('\n'));
return visitTree(loader.loads, moduleName, function(load) {
traceTree[load.name] = load;
});
})
.then(function() {
return {
moduleName: moduleName,
tree: traceTree
};
})
.catch(function(e) {
loader.global.System = System;
setTimeout(function() {
throw e;
})
throw e;
});
}
exports.createTraceTree = function(moduleName) {
return loader.import(moduleName).then(function() {
var traceTree = {};
return visitLoadTree(moduleName, function(load) {
traceTree[load.name] = load.dependencies.map(function(dep) { return dep.value; });
})
.then(function() {
return traceTree;
});
});
}
function visitLoadTree(moduleName, visit, seen) {
function visitTree(tree, moduleName, visit, seen) {
seen = seen || [];

@@ -111,7 +121,10 @@

var load = loader.loads[moduleName];
var load = tree[moduleName];
if (!load)
return;
// visit the deps first
return Promise.all(load.dependencies.map(function(dep) {
return Promise.resolve(visitLoadTree(dep.value, visit, seen));
return Promise.all(load.deps.map(function(dep) {
return Promise.resolve(visitTree(tree, load.depMap[dep], visit, seen));
})).then(function() {

@@ -118,0 +131,0 @@ // if we are the bottom of the tree, visit

{
"name": "systemjs-builder",
"version": "0.0.0",
"version": "0.0.1",
"description": "",

@@ -12,3 +12,3 @@ "main": "index.js",

"systemjs": "^0.6.0",
"traceur": "^0.0.41"
"traceur": "git+ssh://git@github.com/google/traceur-compiler.git"
},

@@ -15,0 +15,0 @@ "devDependencies": {

@@ -28,2 +28,4 @@ SystemJS Build Tool

```javascript
// Declarative System.register (ES6)
// System.register(name, deps, declare)
System.register('app', ['./jquery'], function(deps) {

@@ -52,22 +54,23 @@ var $, hello;

It also provides a CSP wrapping for CommonJS and Globals. For example, CommonJS is output as:
It also provides a dynamic System.register variation for CommonJS and Globals. For example, CommonJS is output as:
```javascript
System.defined["some/cjs"] = {
deps: [],
executingRequire: true,
execute: function(require, exports, __moduleName) {
var global = System.global;
var __define = global.define;
global.define = undefined;
var module = { exports: exports };
var process = System.get("@@nodeProcess");
exports.cjs = true;
global.define = __define;
return module.exports;
}
};
// Dynamic module System.register
// System.register(name, deps, executingRequire, execute);
System.register("some/cjs", [], true, function(require, exports, __moduleName) {
var global = System.global;
var __define = global.define;
global.define = undefined;
var module = { exports: exports };
var process = System.get("@@nodeProcess")['default'];
exports.cjs = true;
global.define = __define;
return module.exports;
});
```
The `true` boolean argument in the above indicates that CommonJS requires are execution driving,
as opposed to AMD which delays execution until all dependencies have been executed.
Basic Use

@@ -74,0 +77,0 @@ ---

@@ -14,4 +14,4 @@ var builder = require('../index');

builder.createTraceTree('tree/first').then(function(traceTree) {
builder.trace('tree/first').then(function(traceTree) {
console.log(JSON.stringify(traceTree, null, 2));
});

@@ -12,27 +12,22 @@ "format register";

System.defined["tree/cjs"] = {
deps: [],
executingRequire: true,
execute: function(require, exports, __moduleName) {
var global = System.global;
var __define = global.define;
global.define = undefined;
var module = { exports: exports };
var process = System.get("@@nodeProcess");
exports.cjs = true;
global.define = __define;
return module.exports;
}
};
System.register("tree/cjs", [], true, function(require, exports, __moduleName) {
var global = System.global;
var __define = global.define;
global.define = undefined;
var module = { exports: exports };
var process = System.get("@@nodeProcess")["default"];
var __filename = "tree/cjs.js";
var __dirname = "tree";
exports.cjs = true;
global.define = __define;
return module.exports;
});
System.defined["tree/jquery"] = {
deps: [],
execute: function(__require, __exports, __moduleName) {
System.get("@@global-helpers").prepareGlobal(__moduleName, []);
this.jquery = {};
System.register("tree/jquery", [], false, function(__require, __exports, __moduleName) {
System.get("@@global-helpers").prepareGlobal(__moduleName, []);
this.jquery = {};
return System.get("@@global-helpers").retrieveGlobal(__moduleName, false);
}
};
return System.get("@@global-helpers").retrieveGlobal(__moduleName, false);
});

@@ -60,7 +55,5 @@ System.register("tree/second", ["./third", "./cjs"], function($__0) {

System.defined["tree/global"] = {
deps: ["./jquery"],
execute: function(__require, __exports, __moduleName) {
System.get("@@global-helpers").prepareGlobal(__moduleName, ["./jquery"]);
"deps ./jquery";
System.register("tree/global", ["./jquery"], false, function(__require, __exports, __moduleName) {
System.get("@@global-helpers").prepareGlobal(__moduleName, ["./jquery"]);
"deps ./jquery";
"exports jquery.test";

@@ -71,6 +64,5 @@

this["jquery.test"] = jquery.test;
return System.get("@@global-helpers").retrieveGlobal(__moduleName, "jquery.test");
}
};
this["jquery.test"] = jquery.test;
return System.get("@@global-helpers").retrieveGlobal(__moduleName, "jquery.test");
});

@@ -77,0 +69,0 @@ define("tree/amd", ['./global'], function() {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc