create-coreback 1.0.1 → 1.0.2

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.
package/README.md CHANGED
@@ -19,7 +19,7 @@ yarn global add create-coreback
19
19
  pnpm create coreback
20
20
 
21
21
  # With project name
22
- pnpm create coreback my-api
22
+ pnpm create coreback my-project
23
23
  ```
24
24
 
25
25
  ## Features
@@ -37,7 +37,7 @@ pnpm create coreback my-api
37
37
  ## Generated Project Structure
38
38
 
39
39
  ```
40
- my-backend/
40
+ my-project/
41
41
  ├── src/
42
42
  │ ├── config/ # Configuration files
43
43
  │ ├── controllers/ # HTTP handlers
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAgC,MAAM,YAAY,CAAC;AAEzE,wBAAsB,mBAAmB,CACvC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,CAAC,CAsDxB"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAgC,MAAM,YAAY,CAAC;AAEzE,wBAAsB,mBAAmB,CACvC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,CAAC,CAqExB"}
package/dist/prompts.js CHANGED
@@ -1,22 +1,32 @@
1
1
  import inquirer from 'inquirer';
2
2
  export async function promptProjectConfig(defaultName) {
3
+ // If project name is provided as argument, use it directly without prompting
4
+ const projectName = defaultName
5
+ ? defaultName.toLowerCase().trim()
6
+ : undefined;
7
+ // Validate the provided name if it exists
8
+ if (projectName) {
9
+ if (!/^[a-z0-9-]+$/.test(projectName)) {
10
+ throw new Error('Project name must be lowercase, alphanumeric, and can contain hyphens');
11
+ }
12
+ }
3
13
  const answers = await inquirer.prompt([
4
- {
5
- type: 'input',
6
- name: 'projectName',
7
- message: 'Project name:',
8
- default: defaultName || 'my-backend',
9
- validate: (input) => {
10
- if (!input.trim()) {
11
- return 'Project name cannot be empty';
12
- }
13
- if (!/^[a-z0-9-]+$/.test(input)) {
14
- return 'Project name must be lowercase, alphanumeric, and can contain hyphens';
15
- }
16
- return true;
17
- },
18
- filter: (input) => input.toLowerCase().trim(),
19
- },
14
+ ...(projectName ? [] : [{
15
+ type: 'input',
16
+ name: 'projectName',
17
+ message: 'Project name:',
18
+ default: 'my-project',
19
+ validate: (input) => {
20
+ if (!input.trim()) {
21
+ return 'Project name cannot be empty';
22
+ }
23
+ if (!/^[a-z0-9-]+$/.test(input)) {
24
+ return 'Project name must be lowercase, alphanumeric, and can contain hyphens';
25
+ }
26
+ return true;
27
+ },
28
+ filter: (input) => input.toLowerCase().trim(),
29
+ }]),
20
30
  {
21
31
  type: 'list',
22
32
  name: 'database',
@@ -51,6 +61,9 @@ export async function promptProjectConfig(defaultName) {
51
61
  ],
52
62
  },
53
63
  ]);
54
- return answers;
64
+ return {
65
+ ...answers,
66
+ projectName: projectName || answers.projectName,
67
+ };
55
68
  }
56
69
  //# sourceMappingURL=prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAIhC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAoB;IAEpB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACpC;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,WAAW,IAAI,YAAY;YACpC,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;oBAClB,OAAO,8BAA8B,CAAC;gBACxC,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChC,OAAO,uEAAuE,CAAC;gBACjF,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;SACtD;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;gBAC3C,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;gBACjC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;gBACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;aACpC;SACF;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,6BAA6B;YACtC,OAAO,EAAE,IAAI;SACd;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,+BAA+B;YACxC,OAAO,EAAE,IAAI;SACd;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;gBAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;aAChC;SACF;KACF,CAAC,CAAC;IAEH,OAAO,OAAwB,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAIhC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAoB;IAEpB,6EAA6E;IAC7E,MAAM,WAAW,GAAG,WAAW;QAC7B,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;QAClC,CAAC,CAAC,SAAS,CAAC;IAEd,0CAA0C;IAC1C,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACpC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,eAAe;gBACxB,OAAO,EAAE,YAAY;gBACrB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;wBAClB,OAAO,8BAA8B,CAAC;oBACxC,CAAC;oBACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBAChC,OAAO,uEAAuE,CAAC;oBACjF,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;aACtD,CAAC,CAAC;QACH;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;gBAC3C,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;gBACjC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;gBACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;aACpC;SACF;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,6BAA6B;YACtC,OAAO,EAAE,IAAI;SACd;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,+BAA+B;YACxC,OAAO,EAAE,IAAI;SACd;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;gBAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;aAChC;SACF;KACF,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,OAAO;QACV,WAAW,EAAE,WAAW,IAAI,OAAO,CAAC,WAAW;KAC/B,CAAC;AACrB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-coreback",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "CLI to generate production-ready backend projects with Node.js, TypeScript and Express",
5
5
  "type": "module",
6
6
  "bin": {
package/src/prompts.ts CHANGED
@@ -1,16 +1,28 @@
1
1
  import inquirer from 'inquirer';
2
- import chalk from 'chalk';
2
+
3
3
  import { ProjectConfig, DatabaseType, PackageManager } from './types.js';
4
4
 
5
5
  export async function promptProjectConfig(
6
6
  defaultName?: string
7
7
  ): Promise<ProjectConfig> {
8
+ // If project name is provided as argument, use it directly without prompting
9
+ const projectName = defaultName
10
+ ? defaultName.toLowerCase().trim()
11
+ : undefined;
12
+
13
+ // Validate the provided name if it exists
14
+ if (projectName) {
15
+ if (!/^[a-z0-9-]+$/.test(projectName)) {
16
+ throw new Error('Project name must be lowercase, alphanumeric, and can contain hyphens');
17
+ }
18
+ }
19
+
8
20
  const answers = await inquirer.prompt([
9
- {
21
+ ...(projectName ? [] : [{
10
22
  type: 'input',
11
23
  name: 'projectName',
12
24
  message: 'Project name:',
13
- default: defaultName || 'my-backend',
25
+ default: 'my-project',
14
26
  validate: (input: string) => {
15
27
  if (!input.trim()) {
16
28
  return 'Project name cannot be empty';
@@ -21,7 +33,7 @@ export async function promptProjectConfig(
21
33
  return true;
22
34
  },
23
35
  filter: (input: string) => input.toLowerCase().trim(),
24
- },
36
+ }]),
25
37
  {
26
38
  type: 'list',
27
39
  name: 'database',
@@ -57,6 +69,9 @@ export async function promptProjectConfig(
57
69
  },
58
70
  ]);
59
71
 
60
- return answers as ProjectConfig;
72
+ return {
73
+ ...answers,
74
+ projectName: projectName || answers.projectName,
75
+ } as ProjectConfig;
61
76
  }
62
77