Skip to content

Commit b66d623

Browse files
WIP
1 parent a10ee8c commit b66d623

File tree

1 file changed

+32
-29
lines changed

1 file changed

+32
-29
lines changed

packages/firestore/tools/console.build.js

Lines changed: 32 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -19,40 +19,42 @@
1919
* Firebase console uses firestore in its special way.
2020
* This file creates a build target for it.
2121
*/
22+
const tmp = require('tmp');
2223
const rollup = require('rollup');
23-
const typescriptPlugin = require('rollup-plugin-typescript2');
24-
const typescript = require('typescript');
25-
const json = require('rollup-plugin-json');
26-
const alias = require('@rollup/plugin-alias');
27-
const resolve = require('rollup-plugin-node-resolve');
28-
const { uglify } = require('rollup-plugin-uglify');
2924
const fs = require('fs');
3025
const util = require('util');
3126
const fs_writeFile = util.promisify(fs.writeFile);
3227

3328
const rollupUtil = require('../rollup.shared');
3429

35-
const plugins = [
36-
alias(rollupUtil.generateAliasConfig('browser')),
37-
resolve(),
38-
typescriptPlugin({
39-
typescript
40-
}),
41-
json(),
42-
uglify({
43-
output: {
44-
ascii_only: true // escape unicode chars
45-
}
46-
})
47-
];
48-
4930
const EXPORTNAME = '__firestore_exports__';
5031

51-
const inputOptions = {
32+
const tmpFile = tmp.fileSync().name;
33+
34+
const es2017InputOptions = {
5235
input: 'index.console.ts',
53-
plugins
36+
plugins: rollupUtil.es2017Plugins('browser', /* mangled= */ false),
37+
external: rollupUtil.resolveBrowserExterns,
38+
treeshake: {
39+
moduleSideEffects: false
40+
}
41+
};
42+
43+
const es2017OutputOptions = {
44+
file: tmpFile,
45+
format: 'es'
5446
};
55-
const outputOptions = {
47+
48+
const es2017toEs5InputOptions = {
49+
input: tmpFile,
50+
plugins: rollupUtil.es2017ToEs5Plugins(/* mangled= */ true),
51+
external: rollupUtil.resolveBrowserExterns,
52+
treeshake: {
53+
moduleSideEffects: false
54+
}
55+
};
56+
57+
const es2017toEs5OutputOptions = {
5658
file: 'dist/standalone.js',
5759
name: EXPORTNAME,
5860
format: 'iife'
@@ -65,17 +67,18 @@ exports = eval(`;
6567
const POSTFIX = ` + '${EXPORTNAME};');`;
6668

6769
async function build() {
68-
// create a bundle
69-
const bundle = await rollup.rollup(inputOptions);
70+
// create an ES2017 bundle
71+
const es2017Bundle = await rollup.rollup(es2017InputOptions);
72+
await es2017Bundle.write(es2017OutputOptions);
73+
console.log(tmpFile);
7074

71-
// generate code
75+
const es5Bundle = await rollup.rollup(es2017toEs5InputOptions);
7276
const {
7377
output: [{ code }]
74-
} = await bundle.generate(outputOptions);
78+
} = await es5Bundle.generate(es2017toEs5OutputOptions);
7579

7680
const output = `${PREFIX}${JSON.stringify(String(code))}${POSTFIX}`;
77-
78-
await fs_writeFile(outputOptions.file, output, 'utf-8');
81+
await fs_writeFile(es2017toEs5OutputOptions.file, output, 'utf-8');
7982
}
8083

8184
build();

0 commit comments

Comments
 (0)