create-aomex 0.0.29 → 0.0.30

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-aomex",
3
- "version": "0.0.29",
3
+ "version": "0.0.30",
4
4
  "repository": "git@github.com:aomex/create-aomex.git",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -0,0 +1,8 @@
1
+ import { middleware } from '@aomex/core';
2
+
3
+ let _counter = 0;
4
+
5
+ export const counter = middleware.mixin<{ readonly visitCount: number }>(async (ctx, next) => {
6
+ ctx.visitCount = ++_counter;
7
+ await next();
8
+ });
@@ -0,0 +1,6 @@
1
+ import { middleware, I18n } from '@aomex/core';
2
+
3
+ export const i18nProvider = middleware.web((ctx, next) => {
4
+ // 动态选择i18n语言包
5
+ return I18n.provider(ctx.request.accept.language()[0] || 'zh_CN', next);
6
+ });
@@ -0,0 +1,14 @@
1
+ import { swaggerUI } from '@aomex/swagger-ui';
2
+ import { generateOpenapi } from '@aomex/openapi';
3
+
4
+ // 访问 http://localhost:3000/swagger 可以查看文档
5
+ export const swagger = swaggerUI({
6
+ openapi: () => {
7
+ return generateOpenapi({
8
+ routers: './src/routers',
9
+ docs: {
10
+ servers: [{ url: 'http://localhost:3000', description: 'Local' }],
11
+ },
12
+ });
13
+ },
14
+ });
@@ -0,0 +1,6 @@
1
+ import { traceMiddleware } from '@aomex/async-trace';
2
+
3
+ export const trace = traceMiddleware('生命周期', async (_record) => {
4
+ // 根据 record.delta 上报慢日志
5
+ // console.log(record);
6
+ });
@@ -1,13 +1,13 @@
1
1
  import { rule } from '@aomex/core';
2
2
  import { response, Router } from '@aomex/web';
3
- import { hello } from '@middleware/hello.middleware';
3
+ import { counter } from '@middleware/counter.md';
4
4
  import { i18n } from '../i18n';
5
5
 
6
6
  export const router = new Router();
7
7
 
8
8
  router.get('/', {
9
9
  mount: [
10
- hello,
10
+ counter,
11
11
  response({
12
12
  statusCode: 200,
13
13
  content: rule.string(),
@@ -5,38 +5,21 @@ import { httpLogger } from '@aomex/http-logger';
5
5
  import { etag } from '@aomex/etag';
6
6
  import { helmet } from '@aomex/helmet';
7
7
  import { responseTime } from '@aomex/response-time';
8
- import { traceMiddleware } from '@aomex/async-trace';
9
- import { swaggerUI } from '@aomex/swagger-ui';
10
- import { generateOpenapi } from '@aomex/openapi';
11
- import { I18n, middleware } from '@aomex/core';
8
+ import { swagger } from '@middleware/swagger.md';
9
+ import { i18nProvider } from '@middleware/i18n-provider.md';
10
+ import { trace } from '@middleware/trace.md';
12
11
 
13
12
  export const app = new WebApp({
14
13
  language: 'zh_CN',
15
14
  mount: [
16
- middleware.web((ctx, next) => {
17
- // 动态选择i18n语言包
18
- return I18n.provider(ctx.request.accept.language()[0] || 'zh_CN', next);
19
- }),
15
+ i18nProvider,
20
16
  httpLogger(),
21
17
  responseTime,
22
- traceMiddleware('生命周期', async (_record) => {
23
- // 根据 record.delta 上报慢日志
24
- // console.log(record);
25
- }),
18
+ trace,
26
19
  cors(),
27
20
  compress(),
28
21
  etag(),
29
- // 访问 http://localhost:3000/swagger 可以查看文档
30
- swaggerUI({
31
- openapi: () => {
32
- return generateOpenapi({
33
- routers: './src/routers',
34
- docs: {
35
- servers: [{ url: 'http://localhost:3000', description: 'Local' }],
36
- },
37
- });
38
- },
39
- }),
22
+ swagger,
40
23
  helmet(),
41
24
  routers('./src/routers'),
42
25
  ],
@@ -1,8 +0,0 @@
1
- import { middleware } from '@aomex/core';
2
-
3
- let counter = 0;
4
-
5
- export const hello = middleware.web<{ visitCount: number }>(async (ctx, next) => {
6
- ctx.visitCount = ++counter;
7
- await next();
8
- });