UNPKG

voluptasmollitia

Version:
69 lines (62 loc) 1.97 kB
/** * @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);