#!/usr/bin/env -S node -r esbin import esbuild from 'esbuild'; import { resolve } from 'path'; import { babelPlugin } from './src/babel'; const args = process.argv.slice(2); const ENV = process.env.NODE_ENV || 'development'; const PROD = ENV === 'production'; async function main(entry: string, outfile: string) { const context = await esbuild.context({ entryPoints: [entry], outfile, bundle: true, minify: PROD, platform: 'node', packages: 'external', sourcemap: 'linked', plugins: [ babelPlugin, { name: 'alias', setup(build) { build.onResolve({ filter: /^jsx-ast-utils$/ }, () => ({ path: resolve('./jsx-ast-utils/src/index.js'), })); build.onResolve({ filter: /^jsx-ast-utils\/.+$/ }, ({ path }) => ({ path: resolve('./jsx-ast-utils/', path.slice('jsx-ast-utils/'.length)) + '.js', })); }, }, ], define: {}, banner: { js: '/* eslint-disable */', }, }); await context.rebuild(); if (args.includes('-w') || args.includes('--watch')) { await context.watch(); } else { await context.dispose(); } } main('./eslint-plugin-react/index.js', './dist/react/index.js'); main('./eslint-plugin-import/src/index.js', './dist/import/index.js'); main('./eslint-plugin-jsx-a11y/src/index.js', './dist/jsx-a11y/index.js'); main('./src/ensureRedirect.ts', './dist/ensureRedirect.js');