Files
vercel/packages/node-bridge/build.js
2022-02-17 20:36:37 -08:00

63 lines
1.4 KiB
JavaScript

#!/usr/bin/env node
const fs = require('fs-extra');
const execa = require('execa');
const { join } = require('path');
async function main() {
// Build TypeScript files
await execa('tsc', [], {
stdio: 'inherit',
});
// Bundle `helpers.ts` with ncc
await fs.remove(join(__dirname, 'helpers.js'));
const helpersDir = join(__dirname, 'helpers');
await execa(
'ncc',
[
'build',
join(__dirname, 'helpers.ts'),
'-e',
'@vercel/node-bridge',
'-e',
'@vercel/build-utils',
'-e',
'typescript',
'-o',
helpersDir,
],
{ stdio: 'inherit' }
);
await fs.rename(join(helpersDir, 'index.js'), join(__dirname, 'helpers.js'));
await fs.remove(helpersDir);
// Bundle `source-map-support/register` with ncc for source maps
const sourceMapSupportDir = join(__dirname, 'source-map-support');
await execa(
'ncc',
[
'build',
join(__dirname, '../../node_modules/source-map-support/register'),
'-e',
'@vercel/node-bridge',
'-e',
'@vercel/build-utils',
'-e',
'typescript',
'-o',
sourceMapSupportDir,
],
{ stdio: 'inherit' }
);
await fs.rename(
join(sourceMapSupportDir, 'index.js'),
join(__dirname, 'source-map-support.js')
);
await fs.remove(sourceMapSupportDir);
}
main().catch(err => {
console.error(err);
process.exit(1);
});