1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54import path from 'path'
const [testConfigDir] = process.argv.slice(2)
import type { SanitizedConfig } from 'payload'
import fs from 'fs'
import { generateImportMap } from 'payload'
import { fileURLToPath } from 'url'
const filename = fileURLToPath(import.meta.url)
const dirname = path.dirname(filename)
let testDir: string
async function run() {
if (testConfigDir) {
testDir = path.resolve(dirname, testConfigDir)
const pathWithConfig = path.resolve(testDir, 'config.ts')
console.log('Generating ad-hoc import map for config:', pathWithConfig)
const config: SanitizedConfig = await (await import(pathWithConfig)).default
let rootDir = ''
if (
testConfigDir === 'live-preview' ||
testConfigDir === 'admin-root' ||
testConfigDir === 'admin-bar'
) {
rootDir = testDir
if (process.env.PAYLOAD_TEST_PROD === 'true') {
// If in prod mode, there may be a testSuite/prod folder. If so, use that as the rootDir
const prodDir = path.resolve(testDir, 'prod')
try {
fs.accessSync(prodDir, fs.constants.F_OK)
rootDir = prodDir
} catch (err) {
// Swallow err - no prod folder
}
}
} else {
rootDir = path.resolve(dirname, '..')
}
process.env.ROOT_DIR = rootDir
await generateImportMap(config, { log: true, force: true })
}
}
await run()