Files
next.js/scripts/patch-next.cjs
T
hrmnyandGitHub 0539477e7c types: improve napi binding typing using generated types (#69680)
### Why?

All the `any` and `unknown` types kept bothering me.

I've also removed some unused napi functions
2024-09-24 16:39:19 +02:00

80 lines
1.7 KiB
JavaScript

#!/usr/bin/env node
const {
NEXT_DIR,
exec,
execFn,
booleanArg,
packageFiles,
} = require('./pack-util.cjs')
const fs = require('fs')
const path = require('path')
/** @type {string[]} */
const argv = process.argv
const args = argv.slice(2)
const NEXT_PACKAGES = `${NEXT_DIR}/packages`
const noBuild = booleanArg(args, '--no-build')
const noNativeBuild = booleanArg(args, '--no-native-build')
const PROJECT_DIR = path.resolve(args[0])
function realPathIfAny(path) {
try {
return fs.realpathSync(path)
} catch {
return null
}
}
async function copy(src, dst) {
const realDst = realPathIfAny(dst)
if (!realDst) {
return
}
const files = await packageFiles(src)
for (const file of files) {
fs.cpSync(path.join(src, file), path.join(realDst, file), {
recursive: true,
})
}
}
async function main() {
if (!noBuild) {
exec('Install Next.js build dependencies', 'pnpm i')
exec('Build Next.js', 'pnpm run build')
}
if (!noNativeBuild) {
process.argv = [...process.argv.slice(0, 2), ...args.slice(1)]
await require('./build-native.cjs')
}
await execFn('Patching next', () =>
copy(`${NEXT_PACKAGES}/next`, `${PROJECT_DIR}/node_modules/next`)
)
await execFn('Patching @next/swc', () =>
copy(`${NEXT_PACKAGES}/next-swc`, `${PROJECT_DIR}/node_modules/@next/swc`)
)
await execFn('Patching @next/mdx', () =>
copy(`${NEXT_PACKAGES}/next-mdx`, `${PROJECT_DIR}/node_modules/@next/mdx`)
)
await execFn('Patching @next/bundle-analyzer', () =>
copy(
`${NEXT_PACKAGES}/next-bundle-analyzer`,
`${PROJECT_DIR}/node_modules/@next/bundle-anlyzer`
)
)
}
main().catch((e) => {
console.error(e)
process.exit(1)
})