@nucel.cloud/cli
Version:
The open-source deployment platform for modern web apps
62 lines • 2.02 kB
JavaScript
import { CONSTANTS } from './constants.js';
export const FRAMEWORK_CONFIGS = {
nextjs: {
buildCommand: 'npm run build',
outputDirectory: '.next',
envPrefixes: ['NEXT_PUBLIC_', 'NUCEL_'],
configFiles: ['next.config.js', 'next.config.mjs', 'next.config.ts'],
dependencies: ['next'],
},
sveltekit: {
buildCommand: 'npm run build',
outputDirectory: '.svelte-kit',
envPrefixes: ['PUBLIC_', 'VITE_', 'NUCEL_'],
configFiles: ['svelte.config.js', 'vite.config.js', 'vite.config.ts'],
dependencies: ['@sveltejs/kit'],
},
'react-router': {
buildCommand: 'npm run build',
outputDirectory: 'build',
envPrefixes: ['VITE_', 'NUCEL_'],
configFiles: ['react-router.config.ts', 'react-router.config.js'],
dependencies: ['react-router', '@react-router/dev'],
},
hono: {
buildCommand: 'npm run build',
outputDirectory: '.nucel-build',
envPrefixes: ['HONO_', 'NUCEL_'],
configFiles: [],
dependencies: ['hono'],
},
unknown: {
buildCommand: 'npm run build',
outputDirectory: 'dist',
envPrefixes: [],
configFiles: [],
dependencies: [],
},
};
export function getFrameworkConfig(framework) {
return FRAMEWORK_CONFIGS[framework];
}
export function getFrameworkDefaults(framework) {
const config = getFrameworkConfig(framework);
return {
buildCommand: config.buildCommand,
outputDirectory: config.outputDirectory,
};
}
export function isAppEnvVar(key, framework) {
const config = getFrameworkConfig(framework);
if (config.envPrefixes.some(prefix => key.startsWith(prefix))) {
return true;
}
if (key.match(/^[A-Z_]+$/) && !isSystemEnvVar(key)) {
return true;
}
return false;
}
function isSystemEnvVar(key) {
return CONSTANTS.SYSTEM_ENV_PREFIXES.some(sysVar => key.startsWith(sysVar));
}
//# sourceMappingURL=framework-configs.js.map