55 lines
1.6 KiB
JavaScript
55 lines
1.6 KiB
JavaScript
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
import { existsSync } from 'fs'
|
|
import { promises } from 'fs'
|
|
import minimist from 'minimist'
|
|
import { nextDev } from 'next/dist/cli/next-dev.js'
|
|
import { dirname } from 'path'
|
|
import { resolve } from 'path'
|
|
import { fileURLToPath } from 'url'
|
|
const { readFile } = promises
|
|
import { promises as _promises } from 'fs'
|
|
const { writeFile } = _promises
|
|
import { promises as __promises } from 'fs'
|
|
const { rm } = __promises
|
|
import json5 from 'json5'
|
|
|
|
const { parse } = json5
|
|
|
|
main()
|
|
|
|
async function main() {
|
|
const {
|
|
_: [testSuiteArg],
|
|
...args
|
|
} = minimist(process.argv.slice(2))
|
|
|
|
if (args.turbo !== false) {
|
|
process.env.TURBOPACK = '1'
|
|
}
|
|
|
|
const __filename = fileURLToPath(import.meta.url)
|
|
const __dirname = dirname(__filename)
|
|
|
|
const testSuite = testSuiteArg || '_community'
|
|
|
|
console.log('\nUsing config:', testSuite, '\n')
|
|
|
|
// Delete next webpack cache
|
|
const nextWebpackCache = resolve(__dirname, '..', '.next/cache/webpack')
|
|
if (existsSync(nextWebpackCache)) {
|
|
await rm(nextWebpackCache, { recursive: true })
|
|
}
|
|
|
|
// Set path.'payload-config' in tsconfig.json
|
|
const tsConfigPath = resolve(__dirname, '..', 'tsconfig.json')
|
|
const tsConfig = await parse(await readFile(tsConfigPath, 'utf8'))
|
|
tsConfig.compilerOptions.paths['@payload-config'] = [`./test/${testSuite}/config.ts`]
|
|
|
|
await writeFile(tsConfigPath, JSON.stringify(tsConfig, null, 2))
|
|
|
|
const PAYLOAD_CONFIG_PATH = resolve(testSuite, 'config')
|
|
process.env.PAYLOAD_CONFIG_PATH = PAYLOAD_CONFIG_PATH
|
|
|
|
nextDev({ _: [resolve(__dirname, '..')], port: process.env.PORT || 3000 })
|
|
}
|