Skip to content
Snippets Groups Projects
Commit c6149529 authored by Alvaro Cabrera's avatar Alvaro Cabrera
Browse files

Upgrade build scripts

parent f4fe34e8
Branches
Tags
No related merge requests found
...@@ -14,18 +14,21 @@ var buildDir = __dirname, ...@@ -14,18 +14,21 @@ var buildDir = __dirname,
projectDir = path.join(__dirname, '..'); projectDir = path.join(__dirname, '..');
var BANNER_TEXT = fs.readFileSync(path.join(buildDir, '.banner.txt')).toString(); var BANNER_TEXT = fs.readFileSync(path.join(buildDir, '.banner.txt')).toString();
var LOCALE_TEXT = fs.readFileSync(path.join(buildDir, '.locale.js')).toString();
var pkg = require(path.join(projectDir, 'package.json')), var pkg = require(path.join(projectDir, 'package.json')),
bannerTemplate = template(BANNER_TEXT); bannerTemplate = template(BANNER_TEXT),
localeTemplate = template(LOCALE_TEXT);
var banner = bannerTemplate({ pkg: pkg, now: (new Date()).toISOString().replace('T', ' ') }); var banner = bannerTemplate({ pkg: pkg, now: (new Date()).toISOString().replace('T', ' ') });
// custom bundler // custom bundler
function bundle(options, next) { function bundle(options) {
var destFile = path.join(projectDir, 'dist', options.dest || '', options.id + '.js'); var destFile = path.join(projectDir, 'dist', options.dest || '', options.id + '.js');
rollup.rollup({ return rollup.rollup({
input: options.src, input: options.src,
onwarn() {},
plugins: [ plugins: [
{ {
resolveId(importee, importer) { resolveId(importee, importer) {
...@@ -93,44 +96,41 @@ function bundle(options, next) { ...@@ -93,44 +96,41 @@ function bundle(options, next) {
// OK // OK
console.log('Bundle: ' + destFile); console.log('Bundle: ' + destFile);
next();
}) })
.catch(function(error) { .catch(function(error) {
console.log(error.stack); console.log(error.stack);
}); });
} }
console.log('Building...'); Promise.resolve()
.then(() => {
bundle({ id: pkg.name, src: path.join(projectDir, 'lib/index.js') }, function(err) { console.log('Building main library...');
if (err) {
throw err;
return;
}
});
var outputs = [ return bundle({ id: pkg.name, src: path.join(projectDir, 'lib/index.js') });
{ id: pkg.name, src: projectDir } })
]; .then(() => {
// proxied versions from faker's locales
var languages = glob.sync(path.join(require.resolve('faker'), '../locale/*.js'));
// proxied versions from faker's locales console.log('Preparing all sources...');
var languages = glob.sync(path.join(require.resolve('faker'), '../locale/*.js'));
languages.forEach(function(lang) { const tasks = [];
outputs.push({ id: path.basename(lang, '.js'), dest: 'locale' });
});
console.log('Preparing all sources...'); languages.forEach(function(lang) {
fs.outputFileSync(path.join(projectDir, 'locale/' + path.basename(lang)), localeTemplate({ lang: path.basename(lang, '.js') }));
(function next(err) { tasks.push(() => {
if (err) { console.log('Building language ' + path.basename(lang, '.js') + '...');
throw err;
}
var opts = outputs.shift(); return bundle({ id: path.basename(lang, '.js'), src: path.join(projectDir, 'locale/' + path.basename(lang)) });
});
});
if (opts) { return tasks.reduce((prev, cur) => prev.then(() => cur()), Promise.resolve());
bundle(opts, next); })
} .then(() => {
})(); console.log('Done.');
})
.catch(e => {
console.log(e.stack);
});
#!/bin/sh
# --out will not work with CommonJS, see https://github.com/Microsoft/TypeScript/issues/1544
tsc --module commonjs ts/index.ts ts/api/extend.ts # add `--noImplicitAny` at some point
mkdir -p lib/api lib/class lib/core lib/generators lib/types
mv ts/api/*.js lib/api/
mv ts/class/*.js lib/class/
mv ts/core/*.js lib/core/
mv ts/generators/*.js lib/generators/
mv ts/types/*.js lib/types/
mv ts/*.js lib/
var browserify = require('browserify');
var tsify = require('tsify');
browserify()
.add('ts/index.ts')
.plugin(tsify, { noImplicitAny: true })
.bundle()
.on('error', function (error) { console.error(error.toString()); })
.pipe(process.stdout);
...@@ -15,8 +15,6 @@ ...@@ -15,8 +15,6 @@
"dist": "yarn build && yarn build:dist", "dist": "yarn build && yarn build:dist",
"build": "tarima -qfe dist VERSION=`./build/VERSION`", "build": "tarima -qfe dist VERSION=`./build/VERSION`",
"build:dist": "yarn build && node build/dist.js", "build:dist": "yarn build && node build/dist.js",
"tsc": "bash build/tsc.sh",
"tsify": "browserify ts/index.ts -p [ tsify ] > dist/temp-bundle.js",
"typedoc": "typedoc --out docs/html ts/ --module commonjs", "typedoc": "typedoc --out docs/html ts/ --module commonjs",
"graphviz": "madge lib --dot > structure.gv" "graphviz": "madge lib --dot > structure.gv"
}, },
...@@ -81,6 +79,7 @@ ...@@ -81,6 +79,7 @@
"seedrandom": "^2.4.3", "seedrandom": "^2.4.3",
"semver": "^5.3.0", "semver": "^5.3.0",
"tarima": "^3.8.1", "tarima": "^3.8.1",
"tslib": "^1.8.0",
"tslint": "^4.0.2", "tslint": "^4.0.2",
"tv4": "^1.2.7", "tv4": "^1.2.7",
"typedoc": "^0.5.1", "typedoc": "^0.5.1",
......
...@@ -2215,6 +2215,10 @@ tryit@^1.0.1: ...@@ -2215,6 +2215,10 @@ tryit@^1.0.1:
version "1.0.3" version "1.0.3"
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
tslib@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.8.0.tgz#dc604ebad64bcbf696d613da6c954aa0e7ea1eb6"
tslint@^4.0.2: tslint@^4.0.2:
version "4.5.1" version "4.5.1"
resolved "https://registry.yarnpkg.com/tslint/-/tslint-4.5.1.tgz#05356871bef23a434906734006fc188336ba824b" resolved "https://registry.yarnpkg.com/tslint/-/tslint-4.5.1.tgz#05356871bef23a434906734006fc188336ba824b"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment