create-coreback 1.0.3 → 1.0.4

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.
@@ -64,19 +64,22 @@ jobs:
64
64
  id: pkg-manager
65
65
  run: |
66
66
  if [ -f "pnpm-lock.yaml" ]; then
67
- echo "manager=pnpm" >> $GITHUB_OUTPUT
68
- echo "install_cmd=pnpm install --frozen-lockfile" >> $GITHUB_OUTPUT
69
- echo "build_cmd=pnpm run build" >> $GITHUB_OUTPUT
67
+ MANAGER="pnpm"
68
+ INSTALL_CMD="pnpm install --frozen-lockfile"
69
+ BUILD_CMD="pnpm run build"
70
70
  elif [ -f "yarn.lock" ]; then
71
- echo "manager=yarn" >> $GITHUB_OUTPUT
72
- echo "install_cmd=yarn install --frozen-lockfile" >> $GITHUB_OUTPUT
73
- echo "build_cmd=yarn run build" >> $GITHUB_OUTPUT
71
+ MANAGER="yarn"
72
+ INSTALL_CMD="yarn install --frozen-lockfile"
73
+ BUILD_CMD="yarn run build"
74
74
  else
75
- echo "manager=npm" >> $GITHUB_OUTPUT
76
- echo "install_cmd=npm ci" >> $GITHUB_OUTPUT
77
- echo "build_cmd=npm run build" >> $GITHUB_OUTPUT
75
+ MANAGER="npm"
76
+ INSTALL_CMD="npm ci"
77
+ BUILD_CMD="npm run build"
78
78
  fi
79
- echo "Detected package manager: ${{ steps.pkg-manager.outputs.manager }}"
79
+ echo "manager=$MANAGER" >> $GITHUB_OUTPUT
80
+ echo "install_cmd=$INSTALL_CMD" >> $GITHUB_OUTPUT
81
+ echo "build_cmd=$BUILD_CMD" >> $GITHUB_OUTPUT
82
+ echo "Detected package manager: $MANAGER"
80
83
 
81
84
  - name: Setup package manager
82
85
  if: steps.pkg-manager.outputs.manager == 'pnpm'
@@ -1 +1 @@
1
- {"version":3,"file":"eslint.d.ts","sourceRoot":"","sources":["../../src/generators/eslint.ts"],"names":[],"mappings":"AAGA,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC7E"}
1
+ {"version":3,"file":"eslint.d.ts","sourceRoot":"","sources":["../../src/generators/eslint.ts"],"names":[],"mappings":"AAGA,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B7E"}
@@ -1,32 +1,30 @@
1
1
  import fs from 'fs-extra';
2
2
  import path from 'path';
3
3
  export async function generateEslintConfig(projectPath) {
4
- const eslintConfig = {
5
- parser: '@typescript-eslint/parser',
6
- parserOptions: {
7
- ecmaVersion: 2022,
8
- sourceType: 'module',
9
- project: './tsconfig.json',
10
- },
11
- plugins: ['@typescript-eslint'],
12
- extends: [
13
- 'eslint:recommended',
14
- 'plugin:@typescript-eslint/recommended',
15
- 'plugin:@typescript-eslint/recommended-requiring-type-checking',
16
- ],
17
- root: true,
18
- env: {
19
- node: true,
20
- jest: true,
21
- },
22
- ignorePatterns: ['.eslintrc.json', 'dist', 'node_modules'],
23
- rules: {
24
- '@typescript-eslint/interface-name-prefix': 'off',
25
- '@typescript-eslint/explicit-function-return-type': 'off',
26
- '@typescript-eslint/explicit-module-boundary-types': 'off',
27
- '@typescript-eslint/no-explicit-any': 'warn',
28
- },
29
- };
30
- await fs.writeJSON(path.join(projectPath, '.eslintrc.json'), eslintConfig, { spaces: 2 });
4
+ // ESLint 9 uses flat config format
5
+ const eslintConfig = `import js from '@eslint/js';
6
+ import tseslint from 'typescript-eslint';
7
+
8
+ export default tseslint.config(
9
+ js.configs.recommended,
10
+ ...tseslint.configs.recommended,
11
+ {
12
+ languageOptions: {
13
+ ecmaVersion: 2022,
14
+ sourceType: 'module',
15
+ parserOptions: {
16
+ project: './tsconfig.json',
17
+ },
18
+ },
19
+ rules: {
20
+ '@typescript-eslint/no-explicit-any': 'warn',
21
+ },
22
+ },
23
+ {
24
+ ignores: ['dist', 'node_modules', '*.js'],
25
+ }
26
+ );
27
+ `;
28
+ await fs.writeFile(path.join(projectPath, 'eslint.config.js'), eslintConfig);
31
29
  }
