@eljs/create-preset-structure
Version:
Project structure template powered by @eljs/create.
55 lines (52 loc) • 1.35 kB
text/typescript
/* eslint-disable @typescript-eslint/naming-convention */
import type { Api } from '@eljs/create'
export default async (api: Api) => {
api.modifyTsConfig(() => {
const { isMonorepo } = api.prompts
const include = isMonorepo
? ['packages/*/src', './global.d.ts']
: ['src', './global.d.ts']
return {
compilerOptions: {
target: 'es2016',
module: 'esnext',
moduleResolution: 'node',
...(isMonorepo
? {}
: {
outDir: 'esm',
}),
allowJs: false,
sourceMap: false,
declaration: true,
...(isMonorepo
? {}
: {
declarationDir: 'esm',
}),
declarationMap: true,
noUnusedLocals: true,
useDefineForClassFields: false,
experimentalDecorators: true,
emitDecoratorMetadata: true,
isolatedModules: true,
verbatimModuleSyntax: true,
esModuleInterop: true,
removeComments: false,
skipLibCheck: true,
strict: true,
jsx: 'react',
lib: ['esnext'],
...(isMonorepo
? {}
: {
paths: {
'@/*': ['./src/*'],
},
}),
},
include,
exclude: ['node_modules', 'dist', 'lib', 'esm'],
}
})
}