(name: string)
| 32 | program.parse(process.argv); |
| 33 | |
| 34 | function initProject(name: string) { |
| 35 | // create folder |
| 36 | if (fs.existsSync(name)) { |
| 37 | console.log(colors.red(`Directory ${name} already exists.`)); |
| 38 | process.exit(1); |
| 39 | } |
| 40 | fs.mkdirSync(name); |
| 41 | process.chdir(name); |
| 42 | |
| 43 | console.log(colors.gray(`Using package manager: ${agent}`)); |
| 44 | |
| 45 | // create package.json |
| 46 | fs.writeFileSync( |
| 47 | 'package.json', |
| 48 | JSON.stringify( |
| 49 | { |
| 50 | name: 'zenstack-app', |
| 51 | version: '1.0.0', |
| 52 | description: 'Scaffolded with create-zenstack', |
| 53 | type: 'module', |
| 54 | scripts: { |
| 55 | dev: 'tsx main.ts', |
| 56 | }, |
| 57 | license: 'ISC', |
| 58 | }, |
| 59 | null, |
| 60 | 2, |
| 61 | ), |
| 62 | ); |
| 63 | |
| 64 | // create VSCode config files |
| 65 | createVsCodeConfig(); |
| 66 | |
| 67 | // install packages |
| 68 | const packages = [ |
| 69 | { name: '@zenstackhq/cli@latest', dev: true }, |
| 70 | { name: '@zenstackhq/schema@latest', dev: false }, |
| 71 | { name: '@zenstackhq/orm@latest', dev: false }, |
| 72 | { name: 'better-sqlite3', dev: false }, |
| 73 | { name: '@types/better-sqlite3', dev: true }, |
| 74 | { name: 'typescript', dev: true }, |
| 75 | { name: 'tsx', dev: true }, |
| 76 | { name: '@types/node', dev: true }, |
| 77 | ]; |
| 78 | for (const pkg of packages) { |
| 79 | installPackage(pkg); |
| 80 | } |
| 81 | |
| 82 | // create tsconfig.json |
| 83 | fs.writeFileSync( |
| 84 | 'tsconfig.json', |
| 85 | JSON.stringify( |
| 86 | { |
| 87 | compilerOptions: { |
| 88 | module: 'esnext', |
| 89 | target: 'esnext', |
| 90 | moduleResolution: 'bundler', |
| 91 | sourceMap: true, |
no test coverage detected