@modern-js/server 1.4.1 → 1.4.4-beta.0

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 (145) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/js/modern/dev-tools/mock/index.js +1 -1
  3. package/dist/js/modern/dev-tools/socket-server.js +63 -46
  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} +19 -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 +63 -47
  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} +22 -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 -2
  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 +5 -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} +6 -5
  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 +13 -42
  29. package/tests/dev.test.ts +17 -0
  30. package/tests/server.test.ts +10 -3
  31. package/dist/js/modern/constants.js +0 -26
  32. package/dist/js/modern/libs/context/context.js +0 -180
  33. package/dist/js/modern/libs/context/index.js +0 -3
  34. package/dist/js/modern/libs/hook-api/route.js +0 -39
  35. package/dist/js/modern/libs/hook-api/template.js +0 -61
  36. package/dist/js/modern/libs/metrics.js +0 -12
  37. package/dist/js/modern/libs/proxy.js +0 -59
  38. package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +0 -70
  39. package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +0 -233
  40. package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +0 -53
  41. package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +0 -35
  42. package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +0 -121
  43. package/dist/js/modern/libs/render/cache/index.js +0 -74
  44. package/dist/js/modern/libs/render/cache/page-caches/index.js +0 -9
  45. package/dist/js/modern/libs/render/cache/page-caches/lru.js +0 -35
  46. package/dist/js/modern/libs/render/cache/spr.js +0 -280
  47. package/dist/js/modern/libs/render/cache/util.js +0 -79
  48. package/dist/js/modern/libs/render/index.js +0 -65
  49. package/dist/js/modern/libs/render/modern/browser-list.js +0 -7
  50. package/dist/js/modern/libs/render/modern/index.js +0 -42
  51. package/dist/js/modern/libs/render/reader.js +0 -112
  52. package/dist/js/modern/libs/render/ssr.js +0 -58
  53. package/dist/js/modern/libs/render/static.js +0 -46
  54. package/dist/js/modern/libs/render/type.js +0 -7
  55. package/dist/js/modern/libs/route/index.js +0 -68
  56. package/dist/js/modern/libs/route/matcher.js +0 -94
  57. package/dist/js/modern/libs/route/route.js +0 -24
  58. package/dist/js/modern/libs/serve-file.js +0 -28
  59. package/dist/js/modern/server/dev-server/index.js +0 -2
  60. package/dist/js/modern/server/modern-server-split.js +0 -81
  61. package/dist/js/modern/server/modern-server.js +0 -584
  62. package/dist/js/modern/type.js +0 -1
  63. package/dist/js/modern/utils.js +0 -112
  64. package/dist/js/node/constants.js +0 -36
  65. package/dist/js/node/libs/context/context.js +0 -194
  66. package/dist/js/node/libs/context/index.js +0 -18
  67. package/dist/js/node/libs/hook-api/route.js +0 -48
  68. package/dist/js/node/libs/hook-api/template.js +0 -69
  69. package/dist/js/node/libs/metrics.js +0 -18
  70. package/dist/js/node/libs/proxy.js +0 -69
  71. package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +0 -77
  72. package/dist/js/node/libs/render/cache/__tests__/cache.test.js +0 -238
  73. package/dist/js/node/libs/render/cache/__tests__/cacheable.js +0 -60
  74. package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +0 -42
  75. package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +0 -128
  76. package/dist/js/node/libs/render/cache/index.js +0 -86
  77. package/dist/js/node/libs/render/cache/page-caches/index.js +0 -17
  78. package/dist/js/node/libs/render/cache/page-caches/lru.js +0 -47
  79. package/dist/js/node/libs/render/cache/spr.js +0 -298
  80. package/dist/js/node/libs/render/cache/util.js +0 -105
  81. package/dist/js/node/libs/render/index.js +0 -91
  82. package/dist/js/node/libs/render/modern/browser-list.js +0 -14
  83. package/dist/js/node/libs/render/modern/index.js +0 -58
  84. package/dist/js/node/libs/render/reader.js +0 -139
  85. package/dist/js/node/libs/render/ssr.js +0 -76
  86. package/dist/js/node/libs/render/static.js +0 -62
  87. package/dist/js/node/libs/render/type.js +0 -14
  88. package/dist/js/node/libs/route/index.js +0 -83
  89. package/dist/js/node/libs/route/matcher.js +0 -108
  90. package/dist/js/node/libs/route/route.js +0 -33
  91. package/dist/js/node/libs/serve-file.js +0 -41
  92. package/dist/js/node/server/dev-server/index.js +0 -27
  93. package/dist/js/node/server/modern-server-split.js +0 -97
  94. package/dist/js/node/server/modern-server.js +0 -622
  95. package/dist/js/node/type.js +0 -5
  96. package/dist/js/node/utils.js +0 -143
  97. package/dist/types/constants.d.ts +0 -20
  98. package/dist/types/libs/context/context.d.ts +0 -61
  99. package/dist/types/libs/context/index.d.ts +0 -4
  100. package/dist/types/libs/hook-api/route.d.ts +0 -14
  101. package/dist/types/libs/hook-api/template.d.ts +0 -14
  102. package/dist/types/libs/metrics.d.ts +0 -3
  103. package/dist/types/libs/proxy.d.ts +0 -16
  104. package/dist/types/libs/render/cache/__tests__/cache.fun.test.d.ts +0 -1
  105. package/dist/types/libs/render/cache/__tests__/cache.test.d.ts +0 -1
  106. package/dist/types/libs/render/cache/__tests__/cacheable.d.ts +0 -62
  107. package/dist/types/libs/render/cache/__tests__/error-configuration.d.ts +0 -28
  108. package/dist/types/libs/render/cache/__tests__/matched-cache.d.ts +0 -124
  109. package/dist/types/libs/render/cache/index.d.ts +0 -6
  110. package/dist/types/libs/render/cache/page-caches/index.d.ts +0 -2
  111. package/dist/types/libs/render/cache/page-caches/lru.d.ts +0 -15
  112. package/dist/types/libs/render/cache/spr.d.ts +0 -24
  113. package/dist/types/libs/render/cache/type.d.ts +0 -48
  114. package/dist/types/libs/render/cache/util.d.ts +0 -17
  115. package/dist/types/libs/render/index.d.ts +0 -18
  116. package/dist/types/libs/render/modern/browser-list.d.ts +0 -1
  117. package/dist/types/libs/render/modern/index.d.ts +0 -3
  118. package/dist/types/libs/render/reader.d.ts +0 -18
  119. package/dist/types/libs/render/ssr.d.ts +0 -10
  120. package/dist/types/libs/render/static.d.ts +0 -3
  121. package/dist/types/libs/render/type.d.ts +0 -34
  122. package/dist/types/libs/route/index.d.ts +0 -15
  123. package/dist/types/libs/route/matcher.d.ts +0 -15
  124. package/dist/types/libs/route/route.d.ts +0 -14
  125. package/dist/types/libs/serve-file.d.ts +0 -8
  126. package/dist/types/server/dev-server/index.d.ts +0 -2
  127. package/dist/types/server/modern-server-split.d.ts +0 -26
  128. package/dist/types/server/modern-server.d.ts +0 -72
  129. package/dist/types/type.d.ts +0 -80
  130. package/dist/types/utils.d.ts +0 -19
  131. package/tests/context.test.ts +0 -52
  132. package/tests/fixtures/hosting-files/static/index.js +0 -1
  133. package/tests/fixtures/reader/index.ts +0 -3
  134. package/tests/fixtures/route-spec/dynamic.json +0 -13
  135. package/tests/fixtures/route-spec/index.json +0 -29
  136. package/tests/fixtures/ssr/bundle.js +0 -5
  137. package/tests/fixtures/static-dir/bar.html +0 -11
  138. package/tests/fixtures/static-dir/baz/index.html +0 -11
  139. package/tests/fixtures/static-dir/foo/index.html +0 -11
  140. package/tests/helper.ts +0 -8
  141. package/tests/hook.test.ts +0 -44
  142. package/tests/middleware.test.ts +0 -179
  143. package/tests/render.test.ts +0 -102
  144. package/tests/route.test.ts +0 -77
  145. 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,16 +0,0 @@
1
- /// <reference types="node" />
2
- import { IncomingMessage, ServerResponse } from 'http';
3
- import { NextFunction } from '../type';
4
- import { ModernServerContext } from './context';
5
- declare type ProxyDetail = {
6
- target: string;
7
- pathRewrite?: Record<string, string>;
8
- secure?: boolean;
9
- logLevel?: 'debug' | 'info' | 'warn' | 'error' | 'silent';
10
- bypass?: (req: IncomingMessage, res: ServerResponse, proxyOptions: ProxyOptions) => string | undefined | null | false;
11
- context?: string | string[];
12
- changeOrigin?: boolean;
13
- };
14
- export declare type ProxyOptions = Record<string, string> | Record<string, ProxyDetail> | ProxyDetail[] | ProxyDetail;
15
- export declare const createProxyHandler: (proxyOptions: ProxyOptions) => ((ctx: ModernServerContext, next: NextFunction) => Promise<void>)[] | null;
16
- export {};
@@ -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>;