create-skweb 2.1.0 โ†’ 3.0.1

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,18 +1,17 @@
1
1
 
2
- 
3
- > create-skweb@2.1.0 prebuild
2
+ > create-skweb@3.0.1 prebuild
4
3
  > tsc --outDir dist --rootDir src
5
4
 
6
5
  โ ™
7
- > create-skweb@2.1.0 build
8
- > rollup -c rollup.config.mjs && node scripts/inject-shebang.mjs && chmod +x dist/cli.cjs
6
+ > create-skweb@3.0.1 build
7
+ > rollup -c rollup.config.mjs && node scripts/inject-shebang.mjs && chmod +x dist/cli.js
9
8
 
10
9
  โ ™
11
- src/index.ts โ†’ dist/index.js, dist/index.cjs...
12
- created dist/index.js, dist/index.cjs in 372ms
10
+ src/index.ts โ†’ dist/index.js...
11
+ created dist/index.js in 348ms
13
12
  
14
- src/cli.ts โ†’ dist/cli.cjs...
15
- (!) Plugin replace: @rollup/plugin-replace: 'preventAssignment' currently defaults to false. It is recommended to set this option to `true`, as the next major version will default this option to `true`.
16
- created dist/cli.cjs in 295ms
17
- [inject-shebang] Shebang added to /Users/stayknight/projects/skweb-mono/tools/create-skweb/dist/cli.cjs
13
+ src/cli.ts โ†’ dist/cli.js...
14
+ (!) [plugin replace] @rollup/plugin-replace: 'preventAssignment' currently defaults to false. It is recommended to set this option to `true`, as the next major version will default this option to `true`.
15
+ created dist/cli.js in 228ms
16
+ [inject-shebang] Shebang added to /Users/stayknight/projects/skweb-mono/tools/create-skweb/dist/cli.js
18
17
  โ ™
@@ -1,4 +1,5 @@
1
-
2
- > create-skweb@1.2.0 check
3
- > tsc --noEmit
4
-
1
+
2
+ > create-skweb@2.1.0 check
3
+ > tsc --noEmit
4
+
5
+ โ ™
@@ -1,4 +1,12 @@
1
-
2
- > create-skweb@1.0.0 lint
3
- > eslint --fix --ext .ts src
4
-
1
+
2
+ > create-skweb@2.1.0 lint
3
+ > eslint --fix --ext .ts src
4
+
5
+ 
6
+ /Users/stayknight/projects/skweb-mono/tools/create-skweb/src/cli.ts
7
+ 45:26 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
8
+ 110:24 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
9
+
10
+ โœ– 2 problems (0 errors, 2 warnings)
11
+ 
12
+ โ ™
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # create-skweb
2
2
 
