2025-05-09 12:19:44 -07:00

52 lines
1.3 KiB
JavaScript

/**
* Copyright (c) Microsoft Corporation.
*
* 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.
*/
// @ts-check
const path = require('path');
const esbuild = require('esbuild');
/**
* @param {boolean} watchMode
* @returns {import('esbuild').BuildOptions}
*/
function esbuildOptions(watchMode) {
return {
entryPoints: [path.join(__dirname, 'src/index.ts')],
bundle: true,
outdir: path.join(__dirname, 'lib'),
format: 'cjs',
platform: 'node',
target: 'ES2019',
sourcemap: watchMode,
};
}
async function main() {
const watchMode = process.argv.includes('--watch');
const ctx = await esbuild.context(esbuildOptions(watchMode));
await ctx.rebuild();
if (watchMode)
await ctx.watch();
else
await ctx.dispose();
}
module.exports = { esbuildOptions };
if (require.main === module)
main();