-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.js
More file actions
61 lines (56 loc) · 2.49 KB
/
build.js
File metadata and controls
61 lines (56 loc) · 2.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
"use strict";
const
fs = require('fs'),
babel = require('babel-core'),
babelify = require('babelify'),
browserify = require('browserify'),
dependencyShim = require('browserify-global-shim');
fs.existsSync("dist") || fs.mkdirSync("dist");
const babelConfig = {
comments: false,
plugins: [
// TODO: after establishing broad-spectrum browser support, look into pruning this list
require("babel-plugin-transform-es2015-template-literals"),
require("babel-plugin-transform-es2015-literals"),
require("babel-plugin-transform-es2015-function-name"),
require("babel-plugin-transform-es2015-arrow-functions"),
require("babel-plugin-transform-es2015-block-scoped-functions"),
require("babel-plugin-transform-es2015-classes"),
require("babel-plugin-transform-es2015-object-super"),
require("babel-plugin-transform-es2015-shorthand-properties"),
require("babel-plugin-transform-es2015-duplicate-keys"),
require("babel-plugin-transform-es2015-computed-properties"),
require("babel-plugin-transform-es2015-for-of"),
require("babel-plugin-transform-es2015-sticky-regex"),
require("babel-plugin-transform-es2015-unicode-regex"),
require("babel-plugin-check-es2015-constants"),
require("babel-plugin-transform-es2015-spread"),
require("babel-plugin-transform-es2015-parameters"),
require("babel-plugin-transform-es2015-destructuring"),
require("babel-plugin-transform-es2015-block-scoping"),
require("babel-plugin-transform-es2015-typeof-symbol"),
//require("babel-plugin-transform-es2015-modules-commonjs"), // breaks exposure via global
[require("babel-plugin-transform-regenerator"), { async: false, asyncGenerators: false }],
]
};
// Transform library to valid es5 for running in browser
// (Note: must be sync else cannot share babelConfig which browserify mutates)
fs.writeFile(
'dist/primitive-enum.js',
//fs.readFileSync('./index.js')
babel.transformFileSync('./index.js', babelConfig).code
);
// Transform tests to valid es5 for running in browser
browserify()
.transform(babelify, {
comments: false,
presets: ['es2015'],
})
.transform(dependencyShim.configure({
'chai': 'chai',
'../index': 'PrimitiveEnum',
}))
.require('./test/index.js', {entry: true})
.bundle()
.on("error", err => console.log("Error: " + err.message))
.pipe(fs.createWriteStream('dist/test.js'));