@darkstar-cli/cli 0.0.14 → 0.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AA0FA,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,iBAoCxC"}
1
+ {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAiKA,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,iBA8BxC"}
@@ -45,46 +45,110 @@ function log(msg) { console.log(msg); }
45
45
  function success(msg) { log(kleur_1.default.green(' ✔ ') + msg); }
46
46
  function info(msg) { log(kleur_1.default.cyan(' → ') + msg); }
47
47
  function error(msg) { log(kleur_1.default.red(' ✘ ') + msg); }
48
- function copyTemplate(src, dest) {
49
- if (!fs.existsSync(src)) {
50
- error(`Template não encontrado em: ${src}`);
51
- process.exit(1);
52
- }
53
- fs.mkdirSync(dest, { recursive: true });
54
- const entries = fs.readdirSync(src, { withFileTypes: true });
55
- for (const entry of entries) {
56
- if (entry.name.endsWith('.stub'))
57
- continue;
58
- const srcPath = path.join(src, entry.name);
59
- const destPath = path.join(dest, entry.name);
60
- if (entry.isDirectory()) {
61
- copyTemplate(srcPath, destPath);
62
- }
63
- else {
64
- const destName = entry.name === 'tanis.config.ts' ? 'darkstar.config.ts' : entry.name;
65
- fs.copyFileSync(srcPath, path.join(dest, destName));
66
- }
48
+ function write(filePath, content) {
49
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
50
+ fs.writeFileSync(filePath, content, 'utf-8');
51
+ }
52
+ function generateStructure(projectPath, projectName) {
53
+ // Diretórios vazios (com .gitkeep)
54
+ const dirs = [
55
+ 'src/controllers',
56
+ 'src/services',
57
+ 'src/repositories',
58
+ 'src/models',
59
+ 'src/routes',
60
+ 'src/schemas',
61
+ 'src/middlewares',
62
+ 'src/utils',
63
+ 'database/migrations',
64
+ 'database/seeders',
65
+ ];
66
+ for (const dir of dirs) {
67
+ const full = path.join(projectPath, dir);
68
+ fs.mkdirSync(full, { recursive: true });
69
+ fs.writeFileSync(path.join(full, '.gitkeep'), '');
67
70
  }
71
+ // src/core/app.ts
72
+ write(path.join(projectPath, 'src/core/app.ts'), `import 'dotenv/config'
73
+ import { DarkstarApp } from '@darkstar-cli/core'
74
+
75
+ const app = new DarkstarApp()
76
+
77
+ app.boot('/api').then(() => {
78
+ const port = process.env.PORT ?? 3000
79
+ app.listen(Number(port), () => {
80
+ console.log(\`🪐 DarkStar rodando em http://localhost:\${port}\`)
81
+ })
82
+ })
83
+ `);
84
+ // database/seeders/Seeder.ts
85
+ write(path.join(projectPath, 'database/seeders/Seeder.ts'), `export abstract class Seeder {
86
+ abstract run(): Promise<void>
68
87
  }
69
- function configureEnv(projectPath, projectName) {
70
- const envPath = path.join(projectPath, '.env.example');
71
- if (!fs.existsSync(envPath))
72
- return;
73
- let env = fs.readFileSync(envPath, 'utf-8');
74
- env = env.replace(/^DB_DATABASE=.*/m, `DB_DATABASE=${projectName}`);
75
- fs.writeFileSync(envPath, env, 'utf-8');
76
- fs.copyFileSync(envPath, path.join(projectPath, '.env'));
88
+ `);
89
+ // database/seeders/DatabaseSeeder.ts
90
+ write(path.join(projectPath, 'database/seeders/DatabaseSeeder.ts'), `import { Seeder } from './Seeder'
91
+
92
+ export class DatabaseSeeder extends Seeder {
93
+ async run(): Promise<void> {
94
+ // registre seus seeders aqui
95
+ }
77
96
  }
78
- function configurePackageJson(projectPath, projectName) {
79
- const pkgPath = path.join(projectPath, 'package.json');
80
- const deps = {
81
- '@darkstar-cli/core': 'latest',
82
- '@darkstar-cli/orm': 'latest',
83
- 'dotenv': 'latest',
84
- 'express': 'latest',
85
- 'express-rate-limit': 'latest',
86
- 'zod': 'latest',
87
- };
97
+ `);
98
+ // darkstar.config.ts
99
+ write(path.join(projectPath, 'darkstar.config.ts'), `import type { DarkstarConfig } from '@darkstar-cli/core'
100
+
101
+ const config: DarkstarConfig = {
102
+ db: {
103
+ client: process.env.DB_CLIENT as 'mysql' | 'pg' | 'sqlite3' ?? 'mysql',
104
+ host: process.env.DB_HOST ?? '127.0.0.1',
105
+ port: Number(process.env.DB_PORT ?? 3306),
106
+ user: process.env.DB_USER ?? 'root',
107
+ password: process.env.DB_PASSWORD ?? '',
108
+ database: process.env.DB_DATABASE ?? '${projectName}',
109
+ },
110
+ }
111
+
112
+ export default config
113
+ `);
114
+ // tsconfig.json
115
+ write(path.join(projectPath, 'tsconfig.json'), JSON.stringify({
116
+ compilerOptions: {
117
+ target: 'ES2020',
118
+ module: 'commonjs',
119
+ lib: ['ES2020'],
120
+ outDir: './dist',
121
+ rootDir: './src',
122
+ strict: true,
123
+ esModuleInterop: true,
124
+ skipLibCheck: true,
125
+ forceConsistentCasingInFileNames: true,
126
+ resolveJsonModule: true,
127
+ emitDecoratorMetadata: false,
128
+ experimentalDecorators: false,
129
+ },
130
+ include: ['src/**/*', 'darkstar.config.ts'],
131
+ exclude: ['node_modules', 'dist'],
132
+ }, null, 2));
133
+ // .gitignore
134
+ write(path.join(projectPath, '.gitignore'), `node_modules/
135
+ dist/
136
+ .env
137
+ *.log
138
+ `);
139
+ // .env.example / .env
140
+ const env = `DB_CLIENT=mysql
141
+ DB_HOST=127.0.0.1
142
+ DB_PORT=3306
143
+ DB_USER=root
144
+ DB_PASSWORD=
145
+ DB_DATABASE=${projectName}
146
+ PORT=3000
147
+ `;
148
+ write(path.join(projectPath, '.env.example'), env);
149
+ write(path.join(projectPath, '.env'), env);
150
+ }
151
+ function generatePackageJson(projectPath, projectName) {
88
152
  const pkg = {
89
153
  name: projectName,
90
154
  version: '0.0.1',
@@ -95,7 +159,14 @@ function configurePackageJson(projectPath, projectName) {
95
159
  build: 'tsc',
96
160
  start: 'node dist/core/app.js',
97
161
  },
98
- dependencies: deps,
162
+ dependencies: {
163
+ '@darkstar-cli/core': 'latest',
164
+ '@darkstar-cli/orm': 'latest',
165
+ 'dotenv': 'latest',
166
+ 'express': 'latest',
167
+ 'express-rate-limit': 'latest',
168
+ 'zod': 'latest',
169
+ },
99
170
  devDependencies: {
100
171
  '@types/express': 'latest',
101
172
  '@types/express-rate-limit': 'latest',
@@ -104,7 +175,7 @@ function configurePackageJson(projectPath, projectName) {
104
175
  'typescript': 'latest',
105
176
  },
106
177
  };
107
- fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2), 'utf-8');
178
+ write(path.join(projectPath, 'package.json'), JSON.stringify(pkg, null, 2));
108
179
  }
109
180
  function installDeps(projectPath) {
110
181
  info('Instalando dependências...');
@@ -125,15 +196,11 @@ async function runNew(name) {
125
196
  error(`A pasta "${name}" já existe.`);
126
197
  process.exit(1);
127
198
  }
128
- const templatePath = path.resolve(__dirname, '../../../templates/project');
129
- info('Copiando estrutura do projeto...');
130
- copyTemplate(templatePath, projectPath);
199
+ info('Gerando estrutura do projeto...');
200
+ generateStructure(projectPath, name);
131
201
  success('Estrutura criada');
132
- info('Configurando .env...');
133
- configureEnv(projectPath, name);
134
- success('.env configurado');
135
202
  info('Configurando package.json...');
136
- configurePackageJson(projectPath, name);
203
+ generatePackageJson(projectPath, name);
137
204
  success('package.json configurado');
138
205
  installDeps(projectPath);
139
206
  console.log('');
@@ -1 +1 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@darkstar-cli/cli",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "description": "CLI do framework DarkStar — backend Node.js inspirado no Laravel",
5
5
  "license": "MIT",
6
6
  "author": "Albertaodasmassa",
@@ -1,90 +0,0 @@
1
- # -----------------------------------------------
2
- # TANIS — Environment Configuration
3
- # -----------------------------------------------
4
- # Copie este arquivo para .env e preencha os valores
5
- # cp .env.example .env
6
- # -----------------------------------------------
7
-
8
- # App
9
- APP_NAME=DarkStar
10
- APP_ENV=local # local | development | staging | production
11
- APP_DEBUG=true
12
- APP_URL=http://localhost
13
- APP_PORT=3000
14
- APP_KEY= # gerado pelo: tanis artisan key:generate
15
-
16
- # Locale
17
- APP_LOCALE=pt_BR
18
- APP_TIMEZONE=America/Sao_Paulo
19
-
20
- # -----------------------------------------------
21
- # Database
22
- # -----------------------------------------------
23
- DB_CONNECTION=mysql # sqlite | mysql | postgres
24
- DB_HOST=127.0.0.1
25
- DB_PORT=3306 # mysql: 3306 | postgres: 5432
26
- DB_DATABASE=darkstar
27
- DB_USERNAME=root # Seu usuario do banco Local
28
- DB_PASSWORD=root # Sua senha do banco local
29
-
30
- # -----------------------------------------------
31
- # Cache
32
- # -----------------------------------------------
33
- CACHE_DRIVER=memory # memory | redis
34
-
35
- # -----------------------------------------------
36
- # Session
37
- # -----------------------------------------------
38
- SESSION_DRIVER=memory # memory | redis | database
39
- SESSION_LIFETIME=120 # em minutos
40
- SESSION_SECRET= # gerado pelo: tanis artisan key:generate
41
-
42
- # -----------------------------------------------
43
- # Queue
44
- # -----------------------------------------------
45
- QUEUE_CONNECTION=sync # sync | redis | database
46
-
47
- # -----------------------------------------------
48
- # Redis
49
- # -----------------------------------------------
50
- REDIS_HOST=127.0.0.1
51
- REDIS_PORT=6379
52
- REDIS_PASSWORD=null
53
- REDIS_DB=0
54
-
55
- # -----------------------------------------------
56
- # Auth / JWT
57
- # -----------------------------------------------
58
- JWT_SECRET= # gerado pelo: tanis artisan key:generate
59
- JWT_EXPIRES_IN= # ex: 60s | 10m | 2h | 7d
60
- JWT_REFRESH_EXPIRES_IN= # ex: 60s | 10m | 2h | 7d
61
-
62
- # -----------------------------------------------
63
- # Mail
64
- # -----------------------------------------------
65
- MAIL_DRIVER=log # log | smtp | ses | sendgrid
66
- MAIL_HOST=127.0.0.1
67
- MAIL_PORT=2525
68
- MAIL_USERNAME=null
69
- MAIL_PASSWORD=null
70
- MAIL_FROM_ADDRESS="hello@example.com"
71
- MAIL_FROM_NAME="${APP_NAME}"
72
- MAIL_ENCRYPTION=null # null | tls | ssl
73
-
74
- # -----------------------------------------------
75
- # Storage / AWS S3
76
- # -----------------------------------------------
77
- FILESYSTEM_DISK=local # local | s3
78
-
79
- AWS_ACCESS_KEY_ID=
80
- AWS_SECRET_ACCESS_KEY=
81
- AWS_DEFAULT_REGION=us-east-1
82
- AWS_BUCKET=
83
- AWS_ENDPOINT= # para MinIO ou S3-compatíveis
84
-
85
- # -----------------------------------------------
86
- # Logging
87
- # -----------------------------------------------
88
- LOG_CHANNEL=console # console | file | combined
89
- LOG_LEVEL=debug # debug | info | warn | error
90
- LOG_FILE=storage/logs/tanis.log
File without changes
@@ -1,13 +0,0 @@
1
- import { Seeder } from './Seeder'
2
-
3
- export class DatabaseSeeder {
4
- private seeders: Seeder[] = [
5
- // registre seus seeders aqui
6
- ]
7
-
8
- async run() {
9
- for (const seeder of this.seeders) {
10
- await seeder.run()
11
- }
12
- }
13
- }
@@ -1,3 +0,0 @@
1
- export abstract class Seeder {
2
- abstract run(): Promise<void>
3
- }
@@ -1,32 +0,0 @@
1
- import { TanisRequest, TanisResponse } from '@darkstar-cli/core'
2
- import { {{name}}Service } from '../services/{{name}}Service'
3
-
4
- export class {{name}}Controller {
5
- constructor(private {{nameLower}}Service: {{name}}Service) {}
6
-
7
- async index(req: TanisRequest, res: TanisResponse) {
8
- const data = await this.{{nameLower}}Service.findAll()
9
- return res.ok(data)
10
- }
11
-
12
- async show(req: TanisRequest, res: TanisResponse) {
13
- const data = await this.{{nameLower}}Service.findById(req.param('id')!)
14
- if (!data) return res.notFound('{{name}} não encontrado')
15
- return res.ok(data)
16
- }
17
-
18
- async store(req: TanisRequest, res: TanisResponse) {
19
- const data = await this.{{nameLower}}Service.create(req.all())
20
- return res.created(data)
21
- }
22
-
23
- async update(req: TanisRequest, res: TanisResponse) {
24
- const data = await this.{{nameLower}}Service.update(req.param('id')!, req.all())
25
- return res.ok(data)
26
- }
27
-
28
- async destroy(req: TanisRequest, res: TanisResponse) {
29
- await this.{{nameLower}}Service.delete(req.param('id')!)
30
- return res.noContent()
31
- }
32
- }
@@ -1,5 +0,0 @@
1
- import { DarkstarApp } from '@darkstar-cli/core'
2
-
3
- const app = new DarkstarApp()
4
-
5
- app.boot().then(() => app.listen())
@@ -1,5 +0,0 @@
1
- import { Model } from '@darkstar-cli/orm'
2
-
3
- export class {{name}} extends Model {
4
- static table = '{{tableName}}'
5
- }
@@ -1,9 +0,0 @@
1
- import { {{name}} } from '../models/{{name}}'
2
-
3
- export class {{name}}Repository {
4
- findAll() { return {{name}}.findAll() }
5
- findById(id: string) { return {{name}}.findById(id) }
6
- create(data: Record<string, any>) { return {{name}}.create(data as any) }
7
- update(id: string, data: Record<string, any>) { return {{name}}.update(id, data as any) }
8
- delete(id: string) { return {{name}}.delete(id) }
9
- }
@@ -1,11 +0,0 @@
1
- import { {{name}}Repository } from '../repositories/{{name}}Repository'
2
-
3
- export class {{name}}Service {
4
- constructor(private {{nameLower}}Repository: {{name}}Repository) {}
5
-
6
- findAll() { return this.{{nameLower}}Repository.findAll() }
7
- findById(id: string) { return this.{{nameLower}}Repository.findById(id) }
8
- create(data: Record<string, any>) { return this.{{nameLower}}Repository.create(data) }
9
- update(id: string, data: Record<string, any>) { return this.{{nameLower}}Repository.update(id, data) }
10
- delete(id: string) { return this.{{nameLower}}Repository.delete(id) }
11
- }
File without changes
File without changes
@@ -1,15 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2020",
4
- "module": "Node16",
5
- "moduleResolution": "node16",
6
- "outDir": "./dist",
7
- "rootDir": "./src",
8
- "strict": true,
9
- "esModuleInterop": true,
10
- "skipLibCheck": true,
11
- "resolveJsonModule": true
12
- },
13
- "include": ["src/**/*"],
14
- "exclude": ["node_modules", "dist"]
15
- }