es-guard
Version:
A tool to check JavaScript compatibility with target environments
75 lines • 2.03 kB
JavaScript
/**
* Next.js default browserslist configuration
* Source: https://nextjs.org/docs/basic-features/supported-browsers-features
*/
export const NEXTJS_DEFAULT_BROWSERSLIST = ["chrome 64", "edge 79", "firefox 67", "opera 51", "safari 12"];
/**
* Default output directories for different project types
*/
export const DEFAULT_OUTPUT_DIRS = {
nextjs: ".next/static",
vite: "dist",
webpack: "dist",
rollup: "dist",
parcel: "dist",
generic: "dist",
};
/**
* Project type detection helpers
*/
export const PROJECT_TYPES = {
nextjs: "nextjs",
vite: "vite",
webpack: "webpack",
rollup: "rollup",
parcel: "parcel",
generic: "generic",
};
export const ProjectTypeKeys = new Set(Object.keys(PROJECT_TYPES));
export const isProjectType = (projectType) => {
return ProjectTypeKeys.has(projectType);
};
/**
* Get default browserslist for a project type
*/
export function getDefaultBrowserslist(projectType) {
switch (projectType) {
case PROJECT_TYPES.nextjs:
return [...NEXTJS_DEFAULT_BROWSERSLIST];
// Add more project types here as needed
default:
return null;
}
}
/**
* Get default output directory for a project type
*/
export function getDefaultOutputDir(projectType) {
if (isProjectType(projectType)) {
return DEFAULT_OUTPUT_DIRS[projectType];
}
return DEFAULT_OUTPUT_DIRS.generic;
}
/**
* Detect project type from package.json dependencies
*/
export function detectProjectType(dependencies = {}, devDependencies = {}) {
const allDeps = { ...dependencies, ...devDependencies };
if (allDeps.next) {
return PROJECT_TYPES.nextjs;
}
if (allDeps.vite) {
return PROJECT_TYPES.vite;
}
if (allDeps.webpack) {
return PROJECT_TYPES.webpack;
}
if (allDeps.rollup) {
return PROJECT_TYPES.rollup;
}
if (allDeps.parcel) {
return PROJECT_TYPES.parcel;
}
return PROJECT_TYPES.generic;
}
//# sourceMappingURL=defaults.js.map