refactor(setup): upgrade to TypeScript 6 with source-first monorepo resolution

This commit is contained in:
Simon
2026-04-12 02:04:21 +08:00
parent f68c73c5e9
commit 4d27d49752
35 changed files with 305 additions and 235 deletions

View File

@@ -0,0 +1,48 @@
#!/usr/bin/env node
/**
* Swap source-first dev entrypoints for dist-first publish entrypoints.
*
* This script is called by `prepublishOnly` in each publishable package.
* It reads the `publishConfig` object and promotes its fields to top level,
* storing the original dev fields in `_devConfig` so `restore-dev.js` can undo it.
*
* Usage: node ../../scripts/prepare-publish.js
*/
import { copyFileSync, readFileSync, writeFileSync } from 'fs'
import { join } from 'path'
const pkgPath = join(process.cwd(), 'package.json')
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'))
const publishConfig = pkg.publishConfig
if (!publishConfig) {
console.log(' No publishConfig found, skipping manifest rewrite.')
process.exit(0)
}
const PUBLISH_FIELDS = ['main', 'module', 'types', 'exports']
const devConfig = {}
for (const field of PUBLISH_FIELDS) {
if (field in publishConfig) {
devConfig[field] = pkg[field]
pkg[field] = publishConfig[field]
}
}
pkg._devConfig = devConfig
delete pkg.publishConfig
writeFileSync(pkgPath, JSON.stringify(pkg, null, ' ') + '\n')
console.log(` ✓ Manifest rewritten for publish (${Object.keys(devConfig).join(', ')})`)
const root = join(process.cwd(), '../..')
copyFileSync(join(root, 'LICENSE'), join(process.cwd(), 'LICENSE'))
console.log(' ✓ LICENSE copied')
const readmeSrc = join(root, 'README.md')
const readmeDest = join(process.cwd(), 'README.md')
if (pkg.name === 'page-agent') {
copyFileSync(readmeSrc, readmeDest)
console.log(' ✓ README.md copied')
}