ion
Version:
ion language ========================
929 lines (928 loc) • 567 kB
JavaScript
void (function(){var _ion_builder_ModuleBuilder_ = function(module,exports,require){'use strict';
if (global.window) {
return;
}
var ion = require('../'), np = require('path'), File = require('./File'), Directory = require('./Directory'), builder = require('./'), utility = require('./utility'), compilers = {
'.coffee': { compile: builder.compileCoffeeScript },
'.pegjs': { compile: builder.compilePegjs },
'.js': { compile: builder.shimJavascript },
'.ion': {
compile: builder.compileIon,
compileWithSourceMap: builder.compileIonWithSourceMap
}
};
module.exports = exports = ion.template(function (packagePatch) {
return ion.createRuntime({
type: 'Template',
id: null,
body: [
{
type: 'VariableDeclaration',
declarations: [{
type: 'VariableDeclarator',
id: {
type: 'Identifier',
name: 'packageJson',
loc: {
start: {
line: 26,
column: 8,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 26,
column: 19,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
init: {
type: 'CallExpression',
callee: {
type: 'MemberExpression',
computed: false,
object: {
type: 'Identifier',
name: 'ion',
loc: {
start: {
line: 26,
column: 22,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 26,
column: 25,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
property: {
type: 'Identifier',
name: 'patch',
loc: {
start: {
line: 26,
column: 26,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 26,
column: 31,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
loc: {
start: {
line: 26,
column: 22,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 26,
column: 31,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
arguments: [
{
type: 'CallExpression',
callee: {
type: 'MemberExpression',
computed: false,
object: {
type: 'Identifier',
name: 'JSON',
loc: {
start: {
line: 26,
column: 32,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 26,
column: 36,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
property: {
type: 'Identifier',
name: 'parse',
loc: {
start: {
line: 26,
column: 37,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 26,
column: 42,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
loc: {
start: {
line: 26,
column: 32,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 26,
column: 42,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
arguments: [{
type: 'CallExpression',
callee: {
type: 'MemberExpression',
computed: false,
object: {
type: 'NewExpression',
callee: {
type: 'Identifier',
name: 'File',
loc: {
start: {
line: 26,
column: 47,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 26,
column: 51,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
arguments: [{
type: 'Literal',
value: 'package.json'
}],
loc: {
start: {
line: 26,
column: 43,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 26,
column: 67,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
property: {
type: 'Identifier',
name: 'read',
loc: {
start: {
line: 26,
column: 68,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 26,
column: 72,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
loc: {
start: {
line: 26,
column: 43,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 26,
column: 72,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
arguments: [],
loc: {
start: {
line: 26,
column: 43,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 26,
column: 74,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
}],
loc: {
start: {
line: 26,
column: 32,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 26,
column: 75,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
{
type: 'ConditionalExpression',
test: {
type: 'BinaryExpression',
operator: '!=',
left: {
type: 'Identifier',
name: 'packagePatch',
loc: {
start: {
line: 26,
column: 77,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 26,
column: 89,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
right: {
type: 'Literal',
value: null
}
},
consequent: {
type: 'Identifier',
name: 'packagePatch',
loc: {
start: {
line: 26,
column: 77,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 26,
column: 89,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
alternate: {
type: 'ObjectExpression',
properties: []
}
}
],
loc: {
start: {
line: 26,
column: 22,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 26,
column: 95,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
}
}],
kind: 'let',
order: '0'
},
{
type: 'VariableDeclaration',
declarations: [{
type: 'VariableDeclarator',
id: {
type: 'Identifier',
name: 'inputs',
loc: {
start: {
line: 27,
column: 8,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 27,
column: 14,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
init: {
type: 'CallExpression',
callee: {
type: 'Function',
context: true,
value: function (_context) {
return function (packageJson) {
var Directory = _context.get('Directory');
var names = packageJson.directories.src != null ? packageJson.directories.src : 'src';
if (!Array.isArray(names)) {
names = [names];
}
var _ref = [];
for (var _i = 0; _i < names.length; _i++) {
var name = names[_i];
_ref.push(new Directory(name));
}
return _ref;
};
}
},
arguments: [{
type: 'Identifier',
name: 'packageJson',
loc: {
start: {
line: 27,
column: 21,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 27,
column: 32,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
}],
loc: {
start: {
line: 27,
column: 17,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 32,
column: 8,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
}
}],
kind: 'let',
order: '1'
},
{
type: 'VariableDeclaration',
declarations: [{
type: 'VariableDeclarator',
id: {
type: 'Identifier',
name: 'input',
loc: {
start: {
line: 32,
column: 8,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 32,
column: 13,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
init: {
type: 'MemberExpression',
computed: true,
object: {
type: 'Identifier',
name: 'inputs',
loc: {
start: {
line: 32,
column: 16,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 32,
column: 22,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
property: {
type: 'Literal',
value: 0
},
loc: {
start: {
line: 32,
column: 16,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 32,
column: 25,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
}
}],
kind: 'let',
order: '2'
},
{
type: 'VariableDeclaration',
declarations: [{
type: 'VariableDeclarator',
id: {
type: 'Identifier',
name: 'output',
loc: {
start: {
line: 33,
column: 8,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 33,
column: 14,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
init: {
type: 'NewExpression',
callee: {
type: 'Identifier',
name: 'Directory',
loc: {
start: {
line: 33,
column: 21,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 33,
column: 30,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
arguments: [{
type: 'ConditionalExpression',
test: {
type: 'BinaryExpression',
operator: '!=',
left: {
type: 'MemberExpression',
computed: false,
object: {
type: 'MemberExpression',
computed: false,
object: {
type: 'Identifier',
name: 'packageJson',
loc: {
start: {
line: 33,
column: 31,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 33,
column: 42,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
property: {
type: 'Identifier',
name: 'directories',
loc: {
start: {
line: 33,
column: 43,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 33,
column: 54,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
loc: {
start: {
line: 33,
column: 31,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 33,
column: 54,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
property: {
type: 'Identifier',
name: 'lib',
loc: {
start: {
line: 33,
column: 55,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 33,
column: 58,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
loc: {
start: {
line: 33,
column: 31,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 33,
column: 58,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
right: {
type: 'Literal',
value: null
}
},
consequent: {
type: 'MemberExpression',
computed: false,
object: {
type: 'MemberExpression',
computed: false,
object: {
type: 'Identifier',
name: 'packageJson',
loc: {
start: {
line: 33,
column: 31,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 33,
column: 42,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
property: {
type: 'Identifier',
name: 'directories',
loc: {
start: {
line: 33,
column: 43,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 33,
column: 54,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
loc: {
start: {
line: 33,
column: 31,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 33,
column: 54,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
property: {
type: 'Identifier',
name: 'lib',
loc: {
start: {
line: 33,
column: 55,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 33,
column: 58,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
loc: {
start: {
line: 33,
column: 31,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 33,
column: 58,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
alternate: {
type: 'Literal',
value: 'lib'
}
}],
loc: {
start: {
line: 33,
column: 17,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 33,
column: 67,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
}
}],
kind: 'let',
order: '3'
},
{
type: 'VariableDeclaration',
declarations: [{
type: 'VariableDeclarator',
id: {
type: 'Identifier',
name: 'moduleName',
loc: {
start: {
line: 34,
column: 8,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 34,
column: 18,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
init: {
type: 'ConditionalExpression',
test: {
type: 'BinaryExpression',
operator: '!=',
left: {
type: 'MemberExpression',
computed: false,
object: {
type: 'Identifier',
name: 'packageJson',
loc: {
start: {
line: 34,
column: 21,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 34,
column: 32,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
property: {
type: 'Identifier',
name: 'name',
loc: {
start: {
line: 34,
column: 33,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 34,
column: 37,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
loc: {
start: {
line: 34,
column: 21,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 34,
column: 37,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
right: {
type: 'Literal',
value: null
}
},
consequent: {
type: 'MemberExpression',
computed: false,
object: {
type: 'Identifier',
name: 'packageJson',
loc: {
start: {
line: 34,
column: 21,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 34,
column: 32,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
property: {
type: 'Identifier',
name: 'name',
loc: {
start: {
line: 34,
column: 33,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 34,
column: 37,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
loc: {
start: {
line: 34,
column: 21,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 34,
column: 37,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
alternate: {
type: 'Literal',
value: ''
}
}
}],
kind: 'let',
order: '4'
},
{
type: 'VariableDeclaration',
declarations: [{
type: 'VariableDeclarator',
id: {
type: 'Identifier',
name: 'extensions',
loc: {
start: {
line: 37,
column: 8,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 37,
column: 18,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},
init: {
type: 'CallExpression',
callee: {
type: 'MemberExpression',
computed: false,
object: {
type: 'Identifier',
name: 'Object',
loc: {
start: {
line: 37,
column: 21,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
},
end: {
line: 37,
column: 27,
fixed: true,
source: 'ion/builder/ModuleBuilder.ion'
}
}
},