|
123456789101112131415161718192021222324252627282930313233343536373839 |
- import fs from 'fs'
- import dotenv from 'dotenv'
-
- // read .env file if exists
- const envFilePath = './examples/.env'
- if (fs.existsSync(envFilePath)) {
- dotenv.config({ path: envFilePath })
- }
-
- // Parse DOT_ENV_CONTENT environment variable as .env file if it exists(for ci)
- if (process.env.DOT_ENV_CONTENT) {
- const envConfig = dotenv.parse(process.env.TP_EX)
- for (const key in envConfig) {
- process.env[key] = envConfig[key]
- }
- }
-
- // Filter EX_ variables from environment
- const envVars = Object.entries(process.env)
- .filter(([key]) => key.startsWith('TP_EX_'))
- .reduce((acc, [key, value]) => {
- acc[key.replace('TP_EX_', '')] = value
- return acc
- }, {'DUMMY': '1'}) // dummy to prevent empty file which is not a module apparently
-
- // Generate globals.js
- const jsOutput = Object.entries(envVars)
- .map(([key, val]) => `export const ${key} = ${JSON.stringify(val)}`)
- .join('\n') + '\n'
- fs.writeFileSync('./examples/globals.js', jsOutput, 'utf8')
-
- // Generate globals.d.ts
- const dtsOutput = Object.entries(envVars)
- .map(([key, value]) => `export const ${key}: ${typeof value}`)
- .join('\n') + '\n'
-
- fs.writeFileSync('./examples/globals.d.ts', dtsOutput, 'utf8')
-
- console.log('✅ globals.js and globals.d.ts generated.')
|