y3-app
Version:
CLI to add your project structure
103 lines (102 loc) • 3.62 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getTsConfig = getTsConfig;
exports.getTsConfigNode = getTsConfigNode;
exports.getTsConfigApp = getTsConfigApp;
function getTsConfig(projectType) {
return projectType === 'node'
? {
compilerOptions: {
target: 'ES2022',
module: 'commonjs',
lib: ['ES2023'],
skipLibCheck: true,
moduleResolution: 'node',
outDir: './dist',
rootDir: './',
strict: true,
esModuleInterop: true,
noUnusedLocals: true,
noUnusedParameters: true,
noFallthroughCasesInSwitch: true,
forceConsistentCasingInFileNames: true,
},
include: ['src'],
}
: {
compilerOptions: {
tsBuildInfoFile: './node_modules/.tmp/tsconfig.app.tsbuildinfo',
target: 'ES2020',
useDefineForClassFields: true,
lib: ['ES2020', 'DOM', 'DOM.Iterable'],
module: 'commonjs',
skipLibCheck: true,
baseUrl: '.',
paths: {
'@/*': [projectType === 'fullstack' ? './frontend/*' : './src/*'],
},
moduleResolution: 'bundler',
allowImportingTsExtensions: true,
verbatimModuleSyntax: true,
moduleDetection: 'force',
noEmit: true,
jsx: 'react-jsx',
strict: true,
noUnusedLocals: true,
noUnusedParameters: true,
noFallthroughCasesInSwitch: true,
noUncheckedSideEffectImports: true,
},
include: [projectType === 'fullstack' ? 'frontend' : 'src'],
};
}
function getTsConfigNode() {
return {
compilerOptions: {
tsBuildInfoFile: './node_modules/.tmp/tsconfig.node.tsbuildinfo',
target: 'ES2022',
lib: ['ES2023'],
module: 'ESNext',
skipLibCheck: true,
moduleResolution: 'bundler',
allowImportingTsExtensions: true,
verbatimModuleSyntax: true,
moduleDetection: 'force',
noEmit: true,
strict: true,
noUnusedLocals: true,
noUnusedParameters: true,
noFallthroughCasesInSwitch: true,
noUncheckedSideEffectImports: true,
},
include: ['vite.config.ts'],
};
}
function getTsConfigApp(projectType) {
return {
compilerOptions: {
tsBuildInfoFile: './node_modules/.tmp/tsconfig.app.tsbuildinfo',
target: 'ES2020',
useDefineForClassFields: true,
lib: ['ES2020', 'DOM', 'DOM.Iterable'],
module: 'ESNext',
skipLibCheck: true,
baseUrl: '.',
paths: {
'@/*': [projectType === 'fullstack' ? './frontend/*' : './src/*'],
},
moduleResolution: 'bundler',
allowImportingTsExtensions: true,
verbatimModuleSyntax: true,
moduleDetection: 'force',
noEmit: true,
jsx: 'react-jsx',
strict: true,
noUnusedLocals: true,
noUnusedParameters: true,
noFallthroughCasesInSwitch: true,
noUncheckedSideEffectImports: true,
},
include: [projectType === 'fullstack' ? 'frontend' : 'src'],
};
}