3
+ ## 3.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - Upgrade all dependencies
8
+ - Update dependencies
9
+
10
+ ### Minor Changes
11
+
12
+ - 48d15f0: ไฟฎๅค rollup ๆ‰“ๅŒ…ๆ—ถๆผๆމ `external` ๅฃฐๆ˜Ž๏ผŒๅฏผ่‡ด็ฌฌไธ‰ๆ–นไพ่ต–่ขซ็›ดๆŽฅๆ‰“่ฟ› `dist/index.cjs` ็š„้—ฎ้ข˜ใ€‚
13
+
14
+ **็—‡็Šถ**
15
+
16
+ - `skweb-sequelize@1.1.0` ๆŠŠ `better-module-loader`ใ€`lodash.clonedeepwith`ใ€`lodash.isfunction`ใ€`mysql2`ใ€`package-directory` ๅ…จ้ƒจ inline ่ฟ›ไบ† dist
17
+ - `skweb-cron@1.1.0` ๆŠŠ `better-module-loader`ใ€`on-finished`ใ€`cron-parser` ๅ…จ้ƒจ inline ่ฟ›ไบ† dist
18
+ - `skweb-express-jwt@2.0.0` ๆŠŠ `jwks-rsa`ใ€`express-unless` inline ่ฟ›ไบ† dist
19
+ - `skweb-express-logger@1.1.0` ๆŠŠ `router` ็š„ๅญ่ทฏๅพ„ๆ‰“่ฟ› dist๏ผˆ่ฟ™ไธชไผšไธŽ ESM ่งฃๆžๅ†ฒ็ช๏ผŒๅ•็‹ฌๅค„็†๏ผ‰
20
+
21
+ **ๅŽๆžœ**
22
+
23
+ 1. **่ฟ่กŒๆ—ถๅคšไปฝๅ‰ฏๆœฌ**๏ผš`better-module-loader` ็ญ‰่ขซ inline ๅŽ๏ผŒไธšๅŠก้กน็›ฎ้‡Œ่‹ฅๅ† `require('better-module-loader')` ๆ‹ฟๅˆฐ็š„ๅฐฑๆ˜ฏๅฆไธ€ไปฝๅฎžไพ‹๏ผŒ่กŒไธบๅฏ่ƒฝไธไธ€่‡ด
24
+ 2. **CJS ๆจกๆฟๅœจ็”จ `loadDirAsArray` ๅŠ ่ฝฝ `.js` ๆจกๅž‹ๆ–‡ไปถๆ—ถๅดฉ**๏ผšๅ†…่”็‰ˆ็š„ `loadModule` ่ตฐ็š„ๆ˜ฏ ESM `import()` ่ทฏๅพ„๏ผŒๅคฑ่ดฅๆ—ถๆŠฅ `Cannot find module 'file:///...'`
25
+ 3. **JWKS ๆจกๅผไธๅทฅไฝœ**๏ผš`jwks-rsa` ่ขซ inline ๅŽ๏ผŒjwks-rsa ๅ†…้ƒจ็š„ `request-promise` / `jwks-client` ๅญไพ่ต–ไผšๆ‰พไธๅˆฐ
26
+
27
+ **ไฟฎๅค**
28
+
29
+ - ไธ‰ไธช `rollup.config.mjs` ๆŠŠๆ‰€ๆœ‰ๅฃฐๆ˜Ž็š„ dependencies ๅŠ ๅˆฐ `external`
30
+ - `skweb-express-logger` ็š„ `router/lib/layer` ๅญ่ทฏๅพ„ไธๆ”พๅœจ external๏ผˆrouter ๆฒกๆœ‰ sub-path exports๏ผŒNode ESM ๆ— ๆณ•่งฃๆž๏ผ‰๏ผŒ่ฎฉ rollup ๆŠŠๅฎƒ bundle ่ฟ›ๆฅ๏ผ›่ฏดๆ˜ŽๅทฒๅŠ ๆณจ้‡Š
31
+
32
+ **create-skweb**
33
+
34
+ - ไธ‰ไธชๆจกๆฟ๏ผˆcjs/mjs/ts๏ผ‰็š„ `app` / `cronWorker`๏ผš
35
+ - ๅŽปๆމๆ˜พๅผ็š„ `shutdown()` / SIGINT / SIGTERM / `beforeExit` ็›‘ๅฌโ€”โ€”็›ดๆŽฅไพ่ต– OS / ่ฟ›็จ‹็ฎก็†ๅ™จๅ›žๆ”ถ่ต„ๆบ
36
+ - ไป…ไฟ็•™ `uncaughtException` / `unhandledRejection` ๅค„็†ๅ™จ๏ผˆๆ‰“ๅฐๅ †ๆ ˆๅŽ `process.exit(1)`๏ผ‰
37
+ - ๅŽŸๅ› ๏ผšไธšๅŠกไพง 80% ็š„ๅœบๆ™ฏ็›ดๆŽฅ exit ๅณๅฏ๏ผŒ้œ€่ฆๆธ…็†็š„ๅฐ‘ๆ•ฐๅœบๆ™ฏ็”ฑไฝฟ็”จ่€…่‡ช่กŒๆ‰ฉๅฑ•๏ผ›ๆก†ๆžถไธๅœจๆจกๆฟ้‡Œๅกž้€š็”จๆ–นๆกˆ
38
+
3
39
  ## 2.1.0
