@modern-js/server 1.4.3 → 1.4.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.
Files changed (144) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/js/modern/dev-tools/mock/index.js +1 -1
  3. package/dist/js/modern/dev-tools/socket-server.js +2 -2
  4. package/dist/js/modern/index.js +1 -1
  5. package/dist/js/modern/server/{dev-server/dev-server-split.js → dev-server-split.js} +0 -0
  6. package/dist/js/modern/server/{dev-server/dev-server.js → dev-server.js} +15 -14
  7. package/dist/js/modern/server/index.js +15 -138
  8. package/dist/js/modern/{libs/render/cache/type.js → types.js} +0 -0
  9. package/dist/js/node/dev-tools/mock/index.js +2 -2
  10. package/dist/js/node/dev-tools/socket-server.js +2 -3
  11. package/dist/js/node/index.js +2 -2
  12. package/dist/js/node/server/{dev-server/dev-server-split.js → dev-server-split.js} +0 -0
  13. package/dist/js/node/server/{dev-server/dev-server.js → dev-server.js} +18 -24
  14. package/dist/js/node/server/index.js +17 -152
  15. package/dist/js/node/{libs/render/cache/type.js → types.js} +0 -0
  16. package/dist/types/dev-tools/babel/register.d.ts +1 -1
  17. package/dist/types/dev-tools/dev-server-plugin.d.ts +1 -1
  18. package/dist/types/dev-tools/launch-editor/index.d.ts +1 -2
  19. package/dist/types/dev-tools/mock/getMockData.d.ts +1 -2
  20. package/dist/types/dev-tools/mock/index.d.ts +1 -2
  21. package/dist/types/dev-tools/socket-server.d.ts +1 -1
  22. package/dist/types/index.d.ts +4 -5
  23. package/dist/types/server/{dev-server/dev-server-split.d.ts → dev-server-split.d.ts} +5 -4
  24. package/dist/types/server/{dev-server/dev-server.d.ts → dev-server.d.ts} +4 -3
  25. package/dist/types/server/index.d.ts +4 -19
  26. package/dist/types/types.d.ts +28 -0
  27. package/modern.config.js +5 -1
  28. package/package.json +8 -40
  29. package/tests/server.test.ts +10 -3
  30. package/dist/js/modern/constants.js +0 -26
  31. package/dist/js/modern/libs/context/context.js +0 -180
  32. package/dist/js/modern/libs/context/index.js +0 -3
  33. package/dist/js/modern/libs/hook-api/route.js +0 -39
  34. package/dist/js/modern/libs/hook-api/template.js +0 -61
  35. package/dist/js/modern/libs/metrics.js +0 -12
  36. package/dist/js/modern/libs/proxy.js +0 -33
  37. package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +0 -70
  38. package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +0 -233
  39. package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +0 -53
  40. package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +0 -35
  41. package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +0 -121
  42. package/dist/js/modern/libs/render/cache/index.js +0 -74
  43. package/dist/js/modern/libs/render/cache/page-caches/index.js +0 -9
  44. package/dist/js/modern/libs/render/cache/page-caches/lru.js +0 -35
  45. package/dist/js/modern/libs/render/cache/spr.js +0 -280
  46. package/dist/js/modern/libs/render/cache/util.js +0 -79
  47. package/dist/js/modern/libs/render/index.js +0 -65
  48. package/dist/js/modern/libs/render/modern/browser-list.js +0 -7
  49. package/dist/js/modern/libs/render/modern/index.js +0 -42
  50. package/dist/js/modern/libs/render/reader.js +0 -112
  51. package/dist/js/modern/libs/render/ssr.js +0 -58
  52. package/dist/js/modern/libs/render/static.js +0 -46
  53. package/dist/js/modern/libs/render/type.js +0 -7
  54. package/dist/js/modern/libs/route/index.js +0 -68
  55. package/dist/js/modern/libs/route/matcher.js +0 -94
  56. package/dist/js/modern/libs/route/route.js +0 -24
  57. package/dist/js/modern/libs/serve-file.js +0 -28
  58. package/dist/js/modern/server/dev-server/index.js +0 -2
  59. package/dist/js/modern/server/modern-server-split.js +0 -81
  60. package/dist/js/modern/server/modern-server.js +0 -584
  61. package/dist/js/modern/type.js +0 -1
  62. package/dist/js/modern/utils.js +0 -112
  63. package/dist/js/node/constants.js +0 -36
  64. package/dist/js/node/libs/context/context.js +0 -194
  65. package/dist/js/node/libs/context/index.js +0 -18
  66. package/dist/js/node/libs/hook-api/route.js +0 -48
  67. package/dist/js/node/libs/hook-api/template.js +0 -69
  68. package/dist/js/node/libs/metrics.js +0 -18
  69. package/dist/js/node/libs/proxy.js +0 -44
  70. package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +0 -77
  71. package/dist/js/node/libs/render/cache/__tests__/cache.test.js +0 -238
  72. package/dist/js/node/libs/render/cache/__tests__/cacheable.js +0 -60
  73. package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +0 -42
  74. package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +0 -128
  75. package/dist/js/node/libs/render/cache/index.js +0 -86
  76. package/dist/js/node/libs/render/cache/page-caches/index.js +0 -17
  77. package/dist/js/node/libs/render/cache/page-caches/lru.js +0 -47
  78. package/dist/js/node/libs/render/cache/spr.js +0 -298
  79. package/dist/js/node/libs/render/cache/util.js +0 -105
  80. package/dist/js/node/libs/render/index.js +0 -91
  81. package/dist/js/node/libs/render/modern/browser-list.js +0 -14
  82. package/dist/js/node/libs/render/modern/index.js +0 -58
  83. package/dist/js/node/libs/render/reader.js +0 -139
  84. package/dist/js/node/libs/render/ssr.js +0 -76
  85. package/dist/js/node/libs/render/static.js +0 -62
  86. package/dist/js/node/libs/render/type.js +0 -14
  87. package/dist/js/node/libs/route/index.js +0 -83
  88. package/dist/js/node/libs/route/matcher.js +0 -108
  89. package/dist/js/node/libs/route/route.js +0 -33
  90. package/dist/js/node/libs/serve-file.js +0 -41
  91. package/dist/js/node/server/dev-server/index.js +0 -27
  92. package/dist/js/node/server/modern-server-split.js +0 -97
  93. package/dist/js/node/server/modern-server.js +0 -622
  94. package/dist/js/node/type.js +0 -5
  95. package/dist/js/node/utils.js +0 -143
  96. package/dist/types/constants.d.ts +0 -20
  97. package/dist/types/libs/context/context.d.ts +0 -61
  98. package/dist/types/libs/context/index.d.ts +0 -4
  99. package/dist/types/libs/hook-api/route.d.ts +0 -14
  100. package/dist/types/libs/hook-api/template.d.ts +0 -14
  101. package/dist/types/libs/metrics.d.ts +0 -3
  102. package/dist/types/libs/proxy.d.ts +0 -4
  103. package/dist/types/libs/render/cache/__tests__/cache.fun.test.d.ts +0 -1
  104. package/dist/types/libs/render/cache/__tests__/cache.test.d.ts +0 -1
  105. package/dist/types/libs/render/cache/__tests__/cacheable.d.ts +0 -62
  106. package/dist/types/libs/render/cache/__tests__/error-configuration.d.ts +0 -28
  107. package/dist/types/libs/render/cache/__tests__/matched-cache.d.ts +0 -124
  108. package/dist/types/libs/render/cache/index.d.ts +0 -6
  109. package/dist/types/libs/render/cache/page-caches/index.d.ts +0 -2
  110. package/dist/types/libs/render/cache/page-caches/lru.d.ts +0 -15
  111. package/dist/types/libs/render/cache/spr.d.ts +0 -24
  112. package/dist/types/libs/render/cache/type.d.ts +0 -48
  113. package/dist/types/libs/render/cache/util.d.ts +0 -17
  114. package/dist/types/libs/render/index.d.ts +0 -18
  115. package/dist/types/libs/render/modern/browser-list.d.ts +0 -1
  116. package/dist/types/libs/render/modern/index.d.ts +0 -3
  117. package/dist/types/libs/render/reader.d.ts +0 -18
  118. package/dist/types/libs/render/ssr.d.ts +0 -10
  119. package/dist/types/libs/render/static.d.ts +0 -3
  120. package/dist/types/libs/render/type.d.ts +0 -34
  121. package/dist/types/libs/route/index.d.ts +0 -15
  122. package/dist/types/libs/route/matcher.d.ts +0 -15
  123. package/dist/types/libs/route/route.d.ts +0 -14
  124. package/dist/types/libs/serve-file.d.ts +0 -8
  125. package/dist/types/server/dev-server/index.d.ts +0 -2
  126. package/dist/types/server/modern-server-split.d.ts +0 -26
  127. package/dist/types/server/modern-server.d.ts +0 -72
  128. package/dist/types/type.d.ts +0 -80
  129. package/dist/types/utils.d.ts +0 -19
  130. package/tests/context.test.ts +0 -52
  131. package/tests/fixtures/hosting-files/static/index.js +0 -1
  132. package/tests/fixtures/reader/index.ts +0 -3
  133. package/tests/fixtures/route-spec/dynamic.json +0 -13
  134. package/tests/fixtures/route-spec/index.json +0 -29
  135. package/tests/fixtures/ssr/bundle.js +0 -5
  136. package/tests/fixtures/static-dir/bar.html +0 -11
  137. package/tests/fixtures/static-dir/baz/index.html +0 -11
  138. package/tests/fixtures/static-dir/foo/index.html +0 -11
  139. package/tests/helper.ts +0 -8
  140. package/tests/hook.test.ts +0 -44
  141. package/tests/middleware.test.ts +0 -179
  142. package/tests/render.test.ts +0 -102
  143. package/tests/route.test.ts +0 -77
  144. package/tests/utils.test.ts +0 -106
