Skip to content

Commit 7992e3d

Browse files
committed
Add ES2017 build.
1 parent 444f6ff commit 7992e3d

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

packages/webchannel-wrapper/gulpfile.js

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ const closureDefines = [
6161
* @param {string} prefix prefix to the compiled code
6262
* @param {string} suffix suffix to the compiled code
6363
*/
64-
function createBuildTask(filename, prefix, suffix) {
64+
function createBuildTask(filename, prefix, suffix, language_out = 'ES5') {
6565
return function closureBuild() {
6666
return gulp
6767
.src(
@@ -83,7 +83,7 @@ function createBuildTask(filename, prefix, suffix) {
8383
resolve(__dirname, './externs/overrides.js'),
8484
resolve(__dirname, './externs/module.js')
8585
],
86-
language_out: 'ES5',
86+
language_out,
8787
dependency_mode: 'PRUNE',
8888
define: closureDefines
8989
})
@@ -93,15 +93,15 @@ function createBuildTask(filename, prefix, suffix) {
9393
};
9494
}
9595

96-
function createRollupTask(inputPath) {
96+
function createRollupTask(inputPath, outputExtension) {
9797
return async function rollupBuild() {
9898
const inputOptions = {
9999
input: inputPath,
100100
plugins: [rollupSourcemaps(), commonjs()]
101101
};
102102

103103
const outputOptions = {
104-
file: 'dist/index.esm.js',
104+
file: `dist/index.${outputExtension}.js`,
105105
format: 'es',
106106
sourcemap: true
107107
};
@@ -126,11 +126,21 @@ gulp.task('cjs', cjsBuild);
126126
// esm build
127127
// 1) Do closure compile without any wrapping code.
128128
// 2) Use rollup to convert result to ESM format.
129-
// 3) Delete intermediate files.
130129
const intermediateEsmFile = 'temp/esm.js';
131130
const intermediateEsmPath = resolve(__dirname, 'dist/', intermediateEsmFile);
132131
const esmBuild = createBuildTask(intermediateEsmFile, '', '');
133-
const rollupTask = createRollupTask(intermediateEsmPath);
134-
gulp.task('esm', gulp.series(esmBuild, rollupTask, deleteIntermediateFiles));
132+
const rollupTask = createRollupTask(intermediateEsmPath, 'esm');
133+
gulp.task('esm', gulp.series(esmBuild, rollupTask));
135134

136-
gulp.task('default', gulp.parallel('cjs', 'esm'));
135+
// esm 2017 build
136+
// 1) Do closure compile with language set to ES2017, without any wrapping code.
137+
// 2) Use rollup to convert result to ESM format.
138+
const intermediateEsm2017File = 'temp/esm2017.js';
139+
const intermediateEsm2017Path = resolve(__dirname, 'dist/', intermediateEsm2017File);
140+
const esm2017Build = createBuildTask(intermediateEsm2017File, '', '', 'ECMASCRIPT_2017');
141+
const rollup2017Task = createRollupTask(intermediateEsm2017Path, 'esm2017');
142+
gulp.task('esm2017', gulp.series(esm2017Build, rollup2017Task));
143+
144+
gulp.task('buildAll', gulp.parallel('cjs', 'esm', 'esm2017'));
145+
146+
gulp.task('default', gulp.series('buildAll', deleteIntermediateFiles));

0 commit comments

Comments
 (0)