voluptasmollitia
Version:
Monorepo for the Firebase JavaScript SDK
69 lines (62 loc) • 1.97 kB
text/typescript
/**
* @license
* Copyright 2020 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { rollup } from 'rollup';
import * as yargs from 'yargs';
const alias = require('@rollup/plugin-alias');
const json = require('@rollup/plugin-json');
const typescriptPlugin = require('rollup-plugin-typescript2');
const util = require('../rollup.shared');
const argv = yargs.options({
input: {
type: 'string',
demandOption: true,
desc: 'The location of the index.ts file'
},
output: {
type: 'string',
demandOption: true,
desc: 'The location for the transpiled JavaScript bundle'
}
}).argv;
/**
* Builds an ESM bundle for the Typescript file at `index` and writes it the
* file located at `output`.
*
* This is used in the `gendeps` build and does not minify or mangle property
* names.
*/
async function buildBundle(input: string, output: string): Promise<void> {
const bundle = await rollup({
input,
plugins: [
alias(util.generateAliasConfig('node')),
typescriptPlugin({
tsconfigOverride: {
compilerOptions: {
target: 'es2017'
}
},
transformers: [util.removeAssertTransformer]
}),
json({ preferConst: true })
],
external: util.resolveNodeExterns
});
await bundle.write({ file: output, format: 'es' });
}
// eslint-disable-next-line @typescript-eslint/no-floating-promises
buildBundle(argv.input, argv.output);