This reverts commit cf7292fcb1f41bef4bda425c65be169588f357f4. This commit triggered an existing race condition in Google code. More work is needed on the Router to fix this condition before this refactor can land.
68 lines
2.0 KiB
JavaScript
68 lines
2.0 KiB
JavaScript
'use strict';
|
|
|
|
var fs = require('fs');
|
|
var ts = require('typescript');
|
|
|
|
var files = [
|
|
'lifecycle_annotations_impl.ts',
|
|
'url_parser.ts',
|
|
'path_recognizer.ts',
|
|
'route_config_impl.ts',
|
|
'async_route_handler.ts',
|
|
'sync_route_handler.ts',
|
|
'route_recognizer.ts',
|
|
'instruction.ts',
|
|
'route_config_nomalizer.ts',
|
|
'route_lifecycle_reflector.ts',
|
|
'route_registry.ts',
|
|
'router.ts'
|
|
];
|
|
|
|
var PRELUDE = '(function(){\n';
|
|
var POSTLUDE = '\n}());\n';
|
|
var FACADES = fs.readFileSync(__dirname + '/lib/facades.es5', 'utf8');
|
|
var DIRECTIVES = fs.readFileSync(__dirname + '/src/ng_outlet.ts', 'utf8');
|
|
var moduleTemplate = fs.readFileSync(__dirname + '/src/module_template.js', 'utf8');
|
|
|
|
function main() {
|
|
var dir = __dirname + '/../angular2/src/router/';
|
|
var sharedCode = files.reduce(function (prev, file) {
|
|
return prev + transform(fs.readFileSync(dir + file, 'utf8'));
|
|
}, '');
|
|
|
|
var out = moduleTemplate.replace('//{{FACADES}}', FACADES).replace('//{{SHARED_CODE}}', sharedCode);
|
|
return PRELUDE + transform(DIRECTIVES) + out + POSTLUDE;
|
|
}
|
|
|
|
/*
|
|
* Given a directory name and a file's TypeScript content, return an object with the ES5 code,
|
|
* sourcemap, and exported variable identifier name for the content.
|
|
*/
|
|
var IMPORT_RE = new RegExp("import \\{?([\\w\\n_, ]+)\\}? from '(.+)';?", 'g');
|
|
function transform(contents) {
|
|
contents = contents.replace(IMPORT_RE, function (match, imports, includePath) {
|
|
//TODO: remove special-case
|
|
if (isFacadeModule(includePath) || includePath === './router_outlet') {
|
|
return '';
|
|
}
|
|
return match;
|
|
});
|
|
return ts.transpile(contents, {
|
|
target: ts.ScriptTarget.ES5,
|
|
module: ts.ModuleKind.CommonJS
|
|
});
|
|
}
|
|
|
|
function isFacadeModule(modulePath) {
|
|
return modulePath.indexOf('facade') > -1 ||
|
|
modulePath === 'angular2/src/core/reflection/reflection';
|
|
}
|
|
|
|
module.exports = function () {
|
|
var dist = __dirname + '/../../dist';
|
|
if (!fs.existsSync(dist)) {
|
|
fs.mkdirSync(dist);
|
|
}
|
|
fs.writeFileSync(dist + '/angular_1_router.js', main());
|
|
};
|