Skip to content

Commit

Permalink
allow compilation without polyfills
Browse files Browse the repository at this point in the history
  • Loading branch information
icambron committed Nov 5, 2017
1 parent d14a2be commit 42e4d6e
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 44 deletions.
69 changes: 34 additions & 35 deletions gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,30 +48,38 @@ function rollupLib(inopts) {
return rollup(opts);
}

function processLib(opts) {
function processLib(dest, opts) {
return () => {
opts.input = './src/luxon.js';

const dest = `./build/${opts.dest || opts.format}`,
const fullDest = `./build/${dest}`,
// confession: I have no idea why piping to lazypipe works
// after dest, but you can't pipe directly so...
minify = lazypipe()
.pipe(filter, ['**/*.js'])
.pipe(babili, { mangle: { keepClassNames: true } })
.pipe(rename, { extname: '.min.js' })
.pipe(sourcemaps.write, '.')
.pipe(gulp.dest, dest);
.pipe(gulp.dest, fullDest);

return rollupLib(opts)
.pipe(source('luxon.js'))
.pipe(buffer())
.pipe(sourcemaps.init({ loadMaps: true }))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(dest))
.pipe(gulp.dest(fullDest))
.pipe(minify());
};
}

function processLibLegacy(dest, opts) {
const realOpts = Object.assign({}, opts, { input: './src/luxonFilled.js' });
return processLib(dest, realOpts);
}

function processLibModern(dest, opts) {
const realOpts = Object.assign({}, opts, { input: './src/luxon.js' });
return processLib(dest, realOpts);
}

function prettify(opts) {
return through.obj((file, _, callback) => {
const str = file.contents.toString(),
Expand Down Expand Up @@ -99,43 +107,34 @@ function checkForDocCoverage() {
});
}

gulp.task('cjs', processLib({ format: 'cjs' }));

gulp.task(
'es6',
processLib({
const cjsOpts = { format: 'cjs' },
es6Opts = {
format: 'es',
dest: 'es6',
compile: false
})
);

gulp.task(
'amd',
processLib({
},
amdOpts = {
format: 'amd',
rollupOpts: { name: 'luxon' }
})
);

gulp.task(
'global-es6',
processLib({
},
es6GlobalOpts = {
format: 'iife',
rollupOpts: { name: 'luxon' },
dest: 'global-es6',
compile: false
})
);

gulp.task(
'global',
processLib({
},
globalOpts = {
format: 'iife',
rollupOpts: { name: 'luxon' },
dest: 'global'
})
);
rollupOpts: { name: 'luxon' }
};

// build these with the corejs polyfills
// todo: is this the right thing to do?
gulp.task('global', processLibLegacy('global', globalOpts));
gulp.task('amd', processLibLegacy('amd', amdOpts));
gulp.task('cjs', processLibLegacy('cjs', cjsOpts));

// build these without the corejs polyfills
gulp.task('es6', processLibModern('es6', es6Opts));
gulp.task('global-es6', processLibModern('global-es6', es6GlobalOpts));

gulp.task('build', ['cjs', 'es6', 'amd', 'global', 'global-es6']);

Expand Down
2 changes: 1 addition & 1 deletion site/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ <h2>Download</h2>
</td>
<td>
<p>Luxon as a Node.js module</p>
<pre><code>var luxon = require('luxon');<br/>luxon.DateTime.local();</code></pre>
<pre><code>var { DateTime } = require('luxon');<br/>DateTime.local();</code></pre>
</td>
<td></td>
</tr>
Expand Down
8 changes: 0 additions & 8 deletions src/luxon.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,3 @@
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/fn/symbol/iterator';
import 'core-js/fn/number/is-nan';
import 'core-js/es6/array';
import 'core-js/fn/string/virtual/starts-with';
import 'core-js/fn/string/virtual/pad-start';

export { DateTime } from './datetime';
export { Duration } from './duration';
export { Interval } from './interval';
Expand Down
9 changes: 9 additions & 0 deletions src/luxonFilled.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/fn/symbol/iterator';
import 'core-js/fn/number/is-nan';
import 'core-js/es6/array';
import 'core-js/fn/string/virtual/starts-with';
import 'core-js/fn/string/virtual/pad-start';

export * from './luxon';

0 comments on commit 42e4d6e

Please sign in to comment.