create-elysiajs
Version:
Scaffolding your Elysia project with the environment with easy!
46 lines (45 loc) • 1.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getVSCodeExtensions = getVSCodeExtensions;
exports.getVSCodeSettings = getVSCodeSettings;
const linterExtensionTag = {
ESLint: "dbaeumer.vscode-eslint",
Biome: "biomejs.biome",
};
function getVSCodeExtensions({ linter, packageManager, docker, orm, }) {
const extensionsFile = {
// just best general purpose extensions and i guess they useful
recommendations: [
"usernamehw.errorlens",
"YoavBls.pretty-ts-errors",
"meganrogge.template-string-converter",
],
};
if (packageManager === "bun")
extensionsFile.recommendations.push("oven.bun-vscode");
if (linter !== "None")
extensionsFile.recommendations.push(linterExtensionTag[linter]);
if (docker)
extensionsFile.recommendations.push("ms-azuretools.vscode-docker");
if (orm === "Drizzle")
extensionsFile.recommendations.push("rphlmr.vscode-drizzle-orm");
if (orm === "Prisma")
extensionsFile.recommendations.push("Prisma.prisma");
return JSON.stringify(extensionsFile, null, 2);
}
function getVSCodeSettings({ linter }) {
let settingsFile = {
"editor.formatOnSave": true,
};
if (linter !== "None")
settingsFile = {
...settingsFile,
"[javascript]": {
"editor.defaultFormatter": linterExtensionTag[linter],
},
"[typescript]": {
"editor.defaultFormatter": linterExtensionTag[linter],
},
};
return JSON.stringify(settingsFile, null, 2);
}