4
40
 
5
41
  ### Minor Changes
package/dist/cli.js CHANGED
@@ -1,8 +1,116 @@
1
1
  #!/usr/bin/env node
2
+
2
3
  import { Command } from 'commander';
3
4
  import inquirer from 'inquirer';
4
5
  import ora from 'ora';
5
- import { createProject, installDependencies, initGit, printBanner, printSuccess } from './index';
6
+ import fs from 'fs-extra';
7
+ import path from 'path';
8
+ import { fileURLToPath } from 'url';
9
+ import { execSync } from 'child_process';
10
+
11
+ const __dirname$1 = path.dirname(fileURLToPath(import.meta.url));
12
+ async function createProject(options) {
13
+ const { name, description = 'A SKWeb project', template, dest } = options;
14
+ const auth = options.auth ?? 'static';
15
+ const templateDir = path.join(__dirname$1, '..', 'templates', template);
16
+ const baseDir = path.resolve(dest);
17
+ const targetDir = path.join(baseDir, name);
18
+ if (await fs.pathExists(targetDir)) {
19
+ if ((await fs.readdir(targetDir)).length > 0) {
20
+ throw new Error(`็›ฎๆ ‡็›ฎๅฝ• ${targetDir} ไธไธบ็ฉบ`);
21
+ }
22
+ }
23
+ else {
24
+ await fs.mkdirs(targetDir);
25
+ }
26
+ const files = await fs.readdir(templateDir, { recursive: true });
27
+ for (const file of files) {
28
+ const fileName = String(file);
29
+ const srcPath = path.join(templateDir, fileName);
30
+ const stats = await fs.stat(srcPath);
31
+ if (stats.isDirectory()) {
32
+ await fs.mkdirs(path.join(targetDir, fileName));
33
+ continue;
34
+ }
35
+ let content = await fs.readFile(srcPath, 'utf-8');
36
+ content = content
37
+ .replace(/\{\{name\}\}/g, name)
38
+ .replace(/\{\{description\}\}/g, description)
39
+ .replace(/\{\{auth\}\}/g, auth);
40
+ const destPath = path.join(targetDir, fileName);
41
+ await fs.writeFile(destPath, content);
42
+ }
43
+ await fs.mkdirs(path.join(targetDir, 'logs'));
44
+ }
45
+ async function installDependencies(dest, name) {
46
+ const targetDir = name ? path.join(path.resolve(dest), name) : path.resolve(dest);
47
+ execSync('npm install', {
48
+ cwd: targetDir,
49
+ stdio: 'inherit'
50
+ });
51
+ execSync('npm install pm2 -g', {
52
+ cwd: targetDir,
53
+ stdio: 'inherit'
54
+ });
55
+ }
56
+ async function initGit(dest, name) {
57
+ const targetDir = name ? path.join(path.resolve(dest), name) : path.resolve(dest);
58
+ execSync('git init', {
59
+ cwd: targetDir,
60
+ stdio: 'inherit'
61
+ });
62
+ }
63
+ function printBanner() {
64
+ console.log(`
65
+ โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
66
+ โ•‘ Create SKWeb Project โ•‘
67
+ โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
68
+ `);
69
+ }
70
+ function printSuccess(name, dest) {
71
+ const projectPath = path.join(path.resolve(dest), name);
72
+ console.log(`
73
+ โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
74
+ โ•‘ ้กน็›ฎๅˆ›ๅปบๆˆๅŠŸ๏ผ โ•‘
75
+ โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
76
+
77
+ ้กน็›ฎๅ็งฐ: ${name}
78
+ ้กน็›ฎ่ทฏๅพ„: ${projectPath}
79
+
80
+ ๆŽฅไธ‹ๆฅๅฏไปฅๆ‰ง่กŒ:
81
+
82
+ cd ${name}
83
+
84
+ # ๅคๅˆถ็Žฏๅขƒๅ˜้‡ๆจกๆฟๅนถๆŒ‰้œ€ไฟฎๆ”น
85
+ cp .env.example .env
86
+
87
+ # ๅผ€ๅ‘ๆจกๅผ่ฟ่กŒ
88
+ npm run start:dev
89
+
90
+ # ็”Ÿไบงๆจกๅผ่ฟ่กŒ (้œ€่ฆๅ…ˆๆž„ๅปบ)
91
+ npm run build
92
+ npm run start
93
+
94
+ # ๆŸฅ็œ‹ๆ—ฅๅฟ—
95
+ npm run logs
96
+
97
+ # ๅœๆญขๆœๅŠก
98
+ npm run stop
99
+
100
+ # ้‡ๅฏๆœๅŠก
101
+ npm run restart
102
+
103
+ ้กน็›ฎ็‰นๆ€ง:
104
+ โœ… TypeScript/MJS/CJS ๆ”ฏๆŒ
105
+ โœ… @dotenvx/dotenvx ็Žฏๅขƒๅ˜้‡็ฎก็†
106
+ โœ… PM2 ่ฟ›็จ‹็ฎก็†
107
+ โœ… SKWeb Express ้›†ๆˆ
108
+ โœ… Keycloak/JWKS ้‰ดๆƒ (ๅฏ้€‰)
109
+ โœ… ESLint ไปฃ็ ๆฃ€ๆŸฅ
110
+ โœ… Mocha ๆต‹่ฏ•ๆก†ๆžถ
111
+ `);
112
+ }
113
+
6
114
  async function main() {
7
115
  const program = new Command();
8
116
  program
@@ -141,4 +249,4 @@ async function main() {
141
249
  await program.parseAsync();
142
250
  }
143
251
  main().catch(console.error);
144
- //# sourceMappingURL=cli.js.map
252
+ //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sources":["../src/index.ts","../src/cli.ts"],"sourcesContent":[null,null],"names":["__dirname"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,11 +3,11 @@ import path from 'path';
3
3
  import { fileURLToPath } from 'url';
4
4
  import { execSync } from 'child_process';
5
5
 
6
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
6
+ const __dirname$1 = path.dirname(fileURLToPath(import.meta.url));
7
7
  async function createProject(options) {
8
8
  const { name, description = 'A SKWeb project', template, dest } = options;
9
9
  const auth = options.auth ?? 'static';
10
- const templateDir = path.join(__dirname, '..', 'templates', template);
10
+ const templateDir = path.join(__dirname$1, '..', 'templates', template);
11
11
  const baseDir = path.resolve(dest);
12
12
  const targetDir = path.join(baseDir, name);
13
13
  if (await fs.pathExists(targetDir)) {
@@ -58,7 +58,7 @@ async function initGit(dest, name) {
58
58
  function printBanner() {
59
59
  console.log(`
60
60
  โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
61
- โ•‘ Create SKWeb Project โ•‘
61
+ โ•‘ Create SKWeb Project โ•‘
62
62
  โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
63
63
  `);
64
64
  }
@@ -66,7 +66,7 @@ function printSuccess(name, dest) {
66
66
  const projectPath = path.join(path.resolve(dest), name);
67
67
  console.log(`
68
68
  โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
69
- โ•‘ ้กน็›ฎๅˆ›ๅปบๆˆๅŠŸ๏ผ โ•‘
69
+ โ•‘ ้กน็›ฎๅˆ›ๅปบๆˆๅŠŸ๏ผ โ•‘
70
70
  โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
71
71
 
72
72
  ้กน็›ฎๅ็งฐ: ${name}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":["__dirname"],"mappings":"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"}
package/package.json CHANGED
@@ -1,20 +1,22 @@
1
1
  {
2
2
  "name": "create-skweb",
3
- "version": "2.1.0",
3
+ "version": "3.0.1",
4
4
  "description": "Create a new SKWeb project with TypeScript, CJS, or MJS support",
5
5
  "type": "module",
6
- "main": "dist/index.cjs",
7
- "module": "dist/index.js",
6
+ "main": "dist/index.js",
8
7
  "types": "dist/index.d.ts",
9
8
  "bin": {
10
- "create-skweb": "./dist/cli.cjs"
9
+ "create-skweb": "./dist/cli.js"
11
10
  },
12
11
  "scripts": {
13
- "clean": "rm -rf dist",
12
+ "clean": "rm -rf coverage .rollup.cache",
13
+ "clean:dist": "rm -rf dist",
14
+ "clean:test": "rm -rf coverage",
14
15
  "clean:temp": "rm -rf .rollup.cache",
16
+ "clean:all": "rm -rf dist node_modules coverage .rollup.cache",
15
17
  "prebuild": "tsc --outDir dist --rootDir src",
16
- "build": "rollup -c rollup.config.mjs && node scripts/inject-shebang.mjs && chmod +x dist/cli.cjs",
17
- "build:dev": "rollup -c rollup.config.mjs --environment NODE_ENV:development && node scripts/inject-shebang.mjs && chmod +x dist/cli.cjs",
18
+ "build": "rollup -c rollup.config.mjs && node scripts/inject-shebang.mjs && chmod +x dist/cli.js",
19
+ "build:dev": "rollup -c rollup.config.mjs --environment NODE_ENV:development && node scripts/inject-shebang.mjs && chmod +x dist/cli.js",
18
20
  "lint": "eslint --fix --ext .ts src",
19
21
  "check": "tsc --noEmit",
20
22
  "test": "mocha test/**/*.mjs",
@@ -29,18 +31,8 @@
29
31
  "fs-extra": "^11.2.0"
30
32
  },
31
33
  "devDependencies": {
32
- "@types/node": "^25.0.1",
33
34
  "@types/fs-extra": "^11.0.4",
34
- "@types/inquirer": "^9.0.7",
35
- "chai": "^6.2.1",
36
- "mocha": "^11.7.5",
37
- "rollup": "^2.79.2",
38
- "@rollup/plugin-typescript": "^12.3.0",
39
- "@rollup/plugin-node-resolve": "^16.0.3",
40
- "@rollup/plugin-commonjs": "^29.0.0",
41
- "@rollup/plugin-replace": "^6.0.3",
42
- "eslint": "^9.39.1",
43
- "typescript": "^5.9.3"
35
+ "@types/inquirer": "^9.0.10"
44
36
  },
45
37
  "engines": {
46
38
  "node": ">=20.18.1"
package/rollup.config.mjs CHANGED
@@ -6,22 +6,21 @@ import replace from '@rollup/plugin-replace'
6
6
 
7
7
  const isProduction = process.env.NODE_ENV === 'production'
8
8
 
9
+ // create-skweb ๆ˜ฏ CLI ๅทฅๅ…ท๏ผŒๅฏนๅค–ๆšด้œฒ็š„ๅชๆœ‰ bin ๅ…ฅๅฃๅ’Œ createProject()ใ€‚
10
+ // ็›ดๆŽฅๅ…จ้‡ ESM๏ผš
11
+ // - bin ่ตฐ dist/cli.js๏ผˆๅธฆ shebang๏ผ‰๏ผŒNode 20+ ๅŽŸ็”Ÿๆ”ฏๆŒ ESM binใ€‚
12
+ // - ็ฌฌไธ‰ๆ–น๏ผˆinquirer / ora๏ผ‰ๅœจ 10+ / 6+ ๅ…จ้ข ESM-only๏ผŒ็›ดๆŽฅ import ๅฐฑ่ƒฝ็”จ๏ผŒ
13
+ // ไธๅ†้œ€่ฆ CJSโ†”ESM ไบ’ๆ“ไฝœ hack๏ผˆไน‹ๅ‰ require ๆ‹ฟๅˆฐๅ‘ฝๅ็ฉบ้—ดใ€prompt is not a function
14
+ // ๅฐฑๆ˜ฏ่ฟ™ไฟฉๅŒ…ๅ‡็บงๅˆฐ ESM-only ๅŽๅฏผ่‡ด๏ผ‰ใ€‚
15
+ // - ไธ่พ“ๅ‡บ CJS ๅ‡ๅฐ dist ไฝ“็งฏ๏ผŒไนŸ้ฟๅ…ๅŒไบง็‰ฉๅธฆๆฅ็š„ loadEsmDeps / ๅŠจๆ€ import() ่ฟ™็ฑป่กฅไธใ€‚
9
16
  export default [
10
17
  {
11
18
  input: 'src/index.ts',
12
- output: [
13
- {
14
- file: 'dist/index.js',
15
- format: 'es',
16
- sourcemap: true
17
- },
18
- {
19
- file: 'dist/index.cjs',
20
- format: 'cjs',
21
- sourcemap: true,
22
- exports: 'named'
23
- }
24
- ],
19
+ output: {
20
+ file: 'dist/index.js',
21
+ format: 'es',
22
+ sourcemap: true
23
+ },
25
24
  plugins: [
26
25
  resolve(),
27
26
  commonjs(),
@@ -36,17 +35,17 @@ export default [
36
35
  'fs',
37
36
  'path',
38
37
  'child_process',
39
- 'os'
38
+ 'os',
39
+ 'url'
40
40
  ]
41
41
  },
42
42
  {
43
43
  input: 'src/cli.ts',
44
44
  output: {
45
- file: 'dist/cli.cjs',
46
- format: 'cjs',
45
+ file: 'dist/cli.js',
46
+ format: 'es',
47
47
  sourcemap: true,
48
- banner: '#!/usr/bin/env node',
49
- exports: 'named'
48
+ banner: '#!/usr/bin/env node'
50
49
  },
51
50
  plugins: [
52
51
  replace({
@@ -66,7 +65,8 @@ export default [
66
65
  'fs',
67
66
  'path',
68
67
  'child_process',
69
- 'os'
68
+ 'os',
69
+ 'url'
70
70
  ]
71
71
  }
72
72
  ]
@@ -22,7 +22,7 @@ import path from 'node:path'
22
22
  const SHEBANG = '#!/usr/bin/env node\n'
23
23
 
24
24
  const arg = process.argv[2]
25
- const target = arg ? path.resolve(arg) : path.resolve('dist/cli.cjs')
25
+ const target = arg ? path.resolve(arg) : path.resolve('dist/cli.js')
26
26
 
27
27
  if (!fs.existsSync(target)) {
28
28
  console.error(`[inject-shebang] target not found: ${target}`)
package/src/cli.ts CHANGED
@@ -3,13 +3,13 @@
3
3
  import { Command } from 'commander'
4
4
  import inquirer from 'inquirer'
5
5
  import ora from 'ora'
6
- import {
7
- createProject,
8
- installDependencies,
9
- initGit,
10
- printBanner,
11
- printSuccess
12
- } from './index'
6
+ import {
7
+ createProject,
8
+ installDependencies,
9
+ initGit,
10
+ printBanner,
11
+ printSuccess
12
+ } from './index.js'
13
13
 
14
14
  async function main() {
15
15
  const program = new Command()
package/src/index.ts CHANGED
@@ -82,7 +82,7 @@ export async function initGit(dest: string, name?: string): Promise<void> {
82
82
  export function printBanner(): void {
83
83
  console.log(`
84
84
  โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
85
- โ•‘ Create SKWeb Project โ•‘
85
+ โ•‘ Create SKWeb Project โ•‘
86
86
  โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
87
87
  `)
88
88
  }
@@ -91,7 +91,7 @@ export function printSuccess(name: string, dest: string): void {
91
91
  const projectPath = path.join(path.resolve(dest), name)
92
92
  console.log(`
93
93
  โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
94
- โ•‘ ้กน็›ฎๅˆ›ๅปบๆˆๅŠŸ๏ผ โ•‘
94
+ โ•‘ ้กน็›ฎๅˆ›ๅปบๆˆๅŠŸ๏ผ โ•‘
95
95
  โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
96
96
 
97
97
  ้กน็›ฎๅ็งฐ: ${name}
@@ -20,27 +20,27 @@
20
20
  "clean:temp": "rm -rf .rollup.cache"
21
21
  },
22
22
  "dependencies": {
23
- "@dotenvx/dotenvx": "^1.71.0",
24
- "http-errors": "^2.0.0",
25
- "skweb-express": "^1.1.0",
26
- "skweb-express-jwt": "^2.0.0",
27
- "skweb-express-logger": "^1.1.0",
28
- "skweb-sequelize": "^1.1.0",
29
- "skweb-redis": "^1.1.0",
30
- "skweb-cron": "^1.1.0",
31
- "skweb-framework": "^1.1.0",
32
- "skweb-plugin": "^1.1.0",
33
- "skweb-util": "^1.1.0",
34
- "winston": "^3.17.0",
35
- "sequelize": "^6.37.7",
36
- "swagger-jsdoc": "^6.2.8",
23
+ "@dotenvx/dotenvx": "^1.75.1",
24
+ "http-errors": "^2.0.1",
25
+ "skweb-express": "^2.0.0",
26
+ "skweb-express-jwt": "^3.0.0",
27
+ "skweb-express-logger": "^2.0.0",
28
+ "skweb-sequelize": "^2.0.0",
29
+ "skweb-redis": "^2.0.0",
30
+ "skweb-cron": "^2.0.0",
31
+ "skweb-framework": "^2.0.0",
32
+ "skweb-plugin": "^2.0.0",
33
+ "skweb-util": "^2.0.0",
34
+ "winston": "^3.19.0",
35
+ "sequelize": "^6.37.8",
36
+ "swagger-jsdoc": "^6.3.0",
37
37
  "swagger-ui-express": "^5.0.1"
38
38
  },
39
39
  "devDependencies": {
40
- "chai": "^6.2.1",
41
- "mocha": "^11.7.5",
42
- "eslint": "^9.39.1",
43
- "@eslint/js": "^9.39.1"
40
+ "chai": "^6.2.2",
41
+ "mocha": "^11.7.6",
42
+ "eslint": "^10.5.0",
43
+ "@eslint/js": "^10.0.1"
44
44
  },
45
45
  "engines": {
46
46
  "node": ">=20.18.1"
@@ -1,8 +1,12 @@
1
1
  require('dotenv/config')
2
2
 
3
3
  const path = require('path')
4
- const express = require('skweb-express')
5
- const expressLogger = require('skweb-express-logger').default || require('skweb-express-logger')
4
+ // skweb-express / skweb-express-logger ็š„ CJS ไบง็‰ฉๅฝขๆ€ๆ˜ฏ
5
+ // `{ default: fn, errorHandler, ... }`ใ€‚็›ดๆŽฅ `require('skweb-express')` ๆ‹ฟๅˆฐ็š„ๆ˜ฏ
6
+ // ๅ‘ฝๅ็ฉบ้—ดๅฏน่ฑก๏ผŒ`express()` ไผš TypeErrorใ€‚่ฟ™้‡Œ่ตฐ .defaultใ€‚
7
+ const express = require('skweb-express').default
8
+ const expressLogger = require('skweb-express-logger').default
9
+ const expressErrorHandler = require('skweb-express-logger').errorHandler
6
10
  const swaggerUi = require('swagger-ui-express')
7
11
  const { WebFramework } = require('skweb-framework')
8
12
  const { logger } = require('./utils/logger.js')
@@ -126,20 +130,21 @@ async function bootstrap() {
126
130
  await framework.loadControllers(path.join(__dirname, './controllers'))
127
131
  await framework.loadPluginControllers()
128
132
 
133
+ // ้”™่ฏฏๆ—ฅๅฟ—ไธญ้—ดไปถ๏ผšๆŒ‚ๅœจๆ‰€ๆœ‰่ทฏ็”ฑไน‹ๅŽ๏ผŒ่ฎฐๅฝ•ไธšๅŠก้”™่ฏฏๅนถ็ปง็ปญไผ ้€’็ป™้ป˜่ฎค้”™่ฏฏๅค„็†ใ€‚
134
+ app.use(expressErrorHandler())
135
+
129
136
  framework.start(Number(process.env.PORT) || 3000)
130
137
 
131
138
  logger.info('[app] Initialization complete (web process)')
132
139
 
133
- process.on('SIGINT', async () => {
134
- logger.info('[app] Received SIGINT, shutting down gracefully...')
135
- await framework.stop()
136
- process.exit(0)
140
+ // ๆœชๆ•่Žทๅผ‚ๅธธ๏ผšๆ‰“ๅฐๅ †ๆ ˆๅŽ็›ดๆŽฅ้€€ๅ‡บใ€‚OS / ่ฟ›็จ‹็ฎก็†ๅ™จ่ดŸ่ดฃๅ›žๆ”ถ่ต„ๆบใ€‚
141
+ process.on('uncaughtException', (err) => {
142
+ logger.error(`[app] uncaughtException: ${err.stack || err.message}`)
143
+ process.exit(1)
137
144
  })
138
-
139
- process.on('SIGTERM', async () => {
140
- logger.info('[app] Received SIGTERM, shutting down gracefully...')
141
- await framework.stop()
142
- process.exit(0)
145
+ process.on('unhandledRejection', (reason) => {
146
+ logger.error(`[app] unhandledRejection: ${reason instanceof Error ? reason.stack : String(reason)}`)
147
+ process.exit(1)
143
148
  })
144
149
  }
145
150
 
@@ -62,16 +62,14 @@ async function startCronWorker() {
62
62
  framework.start()
63
63
  logger.info('[cron-worker] Cron worker started')
64
64
 
65
- process.on('SIGINT', async () => {
66
- logger.info('[cron-worker] Received SIGINT, shutting down...')
67
- await framework.stop()
68
- process.exit(0)
65
+ // ๆœชๆ•่Žทๅผ‚ๅธธ๏ผšๆ‰“ๅฐๅ †ๆ ˆๅŽ็›ดๆŽฅ้€€ๅ‡บใ€‚OS / ่ฟ›็จ‹็ฎก็†ๅ™จ่ดŸ่ดฃๅ›žๆ”ถ่ต„ๆบใ€‚
66
+ process.on('uncaughtException', (err) => {
67
+ logger.error(`[cron-worker] uncaughtException: ${err.stack || err.message}`)
68
+ process.exit(1)
69
69
  })
70
-
71
- process.on('SIGTERM', async () => {
72
- logger.info('[cron-worker] Received SIGTERM, shutting down...')
73
- await framework.stop()
74
- process.exit(0)
70
+ process.on('unhandledRejection', (reason) => {
71
+ logger.error(`[cron-worker] unhandledRejection: ${reason instanceof Error ? reason.stack : String(reason)}`)
72
+ process.exit(1)
75
73
  })
76
74
  }
77
75