@@ -1,143 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.toPath = exports.toMessage = exports.prepareFavicons = exports.noop = exports.mergeExtension = exports.getStaticReg = exports.createMiddlewareCollecter = exports.createErrorDocument = void 0;
7
-
8
- var _pathToRegexp = require("path-to-regexp");
9
-
10
- const mergeExtension = users => {
11
- const output = [];
12
- return {
13
- middleware: output.concat(users)
14
- };
15
- };
16
-
17
- exports.mergeExtension = mergeExtension;
18
-
19
- const toMessage = (dig, e) => {
20
- const message = e instanceof Error ? e.message : e;
21
-
22
- if (message) {
23
- return `${dig}: ${message}`;
24
- } else {
25
- return dig;
26
- }
27
- };
28
-
29
- exports.toMessage = toMessage;
30
-
31
- const noop = () => {// noop
32
- };
33
-
34
- exports.noop = noop;
35
-
36
- const createErrorDocument = (status, text) => {
37
- const title = `${status}: ${text}`;
38
- return `<!DOCTYPE html>
39
- <html lang="en">
40
- <head>
41
- <meta charset="utf-8">
42
- <meta name="viewport" content="width=device-width">
43
- <title>${title}</title>
44
- <style>
45
- html,body {
46
- margin: 0;
47
- }
48
-
49
- .page-container {
50
- color: #000;
51
- background: #fff;
52
- height: 100vh;
53
- text-align: center;
54
- display: flex;
55
- flex-direction: column;
56
- align-items: center;
57
- justify-content: center;
58
- }
59
- </style>
60
- </head>
61
- <body>
62
- <div class="page-container">
63
- <h1>${status}</h1>
64
- <div>${text}</div>
65
- </body>
66
- </html>
67
- `;
68
- };
69
-
70
- exports.createErrorDocument = createErrorDocument;
71
-
72
- const createMiddlewareCollecter = () => {
73
- const webMiddlewares = [];
74
- const apiMiddlewares = [];
75
-
76
- const addWebMiddleware = input => {
77
- webMiddlewares.push(input);
78
- };
79
-
80
- const addAPIMiddleware = input => {
81
- apiMiddlewares.push(input);
82
- };
83
-
84
- const getMiddlewares = () => ({
85
- web: webMiddlewares,
86
- api: apiMiddlewares
87
- });
88
-
89
- return {
90
- getMiddlewares,
91
- addWebMiddleware,
92
- addAPIMiddleware
93
- };
94
- };
95
-
96
- exports.createMiddlewareCollecter = createMiddlewareCollecter;
97
-
98
- const toPath = (reg, params) => {
99
- const fn = (0, _pathToRegexp.compile)(reg, {
100
- encode: encodeURIComponent
101
- });
102
- return fn(params);
103
- };
104
-
105
- exports.toPath = toPath;
106
-
107
- const getStaticReg = (output = {}) => {
108
- const {
109
- favicon,
110
- faviconByEntries,
111
- cssPath,
112
- jsPath,
113
- mediaPath
114
- } = output;
115
- const favicons = prepareFavicons(favicon, faviconByEntries);
116
- const staticFiles = [cssPath, jsPath, mediaPath].filter(v => Boolean(v));
117
- const staticPathRegExp = new RegExp(`^/(static/|upload/|favicon.ico|icon.png${favicons.length > 0 ? `|${favicons.join('|')}` : ''}|${staticFiles.join('|')})`);
118
- return staticPathRegExp;
119
- };
120
-
121
- exports.getStaticReg = getStaticReg;
122
-
123
- const prepareFavicons = (favicon, faviconByEntries) => {
124
- const faviconNames = [];
125
-
126
- if (favicon) {
127
- faviconNames.push(favicon.substring(favicon.lastIndexOf('/') + 1));
128
- }
129
-
130
- if (faviconByEntries) {
131
- Object.keys(faviconByEntries).forEach(f => {
132
- const curFavicon = faviconByEntries[f];
133
-
134
- if (curFavicon) {
135
- faviconNames.push(curFavicon.substring(curFavicon.lastIndexOf('/') + 1));
136
- }
137
- });
138
- }
139
-
140
- return faviconNames;
141
- };
142
-
143
- exports.prepareFavicons = prepareFavicons;
@@ -1,20 +0,0 @@
1
- export declare const AGGRED_DIR: {
2
- mock: string;
3
- server: string;
4
- api: string;
5
- shared: string;
6
- lambda: string;
7
- };
8
- export declare enum ApiServerMode {
9
- func = "function",
10
- frame = "framework",
11
- }
12
- export declare const ERROR_DIGEST: {
13
- INIT: string;
14
- ENOTF: string;
15
- WARMUP: string;
16
- EINTER: string;
17
- ERENDER: string;
18
- EMICROINJ: string;
19
- };
20
- export declare const ERROR_PAGE_TEXT: Record<number, string>;
@@ -1,61 +0,0 @@
1
- /// <reference path="../../type.d.ts" />
2
- /// <reference types="node" />
3
- /// <reference types="node/http" />
4
- import { IncomingMessage, ServerResponse } from 'http';
5
- import { URL } from 'url';
6
- import qs from 'querystring';
7
- import type { ModernServerContext as ModernServerContextInterface, Metrics, Logger } from '@modern-js/types/server';
8
- export declare type ContextOptions = {
9
- logger?: Logger;
10
- metrics?: Metrics;
11
- };
12
- export declare class ModernServerContext implements ModernServerContextInterface {
13
- /**
14
- * http request
15
- */
16
- req: IncomingMessage;
17
- /**
18
- * http response
19
- */
20
-
21
- res: ServerResponse;
22
- /**
23
- * url params
24
- */
25
-
26
- params: Record<string, string>;
27
- logger: Logger;
28
- metrics?: Metrics;
29
- serverData: Record<string, any>;
30
- constructor(req: IncomingMessage, res: ServerResponse);
31
- private bind;
32
- setParams(params: Record<string, string>): void;
33
- setServerData(key: string, value: any): void;
34
- getReqHeader(key: string): string | string[];
35
- get headers(): import("http").IncomingHttpHeaders;
36
- get method(): string;
37
- get url(): string;
38
- set url(val: string);
39
- get host(): string;
40
- get protocol(): string;
41
- get origin(): string;
42
- get href(): string;
43
- get parsedURL(): URL;
44
- get path(): string;
45
- set path(p: string);
46
- get querystring(): string;
47
- get query(): qs.ParsedUrlQuery;
48
- get status(): number;
49
- set status(statusCode: number);
50
- /**
51
- * 判断链接是否已经关闭
52
- */
53
-
54
- resHasHandled(): boolean;
55
- logInfo(): {
56
- headers: import("http").IncomingHttpHeaders;
57
- href: string;
58
- url: string;
59
- };
60
- error(dig: string, err?: Error | string): void;
61
- }
@@ -1,4 +0,0 @@
1
- import { IncomingMessage, ServerResponse } from 'http';
2
- import { ModernServerContext } from './context';
3
- export declare const createContext: (req: IncomingMessage, res: ServerResponse) => ModernServerContext;
4
- export { ModernServerContext };
@@ -1,14 +0,0 @@
1
- import { RouteMatchManager, RouteMatcher } from '../route';
2
-
3
- declare class RouteAPI {
4
- private readonly router;
5
- private current;
6
- private readonly url;
7
- constructor(matched: RouteMatcher, router: RouteMatchManager, url: string);
8
- cur(): import("../route").ModernRoute;
9
- get(entryName: string): import("../route").ModernRoute | null;
10
- use(entryName: string): boolean;
11
- }
12
-
13
- export declare const createRouteAPI: (matched: RouteMatcher, router: RouteMatchManager, url: string) => RouteAPI;
14
- export {};
@@ -1,14 +0,0 @@
1
- declare class TemplateAPI {
2
- private content;
3
- constructor(content: string);
4
- get(): string;
5
- set(content: string): void;
6
- prependHead(fragment: string): this;
7
- appendHead(fragment: string): this;
8
- prependBody(fragment: string): this;
9
- appendBody(fragment: string): this;
10
- replace(reg: RegExp | string, text: string): this;
11
- }
12
-
13
- export declare const createTemplateAPI: (content: string) => TemplateAPI;
14
- export {};
@@ -1,3 +0,0 @@
1
- import { Metrics } from '../type';
2
- declare const metrics: Metrics;
3
- export { metrics };
@@ -1,4 +0,0 @@
1
- import { NextFunction, ProxyOptions } from '@modern-js/types';
2
- import { ModernServerContext } from './context';
3
- export type { ProxyOptions };
4
- export declare const createProxyHandler: (proxyOptions: ProxyOptions) => ((ctx: ModernServerContext, next: NextFunction) => Promise<void>)[] | null;
@@ -1,62 +0,0 @@
1
- export declare const cacheabelAry: ({
2
- requestOpt: {
3
- url: string;
4
- query?: undefined;
5
- headers?: undefined;
6
- };
7
- cacheConfig: {
8
- level?: undefined;
9
- includes?: undefined;
10
- };
11
- content: string;
12
- } | {
13
- requestOpt: {
14
- url: string;
15
- query: {
16
- name: string;
17
- };
18
- headers?: undefined;
19
- };
20
- cacheConfig: {
21
- level: number;
22
- includes: {
23
- query: string[];
24
- header?: undefined;
25
- };
26
- };
27
- content: string;
28
- } | {
29
- requestOpt: {
30
- url: string;
31
- headers: {
32
- age: string;
33
- };
34
- query?: undefined;
35
- };
36
- cacheConfig: {
37
- level: number;
38
- includes: {
39
- header: string[];
40
- query?: undefined;
41
- };
42
- };
43
- content: string;
44
- } | {
45
- requestOpt: {
46
- url: string;
47
- query: {
48
- name: string;
49
- };
50
- headers: {
51
- age: string;
52
- };
53
- };
54
- cacheConfig: {
55
- level: number;
56
- includes: {
57
- query: string[];
58
- header: string[];
59
- };
60
- };
61
- content: string;
62
- })[];
@@ -1,28 +0,0 @@
1
- export declare const errorConfiguration: ({
2
- level: number;
3
- includes?: undefined;
4
- } | {
5
- level: number;
6
- includes: {
7
- query?: undefined;
8
- header?: undefined;
9
- };
10
- } | {
11
- level: number;
12
- includes: {
13
- query: never[];
14
- header?: undefined;
15
- };
16
- } | {
17
- level: number;
18
- includes: {
19
- header: never[];
20
- query?: undefined;
21
- };
22
- } | {
23
- level: number;
24
- includes: {
25
- query: never[];
26
- header: never[];
27
- };
28
- })[];
@@ -1,124 +0,0 @@
1
- export declare const matchedCacheableAry: (({
2
- requestOpt: {
3
- url: string;
4
- headers: {};
5
- query: {
6
- name: string;
7
- };
8
- };
9
- cacheConfig: {
10
- level: number;
11
- includes: {
12
- query: string[];
13
- };
14
- matches: {
15
- query: {
16
- name: {
17
- weixin: string;
18
- };
19
- };
20
- };
21
- };
22
- content: string;
23
- url?: undefined;
24
- headers?: undefined;
25
- query?: undefined;
26
- } | {
27
- url: string;
28
- headers: {};
29
- query: {
30
- name: string;
31
- };
32
- requestOpt?: undefined;
33
- cacheConfig?: undefined;
34
- content?: undefined;
35
- })[] | ({
36
- requestOpt: {
37
- url: string;
38
- query: {};
39
- headers: {
40
- age: string;
41
- };
42
- };
43
- cacheConfig: {
44
- level: number;
45
- includes: {
46
- header: string[];
47
- };
48
- matches: {
49
- header: {
50
- age: {
51
- one: string;
52
- };
53
- };
54
- };
55
- };
56
- content: string;
57
- url?: undefined;
58
- query?: undefined;
59
- headers?: undefined;
60
- } | {
61
- url: string;
62
- query: {};
63
- headers: {
64
- age: string;
65
- };
66
- requestOpt?: undefined;
67
- cacheConfig?: undefined;
68
- content?: undefined;
69
- })[] | ({
70
- requestOpt: {
71
- url: string;
72
- headers: {
73
- age: string;
74
- };
75
- query: {
76
- name: string;
77
- };
78
- };
79
- cacheConfig: {
80
- level: number;
81
- includes: {
82
- query: string[];
83
- header: string[];
84
- };
85
- matches: {
86
- query: {
87
- name: {
88
- weixin: string;
89
- };
90
- };
91
- header: {
92
- age: {
93
- one: string;
94
- };
95
- };
96
- };
97
- };
98
- content: string;
99
- url?: undefined;
100
- query?: undefined;
101
- headers?: undefined;
102
- } | {
103
- url: string;
104
- query: {
105
- name: string;
106
- };
107
- headers: {
108
- age: string;
109
- };
110
- requestOpt?: undefined;
111
- cacheConfig?: undefined;
112
- content?: undefined;
113
- } | {
114
- url: string;
115
- query: {
116
- name: string;
117
- };
118
- headers: {
119
- age?: undefined;
120
- };
121
- requestOpt?: undefined;
122
- cacheConfig?: undefined;
123
- content?: undefined;
124
- })[])[];
@@ -1,6 +0,0 @@
1
- import { ModernServerContext } from '../../context';
2
- import { RenderFunction } from '../type';
3
-
4
- declare const _default: (renderFn: RenderFunction, ctx: ModernServerContext) => RenderFunction;
5
-
6
- export default _default;
@@ -1,2 +0,0 @@
1
- import { PageCachesInterface } from '../type';
2
- export declare function createPageCaches(max: number): Promise<PageCachesInterface>;
@@ -1,15 +0,0 @@
1
- import LRU from 'lru-cache';
2
- import { PageCache, PageCachesInterface } from '../type';
3
- export declare class LRUCaches implements PageCachesInterface {
4
- caches: LRU<string, PageCache>;
5
- private readonly max;
6
- constructor(options: {
7
- max: number;
8
- });
9
- init(): Promise<void>;
10
- keys(): string[];
11
- get(key: string): Promise<PageCache | null>;
12
- peek(key: string): PageCache | null;
13
- set(key: string, cache: PageCache): Promise<void>;
14
- del(key: string): void;
15
- }
@@ -1,24 +0,0 @@
1
- import LRUCache from 'lru-cache';
2
- import { CacheContent, CacheManagerOptions, CacheResult, CacheContext, CacheConfig } from './type';
3
-
4
- declare class CacheManager {
5
- cache: LRUCache<string, CacheContent>;
6
- cacheOptions: CacheManagerOptions;
7
- constructor(cacheOptions: CacheManagerOptions);
8
- private md5;
9
- private generateRequestKey;
10
- private replaceValue;
11
- private factor;
12
- private queryFactor;
13
- private headerFactor;
14
- private readonly find;
15
- private best;
16
- private createCacheContent;
17
- get(context: CacheContext): Promise<CacheResult | null>;
18
- set(context: CacheContext, html: string, cacheConfig: CacheConfig, sync?: boolean): Promise<any>;
19
- del(context: CacheContext, cacheHash: string): Promise<void>;
20
- }
21
-
22
- export declare function createCache(): CacheManager;
23
- export declare function destroyCache(): void;
24
- export {};
@@ -1,48 +0,0 @@
1
- /// <reference types="node" />
2
- import { IncomingHttpHeaders } from 'http';
3
- import { RenderResult } from '../../../type';
4
- export type { CacheConfig } from '../type';
5
- export declare type CacheContent = {
6
- level: number;
7
- includes: {
8
- header?: string[];
9
- query?: string[];
10
- } | null;
11
- matches?: {
12
- header?: Record<string, Record<string, string>>;
13
- query?: Record<string, Record<string, string>>;
14
- } | null;
15
- interval: number;
16
- limit: number | boolean;
17
- caches: PageCachesInterface;
18
- };
19
- export interface PageCachesInterface {
20
- caches: any;
21
- init: () => void;
22
- get: (key: string) => Promise<PageCache | null>;
23
- peek: (key: string) => PageCache | null;
24
- set: (key: string, cache: PageCache) => Promise<void>;
25
- del: (key: string) => void;
26
- keys: () => string[];
27
- }
28
- export declare type PageCache = {
29
- html: string;
30
- expireTime: number;
31
- limitTime: number | null;
32
- cacheHash: string;
33
- size: number;
34
- };
35
- export declare type CacheManagerOptions = {
36
- max: number;
37
- };
38
- export interface CacheResult extends RenderResult {
39
- isStale: boolean;
40
- isGarbage: boolean;
41
- hash: string;
42
- }
43
- export declare type CacheContext = {
44
- entry: string;
45
- pathname: string;
46
- query: Record<string, string>;
47
- headers: IncomingHttpHeaders;
48
- };
@@ -1,17 +0,0 @@
1
- /// <reference types="node" />
2
- import { IncomingHttpHeaders } from 'http';
3
- import url from 'url';
4
- export declare function namespaceHash(namespace: string, hash: string): string;
5
- export declare function fname(lv: number): string;
6
- export declare function connectFactor(...args: string[]): string;
7
- export declare function valueFactory(obj: url.URLSearchParams | IncomingHttpHeaders): ((key: string) => string | null) | ((key: string) => string | undefined);
8
- export declare function getTime([s, ns]: [number, number]): number;
9
- export declare function cacheAddition(html: string, hash: string): string;
10
- declare type CoalescedInvoke<T> = {
11
- isOrigin: boolean;
12
- value: T;
13
- };
14
- declare type UnwrapPromise<T> = T extends Promise<infer U> ? U : T;
15
- export declare function withCoalescedInvoke<F extends (...args: any[]) => Promise<any>>(func: F): (key: string, args: Parameters<F>) => Promise<CoalescedInvoke<UnwrapPromise<ReturnType<F>>>>;
16
- export declare function maybeSync(fn: () => Promise<any>): (sync: boolean) => Promise<any>;
17
- export {};
@@ -1,18 +0,0 @@
1
- import { RenderResult, ServerHookRunner } from '../../type';
2
- import { ModernRoute } from '../route';
3
- import { ModernServerContext } from '../context';
4
- export declare const createRenderHandler: ({
5
- distDir,
6
- staticGenerate
7
- }: {
8
- distDir: string;
9
- staticGenerate: boolean;
10
- }) => ({
11
- ctx,
12
- route,
13
- runner
14
- }: {
15
- ctx: ModernServerContext;
16
- route: ModernRoute;
17
- runner: ServerHookRunner;
18
- }) => Promise<RenderResult | null>;
@@ -1 +0,0 @@
1
- export declare const NativeModuleNameMap: Record<string, string>;
@@ -1,3 +0,0 @@
1
- import { ModernServerContext } from '../../context';
2
- export declare const supportModern: (context: ModernServerContext) => boolean;
3
- export declare const getModernEntry: (filepath: string) => string;
@@ -1,18 +0,0 @@
1
- /// <reference types="node" />
2
- export declare class LruReader {
3
- private readonly cache;
4
- constructor();
5
- init(): void;
6
- close(): void;
7
- read(filepath: string): Promise<{
8
- content: Buffer;
9
- mtime: Date;
10
- } | {
11
- content: Buffer;
12
- } | null>;
13
- update(): void;
14
- }
15
- export declare const readFile: (filepath: string) => Promise<Buffer | undefined>;
16
- export declare const updateFile: () => void;
17
- export declare const init: () => void;
18
- export declare const close: () => void;
@@ -1,10 +0,0 @@
1
- import { ModernServerContext } from '../context';
2
- import { RenderResult, ServerHookRunner } from '../../type';
3
- export declare const render: (ctx: ModernServerContext, renderOptions: {
4
- distDir: string;
5
- bundle: string;
6
- urlPath: string;
7
- template: string;
8
- entryName: string;
9
- staticGenerate: boolean;
10
- }, runner: ServerHookRunner) => Promise<RenderResult>;
@@ -1,3 +0,0 @@
1
- import { RenderResult } from '../../type';
2
- import { ModernServerContext } from '../context';
3
- export declare function handleDirectory(ctx: ModernServerContext, entryPath: string, urlPath: string): Promise<RenderResult | null>;