updated stuff
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env node
|
||||
// ── @originmain/next build script ────────────────────────────────────────────
|
||||
// Produces ESM + CJS bundles and TypeScript declarations under dist/:
|
||||
//
|
||||
// dist/index.js — ESM bundle for next.config.mjs / next.config.ts
|
||||
// dist/index.cjs — CJS bundle for next.config.js (legacy require())
|
||||
// dist/index.d.ts — TypeScript declarations for withOriginmain()
|
||||
//
|
||||
// Run: node build.mjs (or via "pnpm build")
|
||||
|
||||
import { build } from 'esbuild';
|
||||
import { execFileSync } from 'node:child_process';
|
||||
import { createRequire } from 'node:module';
|
||||
|
||||
const req = createRequire(import.meta.url);
|
||||
// Resolve the tsc binary explicitly — avoids relying on PATH.
|
||||
const tscBin = req.resolve('typescript/bin/tsc');
|
||||
|
||||
const SHARED = {
|
||||
entryPoints: ['src/index.ts'],
|
||||
bundle: true,
|
||||
platform: 'node',
|
||||
target: ['node18'],
|
||||
// 'next' is a peer dep — leave it external so users' own copy is used.
|
||||
external: ['next'],
|
||||
logLevel: 'info',
|
||||
};
|
||||
|
||||
// ── ESM bundle ────────────────────────────────────────────────────────────────
|
||||
await build({
|
||||
...SHARED,
|
||||
format: 'esm',
|
||||
outfile: 'dist/index.js',
|
||||
});
|
||||
|
||||
// ── CJS bundle ────────────────────────────────────────────────────────────────
|
||||
// Required for projects where next.config.js uses module.exports = ...
|
||||
await build({
|
||||
...SHARED,
|
||||
format: 'cjs',
|
||||
outfile: 'dist/index.cjs',
|
||||
});
|
||||
|
||||
// ── TypeScript declarations ───────────────────────────────────────────────────
|
||||
// withOriginmain() is a typed export — consumers need the .d.ts so their IDE
|
||||
// and type-checker know the function's signature.
|
||||
execFileSync(process.execPath, [tscBin, '--project', 'tsconfig.build.json'], {
|
||||
stdio: 'inherit',
|
||||
});
|
||||
|
||||
console.log(' ✓ dist/index.js (ESM)');
|
||||
console.log(' ✓ dist/index.cjs (CJS)');
|
||||
console.log(' ✓ dist/index.d.ts (types)');
|
||||
Reference in New Issue
Block a user