create-forkly 0.3.3 → 0.4.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.
package/dist/index.js CHANGED
@@ -69,5 +69,5 @@ cli.command('[dir]', 'Create a new Forkly project')
69
69
  p.outro(`Done! Run:\n cd ${projectName}\n npm run dev`);
70
70
  });
71
71
  cli.help();
72
- cli.version('0.3.0');
72
+ cli.version('0.4.1');
73
73
  cli.parse();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-forkly",
3
- "version": "0.3.3",
3
+ "version": "0.4.1",
4
4
  "description": "CLI to scaffold a new Forkly project",
5
5
  "type": "module",
6
6
  "bin": {
@@ -9,7 +9,8 @@
9
9
  "files": ["dist/", "template/"],
10
10
  "scripts": {
11
11
  "build": "tsc",
12
- "dev": "tsx src/index.ts"
12
+ "dev": "tsx src/index.ts",
13
+ "prepublishOnly": "npm run build"
13
14
  },
14
15
  "license": "MIT",
15
16
  "dependencies": {
package/template/app.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  /** Forkly 应用入口 — 启动 App 并注册钩子与定时任务 */
2
- import { Forkly } from 'forkly';
2
+ import { Forkly, loadConfig } from 'forkly';
3
+ import { resolve, dirname } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
3
5
 
4
- const app = new Forkly({
5
- port: 3000,
6
- workers: 4,
7
- });
6
+ const __dirname = dirname(fileURLToPath(import.meta.url));
7
+
8
+ const app = new Forkly(loadConfig(undefined, resolve(__dirname, 'config')));
8
9
 
9
10
  // 注册全局日志回调
10
11
  app.onLog((level, message) => {
@@ -28,6 +29,4 @@ app.schedule('0 3 * * *', async () => {
28
29
  });
29
30
 
30
31
  // 启动应用
31
- app.start().then(() => {
32
- console.log('Forkly app started');
33
- });
32
+ app.start();
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "port": 3000,
3
3
  "workers": 4,
4
+ "http2": false,
4
5
  "session": { "secret": "your-secret-key-change-me", "maxAge": 86400000 },
5
6
  "errorFormat": "json",
6
7
  "logger": { "level": "info" },
@@ -1,11 +1,12 @@
1
- /** Hello 路由 — GET /hello?name=world,含 dataType 校验 */
2
- import { Router } from 'forkly';
1
+ /** Hello 路由 — GET /hello?name=world,POST setRouter 输入校验 */
2
+ import { setRouter, string } from 'forkly';
3
3
 
4
- export class HelloRouter extends Router {
4
+ const Base = setRouter({
5
+ post: { body: { name: string } },
6
+ });
7
+
8
+ export class HelloRouter extends Base {
5
9
  static channel = 'async' as const;
6
- static dataType = {
7
- query: { name: 'string' },
8
- } as const;
9
10
 
10
11
  async get() {
11
12
  const name = this.request.query.name ?? 'World';
@@ -13,7 +14,7 @@ export class HelloRouter extends Router {
13
14
  }
14
15
 
15
16
  async post() {
16
- const { name } = this.request.body as { name?: string } ?? {};
17
- return { message: `Hello, ${name ?? 'World'}! (POST)` };
17
+ const { name } = this.request.body as { name: string };
18
+ return { message: `Hello, ${name}!` };
18
19
  }
19
20
  }
@@ -1,6 +0,0 @@
1
- {
2
- "port": 8080,
3
- "session": { "secret": "production-secret-change-me" },
4
- "errorFormat": "json",
5
- "logger": { "level": "warn" }
6
- }