embedia
Version:
Zero-configuration AI chatbot integration CLI - direct file copy with embedded API keys
44 lines (37 loc) • 1.28 kB
JavaScript
const fs = require('fs-extra');
const path = require('path');
/**
* Simple Environment Detection
* Replaces complex EnvironmentContract with basic Next.js detection
*/
function detectSimpleEnvironment(projectPath = process.cwd()) {
const packageJsonPath = path.join(projectPath, 'package.json');
const tsconfigPath = path.join(projectPath, 'tsconfig.json');
let isNextJS = false;
let isTypeScript = false;
let isAppRouter = false;
// Check if it's a Next.js project
try {
if (fs.existsSync(packageJsonPath)) {
const packageJson = fs.readJsonSync(packageJsonPath);
isNextJS = !!(packageJson.dependencies?.next || packageJson.devDependencies?.next);
}
} catch (error) {
// Not a valid package.json, assume not Next.js
}
// Check for TypeScript
isTypeScript = fs.existsSync(tsconfigPath);
// Check for App Router (src/app or app directory)
if (isNextJS) {
const hasAppInSrc = fs.existsSync(path.join(projectPath, 'src/app'));
const hasAppInRoot = fs.existsSync(path.join(projectPath, 'app'));
isAppRouter = hasAppInSrc || hasAppInRoot;
}
return {
isNextJS,
isTypeScript,
isAppRouter,
framework: isNextJS ? 'nextjs' : 'unknown'
};
}
module.exports = { detectSimpleEnvironment };