49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
import fs from 'node:fs';
|
|
import esbuild from 'esbuild';
|
|
import {
|
|
copyStaticFiles,
|
|
getPublishVersion,
|
|
licenseBanner,
|
|
} from './utils';
|
|
|
|
|
|
//Detect the tag/version and set the .cienv file
|
|
const { txVersion, isPreRelease, preReleaseExpiration } = getPublishVersion(false);
|
|
fs.writeFileSync('.github/.cienv', `TX_IS_PRERELEASE=${isPreRelease}\n`);
|
|
|
|
//Copy static files
|
|
console.log('Starting txAdmin Prod Builder');
|
|
copyStaticFiles('./dist/', txVersion, 'publish');
|
|
//yarn.installed Needs to be older than the package.json
|
|
fs.writeFileSync('./dist/.yarn.installed', '');
|
|
fs.writeFileSync('./dist/package.json', '{"type":"commonjs"}');
|
|
fs.writeFileSync('./dist/LICENSE.txt', licenseBanner());
|
|
|
|
//Transpile & bundle core
|
|
try {
|
|
const { errors } = esbuild.buildSync({
|
|
entryPoints: ['./core'],
|
|
bundle: true,
|
|
outfile: './dist/core/index.js',
|
|
platform: 'node',
|
|
target: 'node16',
|
|
format: 'cjs', //typescript builds to esm and esbuild converts it to cjs
|
|
minifyWhitespace: true,
|
|
charset: 'utf8',
|
|
define: { TX_PRERELEASE_EXPIRATION: preReleaseExpiration },
|
|
banner: { js: licenseBanner(undefined, true) },
|
|
//To satisfy the license's "full text" requirement, it will be generated
|
|
//by another npm script and it is referenced in the banner.
|
|
legalComments: 'none',
|
|
});
|
|
if (errors.length) {
|
|
console.log(`[BUNDLER] Failed with ${errors.length} errors.`);
|
|
process.exit(1);
|
|
}
|
|
} catch (error) {
|
|
console.log('[BUNDLER] Errored out :(');
|
|
console.dir(error);
|
|
process.exit(1);
|
|
}
|
|
console.log('Publish task finished :)');
|