32
30
  //# sourceMappingURL=eslint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../src/generators/eslint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB;IAC5D,MAAM,YAAY,GAAG;QACnB,MAAM,EAAE,2BAA2B;QACnC,aAAa,EAAE;YACb,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,iBAAiB;SAC3B;QACD,OAAO,EAAE,CAAC,oBAAoB,CAAC;QAC/B,OAAO,EAAE;YACP,oBAAoB;YACpB,uCAAuC;YACvC,+DAA+D;SAChE;QACD,IAAI,EAAE,IAAI;QACV,GAAG,EAAE;YACH,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;SACX;QACD,cAAc,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,cAAc,CAAC;QAC1D,KAAK,EAAE;YACL,0CAA0C,EAAE,KAAK;YACjD,kDAAkD,EAAE,KAAK;YACzD,mDAAmD,EAAE,KAAK;YAC1D,oCAAoC,EAAE,MAAM;SAC7C;KACF,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,EACxC,YAAY,EACZ,EAAE,MAAM,EAAE,CAAC,EAAE,CACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../src/generators/eslint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB;IAC5D,mCAAmC;IACnC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBtB,CAAC;IAEA,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAC1C,YAAY,CACb,CAAC;AACJ,CAAC"}
@@ -31,9 +31,9 @@ export async function generatePackageJson(projectPath, config) {
31
31
  '@types/swagger-ui-express': '^4.1.8',
32
32
  '@types/jest': '^29.5.14',
33
33
  '@types/supertest': '^6.0.3',
34
- '@typescript-eslint/eslint-plugin': '^8.50.1',
35
- '@typescript-eslint/parser': '^8.50.1',
36
- eslint: '^8.57.1',
34
+ 'typescript-eslint': '^8.50.1',
35
+ '@eslint/js': '^9.39.2',
36
+ eslint: '^9.39.2',
37
37
  prettier: '^3.7.4',
38
38
  'ts-jest': '^29.4.6',
39
39
  jest: '^30.2.0',
@@ -51,8 +51,8 @@ export async function generatePackageJson(projectPath, config) {
51
51
  dev: 'tsx watch src/index.ts',
52
52
  build: 'tsc',
53
53
  start: 'node dist/index.js',
54
- lint: 'eslint src --ext .ts',
55
- 'lint:fix': 'eslint src --ext .ts --fix',
54
+ lint: 'eslint src',
55
+ 'lint:fix': 'eslint src --fix',
56
56
  format: 'prettier --write "src/**/*.ts"',
57
57
  test: 'jest',
58
58
  'test:watch': 'jest --watch',
@@ -1 +1 @@
1
- {"version":3,"file":"packageJson.js","sourceRoot":"","sources":["../../src/generators/packageJson.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAmB,EACnB,MAAqB;IAErB,MAAM,YAAY,GAA2B;QAC3C,OAAO,EAAE,SAAS;QAClB,oBAAoB,EAAE,QAAQ;QAC9B,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE,SAAS;QACjB,GAAG,EAAE,UAAU;QACf,OAAO,EAAE,SAAS;QAClB,gBAAgB,EAAE,SAAS;QAC3B,eAAe,EAAE,QAAQ;QACzB,oBAAoB,EAAE,QAAQ;KAC/B,CAAC;IAEF,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,YAAY,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC;QACxC,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;QAClC,YAAY,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;IACxC,CAAC;IAED,MAAM,eAAe,GAA2B;QAC9C,gBAAgB,EAAE,UAAU;QAC5B,aAAa,EAAE,SAAS;QACxB,oBAAoB,EAAE,QAAQ;QAC9B,aAAa,EAAE,WAAW;QAC1B,qBAAqB,EAAE,SAAS;QAChC,eAAe,EAAE,QAAQ;QACzB,mBAAmB,EAAE,SAAS;QAC9B,sBAAsB,EAAE,QAAQ;QAChC,2BAA2B,EAAE,QAAQ;QACrC,aAAa,EAAE,UAAU;QACzB,kBAAkB,EAAE,QAAQ;QAC5B,kCAAkC,EAAE,SAAS;QAC7C,2BAA2B,EAAE,SAAS;QACtC,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,SAAS;QACpB,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,QAAQ;QACnB,GAAG,EAAE,SAAS;QACd,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,MAAM,CAAC,WAAW;QACxB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE;YACP,GAAG,EAAE,wBAAwB;YAC7B,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,sBAAsB;YAC5B,UAAU,EAAE,4BAA4B;YACxC,MAAM,EAAE,gCAAgC;YACxC,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,cAAc;YAC5B,eAAe,EAAE,iBAAiB;YAClC,SAAS,EAAE,gBAAgB;YAC3B,YAAY,EAAE,oBAAoB;YAClC,WAAW,EAAE,eAAe;YAC5B,aAAa,EAAE,iBAAiB;YAChC,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI;gBAC1B,WAAW,EAAE,sBAAsB;gBACnC,aAAa,EAAE,qBAAqB;aACrC,CAAC;SACH;QACD,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC;QACrD,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,KAAK;QACd,YAAY;QACZ,eAAe;QACf,OAAO,EAAE;YACP,IAAI,EAAE,UAAU;SACjB;KACF,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,WAAW,EAAE;QACtE,MAAM,EAAE,CAAC;KACV,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"packageJson.js","sourceRoot":"","sources":["../../src/generators/packageJson.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAmB,EACnB,MAAqB;IAErB,MAAM,YAAY,GAA2B;QAC3C,OAAO,EAAE,SAAS;QAClB,oBAAoB,EAAE,QAAQ;QAC9B,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE,SAAS;QACjB,GAAG,EAAE,UAAU;QACf,OAAO,EAAE,SAAS;QAClB,gBAAgB,EAAE,SAAS;QAC3B,eAAe,EAAE,QAAQ;QACzB,oBAAoB,EAAE,QAAQ;KAC/B,CAAC;IAEF,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,YAAY,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC;QACxC,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;QAClC,YAAY,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;IACxC,CAAC;IAED,MAAM,eAAe,GAA2B;QAC9C,gBAAgB,EAAE,UAAU;QAC5B,aAAa,EAAE,SAAS;QACxB,oBAAoB,EAAE,QAAQ;QAC9B,aAAa,EAAE,WAAW;QAC1B,qBAAqB,EAAE,SAAS;QAChC,eAAe,EAAE,QAAQ;QACzB,mBAAmB,EAAE,SAAS;QAC9B,sBAAsB,EAAE,QAAQ;QAChC,2BAA2B,EAAE,QAAQ;QACrC,aAAa,EAAE,UAAU;QACzB,kBAAkB,EAAE,QAAQ;QAC5B,mBAAmB,EAAE,SAAS;QAC9B,YAAY,EAAE,SAAS;QACvB,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,SAAS;QACpB,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,QAAQ;QACnB,GAAG,EAAE,SAAS;QACd,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,MAAM,CAAC,WAAW;QACxB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE;YACP,GAAG,EAAE,wBAAwB;YAC7B,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,kBAAkB;YAC9B,MAAM,EAAE,gCAAgC;YACxC,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,cAAc;YAC5B,eAAe,EAAE,iBAAiB;YAClC,SAAS,EAAE,gBAAgB;YAC3B,YAAY,EAAE,oBAAoB;YAClC,WAAW,EAAE,eAAe;YAC5B,aAAa,EAAE,iBAAiB;YAChC,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI;gBAC1B,WAAW,EAAE,sBAAsB;gBACnC,aAAa,EAAE,qBAAqB;aACrC,CAAC;SACH;QACD,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC;QACrD,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,KAAK;QACd,YAAY;QACZ,eAAe;QACf,OAAO,EAAE;YACP,IAAI,EAAE,UAAU;SACjB;KACF,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,WAAW,EAAE;QACtE,MAAM,EAAE,CAAC;KACV,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-coreback",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "CLI to generate production-ready backend projects with Node.js, TypeScript and Express",
5
5
  "type": "module",
6
6
  "bin": {
@@ -2,37 +2,34 @@ import fs from 'fs-extra';
2
2
  import path from 'path';
3
3
 
4
4
  export async function generateEslintConfig(projectPath: string): Promise<void> {
5
- const eslintConfig = {
6
- parser: '@typescript-eslint/parser',
7
- parserOptions: {
5
+ // ESLint 9 uses flat config format
6
+ const eslintConfig = `import js from '@eslint/js';
7
+ import tseslint from 'typescript-eslint';
8
+
9
+ export default tseslint.config(
10
+ js.configs.recommended,
11
+ ...tseslint.configs.recommended,
12
+ {
13
+ languageOptions: {
8
14
  ecmaVersion: 2022,
9
15
  sourceType: 'module',
10
- project: './tsconfig.json',
11
- },
12
- plugins: ['@typescript-eslint'],
13
- extends: [
14
- 'eslint:recommended',
15
- 'plugin:@typescript-eslint/recommended',
16
- 'plugin:@typescript-eslint/recommended-requiring-type-checking',
17
- ],
18
- root: true,
19
- env: {
20
- node: true,
21
- jest: true,
16
+ parserOptions: {
17
+ project: './tsconfig.json',
18
+ },
22
19
  },
23
- ignorePatterns: ['.eslintrc.json', 'dist', 'node_modules'],
24
20
  rules: {
25
- '@typescript-eslint/interface-name-prefix': 'off',
26
- '@typescript-eslint/explicit-function-return-type': 'off',
27
- '@typescript-eslint/explicit-module-boundary-types': 'off',
28
21
  '@typescript-eslint/no-explicit-any': 'warn',
29
22
  },
30
- };
23
+ },
24
+ {
25
+ ignores: ['dist', 'node_modules', '*.js'],
26
+ }
27
+ );
28
+ `;
31
29
 
32
- await fs.writeJSON(
33
- path.join(projectPath, '.eslintrc.json'),
34
- eslintConfig,
35
- { spaces: 2 }
30
+ await fs.writeFile(
31
+ path.join(projectPath, 'eslint.config.js'),
32
+ eslintConfig
36
33
  );
37
34
  }
38
35
 
@@ -38,9 +38,9 @@ export async function generatePackageJson(
38
38
  '@types/swagger-ui-express': '^4.1.8',
39
39
  '@types/jest': '^29.5.14',
40
40
  '@types/supertest': '^6.0.3',
41
- '@typescript-eslint/eslint-plugin': '^8.50.1',
42
- '@typescript-eslint/parser': '^8.50.1',
43
- eslint: '^8.57.1',
41
+ 'typescript-eslint': '^8.50.1',
42
+ '@eslint/js': '^9.39.2',
43
+ eslint: '^9.39.2',
44
44
  prettier: '^3.7.4',
45
45
  'ts-jest': '^29.4.6',
46
46
  jest: '^30.2.0',
@@ -59,8 +59,8 @@ export async function generatePackageJson(
59
59
  dev: 'tsx watch src/index.ts',
60
60
  build: 'tsc',
61
61
  start: 'node dist/index.js',
62
- lint: 'eslint src --ext .ts',
63
- 'lint:fix': 'eslint src --ext .ts --fix',
62
+ lint: 'eslint src',
63
+ 'lint:fix': 'eslint src --fix',
64
64
  format: 'prettier --write "src/**/*.ts"',
65
65
  test: 'jest',
66
66
  'test:watch': 'jest --watch',