@modern-js/prod-server 2.35.0 → 2.36.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 (151) hide show
  1. package/dist/cjs/constants.js +33 -27
  2. package/dist/cjs/index.js +41 -33
  3. package/dist/cjs/libs/context/context.js +86 -36
  4. package/dist/cjs/libs/context/index.js +27 -17
  5. package/dist/cjs/libs/hook-api/base.js +49 -30
  6. package/dist/cjs/libs/hook-api/index.js +36 -28
  7. package/dist/cjs/libs/hook-api/index.worker.js +39 -31
  8. package/dist/cjs/libs/hook-api/route.js +28 -11
  9. package/dist/cjs/libs/hook-api/template.js +27 -17
  10. package/dist/cjs/libs/hook-api/templateForStream.js +31 -14
  11. package/dist/cjs/libs/loadConfig.js +46 -29
  12. package/dist/cjs/libs/metrics.js +24 -7
  13. package/dist/cjs/libs/preload/flushServerHeader.js +30 -13
  14. package/dist/cjs/libs/preload/index.js +22 -5
  15. package/dist/cjs/libs/preload/parseLinks.js +54 -30
  16. package/dist/cjs/libs/preload/shouldFlushServerHeader.js +25 -15
  17. package/dist/cjs/libs/preload/transformLinks2String.js +27 -11
  18. package/dist/cjs/libs/proxy.js +29 -19
  19. package/dist/cjs/libs/render/cache/__tests__/cache.fun.test.js +40 -22
  20. package/dist/cjs/libs/render/cache/__tests__/cache.test.js +33 -41
  21. package/dist/cjs/libs/render/cache/__tests__/cacheable.js +24 -7
  22. package/dist/cjs/libs/render/cache/__tests__/error-configuration.js +24 -7
  23. package/dist/cjs/libs/render/cache/__tests__/matched-cache.js +24 -7
  24. package/dist/cjs/libs/render/cache/index.js +30 -18
  25. package/dist/cjs/libs/render/cache/page-caches/index.js +26 -9
  26. package/dist/cjs/libs/render/cache/page-caches/lru.js +39 -13
  27. package/dist/cjs/libs/render/cache/spr.js +62 -44
  28. package/dist/cjs/libs/render/cache/type.js +15 -3
  29. package/dist/cjs/libs/render/cache/util.js +49 -36
  30. package/dist/cjs/libs/render/index.js +56 -30
  31. package/dist/cjs/libs/render/measure.js +27 -17
  32. package/dist/cjs/libs/render/reader.js +50 -35
  33. package/dist/cjs/libs/render/ssr.js +52 -26
  34. package/dist/cjs/libs/render/static.js +44 -18
  35. package/dist/cjs/libs/render/type.js +24 -7
  36. package/dist/cjs/libs/render/utils.js +29 -19
  37. package/dist/cjs/libs/reporter.js +24 -7
  38. package/dist/cjs/libs/route/index.js +30 -20
  39. package/dist/cjs/libs/route/matcher.js +37 -20
  40. package/dist/cjs/libs/route/route.js +34 -17
  41. package/dist/cjs/libs/serveFile.js +40 -21
  42. package/dist/cjs/libs/serverTiming.js +27 -10
  43. package/dist/cjs/renderHtml.js +17 -20
  44. package/dist/cjs/server/index.js +74 -50
  45. package/dist/cjs/server/modernServer.js +136 -113
  46. package/dist/cjs/server/modernServerSplit.js +29 -12
  47. package/dist/cjs/type.js +15 -3
  48. package/dist/cjs/utils.js +41 -38
  49. package/dist/cjs/workerServer.js +48 -39
  50. package/dist/esm/constants.js +14 -6
  51. package/dist/esm/index.js +11 -5
  52. package/dist/esm/libs/context/context.js +33 -6
  53. package/dist/esm/libs/context/index.js +5 -2
  54. package/dist/esm/libs/hook-api/base.js +6 -2
  55. package/dist/esm/libs/hook-api/index.js +11 -5
  56. package/dist/esm/libs/hook-api/index.worker.js +16 -10
  57. package/dist/esm/libs/hook-api/route.js +4 -1
  58. package/dist/esm/libs/hook-api/template.js +6 -2
  59. package/dist/esm/libs/hook-api/templateForStream.js +4 -1
  60. package/dist/esm/libs/loadConfig.js +8 -3
  61. package/dist/esm/libs/metrics.js +3 -1
  62. package/dist/esm/libs/preload/flushServerHeader.js +9 -6
  63. package/dist/esm/libs/preload/parseLinks.js +13 -11
  64. package/dist/esm/libs/preload/shouldFlushServerHeader.js +6 -2
  65. package/dist/esm/libs/preload/transformLinks2String.js +5 -3
  66. package/dist/esm/libs/proxy.js +9 -5
  67. package/dist/esm/libs/render/cache/__tests__/cache.test.js +12 -12
  68. package/dist/esm/libs/render/cache/__tests__/cacheable.js +4 -1
  69. package/dist/esm/libs/render/cache/__tests__/error-configuration.js +4 -1
  70. package/dist/esm/libs/render/cache/__tests__/matched-cache.js +4 -1
  71. package/dist/esm/libs/render/cache/index.js +6 -3
  72. package/dist/esm/libs/render/cache/page-caches/index.js +5 -2
  73. package/dist/esm/libs/render/cache/page-caches/lru.js +4 -1
  74. package/dist/esm/libs/render/cache/spr.js +13 -9
  75. package/dist/esm/libs/render/cache/type.js +0 -1
  76. package/dist/esm/libs/render/cache/util.js +18 -8
  77. package/dist/esm/libs/render/index.js +17 -11
  78. package/dist/esm/libs/render/measure.js +15 -11
  79. package/dist/esm/libs/render/reader.js +17 -10
  80. package/dist/esm/libs/render/ssr.js +11 -8
  81. package/dist/esm/libs/render/static.js +5 -2
  82. package/dist/esm/libs/render/type.js +4 -1
  83. package/dist/esm/libs/render/utils.js +6 -2
  84. package/dist/esm/libs/reporter.js +4 -1
  85. package/dist/esm/libs/route/index.js +5 -2
  86. package/dist/esm/libs/route/matcher.js +6 -3
  87. package/dist/esm/libs/route/route.js +4 -1
  88. package/dist/esm/libs/serveFile.js +6 -2
  89. package/dist/esm/libs/serverTiming.js +4 -1
  90. package/dist/esm/renderHtml.js +133 -124
  91. package/dist/esm/server/index.js +14 -13
  92. package/dist/esm/server/modernServer.js +39 -47
  93. package/dist/esm/server/modernServerSplit.js +4 -1
  94. package/dist/esm/type.js +0 -1
  95. package/dist/esm/utils.js +23 -12
  96. package/dist/esm/workerServer.js +25 -22
  97. package/dist/esm-node/constants.js +14 -6
  98. package/dist/esm-node/index.js +11 -5
  99. package/dist/esm-node/libs/context/context.js +33 -6
  100. package/dist/esm-node/libs/context/index.js +5 -2
  101. package/dist/esm-node/libs/hook-api/base.js +6 -2
  102. package/dist/esm-node/libs/hook-api/index.js +10 -4
  103. package/dist/esm-node/libs/hook-api/index.worker.js +10 -4
  104. package/dist/esm-node/libs/hook-api/route.js +4 -1
  105. package/dist/esm-node/libs/hook-api/template.js +6 -2
  106. package/dist/esm-node/libs/hook-api/templateForStream.js +4 -1
  107. package/dist/esm-node/libs/loadConfig.js +8 -3
  108. package/dist/esm-node/libs/metrics.js +3 -1
  109. package/dist/esm-node/libs/preload/flushServerHeader.js +6 -3
  110. package/dist/esm-node/libs/preload/parseLinks.js +11 -9
  111. package/dist/esm-node/libs/preload/shouldFlushServerHeader.js +6 -2
  112. package/dist/esm-node/libs/preload/transformLinks2String.js +5 -3
  113. package/dist/esm-node/libs/proxy.js +6 -2
  114. package/dist/esm-node/libs/render/cache/__tests__/cache.test.js +7 -12
  115. package/dist/esm-node/libs/render/cache/__tests__/cacheable.js +4 -1
  116. package/dist/esm-node/libs/render/cache/__tests__/error-configuration.js +4 -1
  117. package/dist/esm-node/libs/render/cache/__tests__/matched-cache.js +4 -1
  118. package/dist/esm-node/libs/render/cache/index.js +5 -3
  119. package/dist/esm-node/libs/render/cache/page-caches/index.js +4 -1
  120. package/dist/esm-node/libs/render/cache/page-caches/lru.js +4 -1
  121. package/dist/esm-node/libs/render/cache/spr.js +7 -4
  122. package/dist/esm-node/libs/render/cache/type.js +0 -1
  123. package/dist/esm-node/libs/render/cache/util.js +18 -8
  124. package/dist/esm-node/libs/render/index.js +7 -3
  125. package/dist/esm-node/libs/render/measure.js +6 -2
  126. package/dist/esm-node/libs/render/reader.js +13 -7
  127. package/dist/esm-node/libs/render/ssr.js +4 -1
  128. package/dist/esm-node/libs/render/static.js +4 -1
  129. package/dist/esm-node/libs/render/type.js +4 -1
  130. package/dist/esm-node/libs/render/utils.js +6 -2
  131. package/dist/esm-node/libs/reporter.js +4 -1
  132. package/dist/esm-node/libs/route/index.js +5 -2
  133. package/dist/esm-node/libs/route/matcher.js +6 -3
  134. package/dist/esm-node/libs/route/route.js +4 -1
  135. package/dist/esm-node/libs/serveFile.js +6 -2
  136. package/dist/esm-node/libs/serverTiming.js +4 -1
  137. package/dist/esm-node/renderHtml.js +72 -63
  138. package/dist/esm-node/server/index.js +11 -10
  139. package/dist/esm-node/server/modernServer.js +29 -28
  140. package/dist/esm-node/server/modernServerSplit.js +4 -1
  141. package/dist/esm-node/type.js +0 -1
  142. package/dist/esm-node/utils.js +20 -9
  143. package/dist/esm-node/workerServer.js +12 -9
  144. package/dist/types/libs/context/context.d.ts +2 -1
  145. package/dist/types/type.d.ts +1 -0
  146. package/dist/types/utils.d.ts +1 -1
  147. package/package.json +9 -8
  148. package/dist/cjs/libs/logger.js +0 -123
  149. package/dist/esm/libs/logger.js +0 -125
  150. package/dist/esm-node/libs/logger.js +0 -106
  151. package/dist/types/libs/logger.d.ts +0 -61
@@ -1,14 +1,14 @@
1
1
  import { createDebugger } from "@modern-js/utils";
2
- export const debug = createDebugger("prod-server");
3
- export const mergeExtension = (users) => {
2
+ const debug = createDebugger("prod-server");
3
+ const mergeExtension = (users) => {
4
4
  const output = [];
5
5
  return {
6
6
  middleware: output.concat(users)
7
7
  };
8
8
  };
9
- export const noop = () => {
9
+ const noop = () => {
10
10
  };
11
- export const createErrorDocument = (status, text) => {
11
+ const createErrorDocument = (status, text) => {
12
12
  const title = `${status}: ${text}`;
13
13
  return `<!DOCTYPE html>
14
14
  <html lang="en">
@@ -41,7 +41,7 @@ export const createErrorDocument = (status, text) => {
41
41
  </html>
42
42
  `;
43
43
  };
44
- export const createMiddlewareCollecter = () => {
44
+ const createMiddlewareCollecter = () => {
45
45
  const webMiddlewares = [];
46
46
  const apiMiddlewares = [];
47
47
  const addWebMiddleware = (input) => {
@@ -60,7 +60,7 @@ export const createMiddlewareCollecter = () => {
60
60
  addAPIMiddleware
61
61
  };
62
62
  };
63
- export const getStaticReg = (output = {}, html = {}, prefix = "/") => {
63
+ const getStaticReg = (output = {}, html = {}, prefix = "/") => {
64
64
  const { distPath: { css: cssPath, js: jsPath, media: mediaPath } = {} } = output;
65
65
  const { favicon, faviconByEntries } = html;
66
66
  const favicons = prepareFavicons(favicon, faviconByEntries);
@@ -86,7 +86,7 @@ export const getStaticReg = (output = {}, html = {}, prefix = "/") => {
86
86
  ].join("|")})`);
87
87
  return staticPathRegExp;
88
88
  };
89
- export const prepareFavicons = (favicon, faviconByEntries) => {
89
+ const prepareFavicons = (favicon, faviconByEntries) => {
90
90
  const faviconNames = [];
91
91
  if (favicon) {
92
92
  faviconNames.push(favicon.substring(favicon.lastIndexOf("/") + 1));
@@ -101,7 +101,7 @@ export const prepareFavicons = (favicon, faviconByEntries) => {
101
101
  }
102
102
  return faviconNames;
103
103
  };
104
- export const headersWithoutCookie = (headers) => {
104
+ const headersWithoutCookie = (headers) => {
105
105
  if (typeof headers.cookie !== "undefined") {
106
106
  const safeHeaders = {
107
107
  ...headers
@@ -111,7 +111,7 @@ export const headersWithoutCookie = (headers) => {
111
111
  }
112
112
  return headers;
113
113
  };
114
- export const isRedirect = (code) => {
114
+ const isRedirect = (code) => {
115
115
  return [
116
116
  301,
117
117
  302,
@@ -119,3 +119,14 @@ export const isRedirect = (code) => {
119
119
  308
120
120
  ].includes(code);
121
121
  };
122
+ export {
123
+ createErrorDocument,
124
+ createMiddlewareCollecter,
125
+ debug,
126
+ getStaticReg,
127
+ headersWithoutCookie,
128
+ isRedirect,
129
+ mergeExtension,
130
+ noop,
131
+ prepareFavicons
132
+ };
@@ -1,11 +1,11 @@
1
1
  import { _ as _define_property } from "@swc/helpers/_/_define_property";
2
2
  import { createAsyncPipeline } from "@modern-js/plugin";
3
+ import { createLogger } from "@modern-js/utils/logger";
3
4
  import { createAfterMatchContext, createAfterRenderContext, createMiddlewareContext } from "./libs/hook-api/index.worker";
4
- import { Logger } from "./libs/logger";
5
5
  import { RouteMatchManager } from "./libs/route";
6
6
  import { metrics as defaultMetrics } from "./libs/metrics";
7
7
  import { defaultReporter } from "./libs/reporter";
8
- export class ReturnResponse {
8
+ class ReturnResponse {
9
9
  /**
10
10
  * Iterate a Object
11
11
  * 1. adds the value if the key does not already exist.
@@ -65,12 +65,12 @@ const checkIsSent = (context) => {
65
65
  return false;
66
66
  };
67
67
  const middlewarePipeline = createAsyncPipeline();
68
- export const createHandler = (manifest) => {
68
+ const createHandler = (manifest) => {
69
69
  const routeMgr = new RouteMatchManager();
70
70
  const { pages, routes } = manifest;
71
71
  routeMgr.reset(routes);
72
72
  return async (options) => {
73
- var _page_serverHooks_afterMatch, _page_serverHooks, _page;
73
+ var _page_serverHooks_afterMatch, _page_serverHooks;
74
74
  const { request, loadableStats, routeManifest } = options;
75
75
  const url = new URL(request.url);
76
76
  const pageMatch = routeMgr.match(url.pathname);
@@ -79,14 +79,14 @@ export const createHandler = (manifest) => {
79
79
  }
80
80
  const entryName = pageMatch.spec.urlPath;
81
81
  const page = pages[entryName];
82
- const logger = new Logger({
82
+ const logger = createLogger({
83
83
  level: "warn"
84
84
  });
85
85
  const metrics = defaultMetrics;
86
86
  const reporter = defaultReporter;
87
87
  const hookContext = createWorkerHookContext(request.url, logger, metrics, reporter);
88
88
  const afterMatchHookContext = createAfterMatchContext(hookContext, entryName);
89
- (_page = page) === null || _page === void 0 ? void 0 : (_page_serverHooks = _page.serverHooks) === null || _page_serverHooks === void 0 ? void 0 : (_page_serverHooks_afterMatch = _page_serverHooks.afterMatch) === null || _page_serverHooks_afterMatch === void 0 ? void 0 : _page_serverHooks_afterMatch.call(_page_serverHooks, afterMatchHookContext, () => void 0);
89
+ page === null || page === void 0 ? void 0 : (_page_serverHooks = page.serverHooks) === null || _page_serverHooks === void 0 ? void 0 : (_page_serverHooks_afterMatch = _page_serverHooks.afterMatch) === null || _page_serverHooks_afterMatch === void 0 ? void 0 : _page_serverHooks_afterMatch.call(_page_serverHooks, afterMatchHookContext, () => void 0);
90
90
  if (checkIsSent(hookContext)) {
91
91
  return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
92
92
  }
@@ -122,14 +122,13 @@ export const createHandler = (manifest) => {
122
122
  logger,
123
123
  reporter: defaultReporter,
124
124
  metrics,
125
- // FIXME: pass correctly req & res
126
125
  req: request,
126
+ res: responseLike,
127
127
  serverTiming: {
128
128
  addServeTiming() {
129
129
  return this;
130
130
  }
131
- },
132
- res: responseLike
131
+ }
133
132
  };
134
133
  const body = await page.serverRender(serverRenderContext);
135
134
  const afterRenderHookContext = createAfterRenderContext(hookContext, body);
@@ -210,3 +209,7 @@ function applyMiddlewares(ctx, middleware) {
210
209
  });
211
210
  }
212
211
  }
212
+ export {
213
+ ReturnResponse,
214
+ createHandler
215
+ };
@@ -2,7 +2,7 @@
2
2
  /// <reference types="node" />
3
3
  /// <reference types="node" />
4
4
  /// <reference types="node/http" />
5
- /// <reference types=".dts-temp/bmyOg3OGCKlzOU69708oM/src/type" />
5
+ /// <reference types=".dts-temp/7Y-G4jfBIn4nRmqrSkuxy/src/type" />
6
6
  import { IncomingMessage, ServerResponse } from 'http';
7
7
  import qs from 'querystring';
8
8
  import type { ModernServerContext as ModernServerContextInterface, Reporter as ModernServerReporter, ServerTiming as ModernServerTiming } from '@modern-js/types';
@@ -12,6 +12,7 @@ export type ContextOptions = {
12
12
  };
13
13
  type ResponseBody = string | Buffer;
14
14
  export declare class ModernServerContext implements ModernServerContextInterface {
15
+ #private;
15
16
  /**
16
17
  * http request
17
18
  */
@@ -15,6 +15,7 @@ declare module 'http' {
15
15
  }
16
16
  interface OutgoingMessage {
17
17
  set: (key: string, value: any) => this;
18
+ modernFlushedHeaders?: boolean;
18
19
  }
19
20
  }
20
21
  export type ModernServerOptions = {
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node/http" />
3
- /// <reference types=".dts-temp/bmyOg3OGCKlzOU69708oM/src/type" />
3
+ /// <reference types=".dts-temp/7Y-G4jfBIn4nRmqrSkuxy/src/type" />
4
4
  import { IncomingMessage } from 'http';
5
5
  import type { OutputNormalizedConfig, HtmlNormalizedConfig } from '@modern-js/server-core';
6
6
  export declare const debug: any;
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.35.0",
18
+ "version": "2.36.0",
19
19
  "jsnext:source": "./src/index.ts",
20
20
  "types": "./dist/types/index.d.ts",
21
21
  "main": "./dist/cjs/index.js",
@@ -74,9 +74,10 @@
74
74
  "node-html-parser": "^6.1.5",
75
75
  "path-to-regexp": "^6.2.0",
76
76
  "serve-static": "^1.14.1",
77
- "@modern-js/plugin": "2.35.0",
78
- "@modern-js/utils": "2.35.0",
79
- "@modern-js/server-core": "2.35.0"
77
+ "@modern-js/plugin": "2.36.0",
78
+ "@modern-js/server-core": "2.36.0",
79
+ "@modern-js/utils": "2.36.0",
80
+ "@modern-js/runtime-utils": "2.36.0"
80
81
  },
81
82
  "devDependencies": {
82
83
  "@types/cookie": "^0.4.1",
@@ -95,10 +96,10 @@
95
96
  "portfinder": "^1.0.28",
96
97
  "typescript": "^5",
97
98
  "ws": "^8.13.0",
98
- "@modern-js/server-core": "2.35.0",
99
- "@modern-js/types": "2.35.0",
100
- "@scripts/build": "2.35.0",
101
- "@scripts/jest-config": "2.35.0"
99
+ "@modern-js/server-core": "2.36.0",
100
+ "@modern-js/types": "2.36.0",
101
+ "@scripts/jest-config": "2.36.0",
102
+ "@scripts/build": "2.36.0"
102
103
  },
103
104
  "sideEffects": false,
104
105
  "publishConfig": {
@@ -1,123 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for (var name in all)
7
- Object.defineProperty(target, name, {
8
- enumerable: true,
9
- get: all[name]
10
- });
11
- }
12
- _export(exports, {
13
- Logger: function() {
14
- return Logger;
15
- },
16
- logger: function() {
17
- return logger;
18
- }
19
- });
20
- const _define_property = require("@swc/helpers/_/_define_property");
21
- const LOG_LEVEL = {
22
- error: 0,
23
- warn: 1,
24
- info: 2,
25
- debug: 3,
26
- log: 4
27
- };
28
- const LOG_TYPES = {
29
- error: {
30
- color: "red",
31
- label: "error",
32
- level: "error"
33
- },
34
- info: {
35
- color: "cyan",
36
- label: "info",
37
- level: "info"
38
- },
39
- success: {
40
- color: "green",
41
- label: "Success",
42
- level: "info"
43
- },
44
- warn: {
45
- color: "yellow",
46
- label: "warn",
47
- level: "warn"
48
- },
49
- debug: {
50
- color: "red",
51
- label: "debug",
52
- level: "debug"
53
- },
54
- log: {
55
- level: "log"
56
- }
57
- };
58
- const DEFAULT_CONFIG = {
59
- displayLabel: true,
60
- uppercaseLabel: false
61
- };
62
- class Logger {
63
- _log(type, message, ...args) {
64
- if (message === void 0 || message === null) {
65
- console.log();
66
- return;
67
- }
68
- if (LOG_LEVEL[type] > LOG_LEVEL[this.level]) {
69
- return;
70
- }
71
- let label = "";
72
- let text = "";
73
- const logType = this.types[type];
74
- if (this.config.displayLabel && logType.label) {
75
- label = this.config.uppercaseLabel ? logType.label.toUpperCase() : logType.label;
76
- label = label.padEnd(this.longestLabel.length);
77
- }
78
- if (message instanceof Error) {
79
- if (message.stack) {
80
- const [name, ...rest] = message.stack.split("\n");
81
- text = `${name}
82
- ${rest.join("\n")}`;
83
- } else {
84
- text = message.message;
85
- }
86
- } else {
87
- text = `${message}`;
88
- }
89
- const log = label.length > 0 ? `${label} ${text}` : text;
90
- console.log(log, ...args);
91
- }
92
- getLongestLabel() {
93
- let longestLabel = "";
94
- Object.keys(this.types).forEach((type) => {
95
- const { label = "" } = this.types[type];
96
- if (label.length > longestLabel.length) {
97
- longestLabel = label;
98
- }
99
- });
100
- return longestLabel;
101
- }
102
- constructor(options = {}) {
103
- _define_property._(this, "level", void 0);
104
- _define_property._(this, "config", void 0);
105
- _define_property._(this, "types", void 0);
106
- _define_property._(this, "longestLabel", void 0);
107
- this.level = options.level || LOG_TYPES.log.level;
108
- this.config = {
109
- ...DEFAULT_CONFIG,
110
- ...options.config || {}
111
- };
112
- this.types = {
113
- ...LOG_TYPES,
114
- ...options.types || {}
115
- };
116
- this.longestLabel = this.getLongestLabel();
117
- Object.keys(this.types).forEach((type) => {
118
- this[type] = this._log.bind(this, type);
119
- });
120
- }
121
- }
122
- const logger = new Logger();
123
- logger.Logger = Logger;
@@ -1,125 +0,0 @@
1
- import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
2
- import { _ as _create_class } from "@swc/helpers/_/_create_class";
3
- import { _ as _define_property } from "@swc/helpers/_/_define_property";
4
- import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
5
- import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
6
- import { _ as _to_array } from "@swc/helpers/_/_to_array";
7
- import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
8
- var LOG_LEVEL = {
9
- error: 0,
10
- warn: 1,
11
- info: 2,
12
- debug: 3,
13
- log: 4
14
- };
15
- var LOG_TYPES = {
16
- error: {
17
- color: "red",
18
- label: "error",
19
- level: "error"
20
- },
21
- info: {
22
- color: "cyan",
23
- label: "info",
24
- level: "info"
25
- },
26
- success: {
27
- color: "green",
28
- label: "Success",
29
- level: "info"
30
- },
31
- warn: {
32
- color: "yellow",
33
- label: "warn",
34
- level: "warn"
35
- },
36
- debug: {
37
- color: "red",
38
- label: "debug",
39
- level: "debug"
40
- },
41
- log: {
42
- level: "log"
43
- }
44
- };
45
- var DEFAULT_CONFIG = {
46
- displayLabel: true,
47
- uppercaseLabel: false
48
- };
49
- var Logger = /* @__PURE__ */ function() {
50
- "use strict";
51
- function Logger2() {
52
- var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
53
- var _this = this;
54
- _class_call_check(this, Logger2);
55
- _define_property(this, "level", void 0);
56
- _define_property(this, "config", void 0);
57
- _define_property(this, "types", void 0);
58
- _define_property(this, "longestLabel", void 0);
59
- this.level = options.level || LOG_TYPES.log.level;
60
- this.config = _object_spread({}, DEFAULT_CONFIG, options.config || {});
61
- this.types = _object_spread({}, LOG_TYPES, options.types || {});
62
- this.longestLabel = this.getLongestLabel();
63
- Object.keys(this.types).forEach(function(type) {
64
- _this[type] = _this._log.bind(_this, type);
65
- });
66
- }
67
- _create_class(Logger2, [
68
- {
69
- key: "_log",
70
- value: function _log(type, message) {
71
- for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
72
- args[_key - 2] = arguments[_key];
73
- }
74
- var _console;
75
- if (message === void 0 || message === null) {
76
- console.log();
77
- return;
78
- }
79
- if (LOG_LEVEL[type] > LOG_LEVEL[this.level]) {
80
- return;
81
- }
82
- var label = "";
83
- var text = "";
84
- var logType = this.types[type];
85
- if (this.config.displayLabel && logType.label) {
86
- label = this.config.uppercaseLabel ? logType.label.toUpperCase() : logType.label;
87
- label = label.padEnd(this.longestLabel.length);
88
- }
89
- if (_instanceof(message, Error)) {
90
- if (message.stack) {
91
- var _message_stack_split = _to_array(message.stack.split("\n")), name = _message_stack_split[0], rest = _message_stack_split.slice(1);
92
- text = "".concat(name, "\n").concat(rest.join("\n"));
93
- } else {
94
- text = message.message;
95
- }
96
- } else {
97
- text = "".concat(message);
98
- }
99
- var log = label.length > 0 ? "".concat(label, " ").concat(text) : text;
100
- (_console = console).log.apply(_console, [
101
- log
102
- ].concat(_to_consumable_array(args)));
103
- }
104
- },
105
- {
106
- key: "getLongestLabel",
107
- value: function getLongestLabel() {
108
- var _this = this;
109
- var longestLabel = "";
110
- Object.keys(this.types).forEach(function(type) {
111
- var _this_types_type = _this.types[type], _this_types_type_label = _this_types_type.label, label = _this_types_type_label === void 0 ? "" : _this_types_type_label;
112
- if (label.length > longestLabel.length) {
113
- longestLabel = label;
114
- }
115
- });
116
- return longestLabel;
117
- }
118
- }
119
- ]);
120
- return Logger2;
121
- }();
122
- var logger = new Logger();
123
- logger.Logger = Logger;
124
- export { Logger };
125
- export { logger };
@@ -1,106 +0,0 @@
1
- import { _ as _define_property } from "@swc/helpers/_/_define_property";
2
- const LOG_LEVEL = {
3
- error: 0,
4
- warn: 1,
5
- info: 2,
6
- debug: 3,
7
- log: 4
8
- };
9
- const LOG_TYPES = {
10
- error: {
11
- color: "red",
12
- label: "error",
13
- level: "error"
14
- },
15
- info: {
16
- color: "cyan",
17
- label: "info",
18
- level: "info"
19
- },
20
- success: {
21
- color: "green",
22
- label: "Success",
23
- level: "info"
24
- },
25
- warn: {
26
- color: "yellow",
27
- label: "warn",
28
- level: "warn"
29
- },
30
- debug: {
31
- color: "red",
32
- label: "debug",
33
- level: "debug"
34
- },
35
- log: {
36
- level: "log"
37
- }
38
- };
39
- const DEFAULT_CONFIG = {
40
- displayLabel: true,
41
- uppercaseLabel: false
42
- };
43
- class Logger {
44
- _log(type, message, ...args) {
45
- if (message === void 0 || message === null) {
46
- console.log();
47
- return;
48
- }
49
- if (LOG_LEVEL[type] > LOG_LEVEL[this.level]) {
50
- return;
51
- }
52
- let label = "";
53
- let text = "";
54
- const logType = this.types[type];
55
- if (this.config.displayLabel && logType.label) {
56
- label = this.config.uppercaseLabel ? logType.label.toUpperCase() : logType.label;
57
- label = label.padEnd(this.longestLabel.length);
58
- }
59
- if (message instanceof Error) {
60
- if (message.stack) {
61
- const [name, ...rest] = message.stack.split("\n");
62
- text = `${name}
63
- ${rest.join("\n")}`;
64
- } else {
65
- text = message.message;
66
- }
67
- } else {
68
- text = `${message}`;
69
- }
70
- const log = label.length > 0 ? `${label} ${text}` : text;
71
- console.log(log, ...args);
72
- }
73
- getLongestLabel() {
74
- let longestLabel = "";
75
- Object.keys(this.types).forEach((type) => {
76
- const { label = "" } = this.types[type];
77
- if (label.length > longestLabel.length) {
78
- longestLabel = label;
79
- }
80
- });
81
- return longestLabel;
82
- }
83
- constructor(options = {}) {
84
- _define_property(this, "level", void 0);
85
- _define_property(this, "config", void 0);
86
- _define_property(this, "types", void 0);
87
- _define_property(this, "longestLabel", void 0);
88
- this.level = options.level || LOG_TYPES.log.level;
89
- this.config = {
90
- ...DEFAULT_CONFIG,
91
- ...options.config || {}
92
- };
93
- this.types = {
94
- ...LOG_TYPES,
95
- ...options.types || {}
96
- };
97
- this.longestLabel = this.getLongestLabel();
98
- Object.keys(this.types).forEach((type) => {
99
- this[type] = this._log.bind(this, type);
100
- });
101
- }
102
- }
103
- const logger = new Logger();
104
- logger.Logger = Logger;
105
- export { Logger };
106
- export { logger };
@@ -1,61 +0,0 @@
1
- type LogLevel = 'debug' | 'info' | 'warn' | 'error';
2
- type LogMsg = number | string | Error | null;
3
- interface LoggerConfiguration {
4
- label?: string;
5
- level?: LogLevel;
6
- }
7
- interface InstanceConfiguration {
8
- displayLabel?: boolean;
9
- uppercaseLabel?: boolean;
10
- }
11
- interface ConstructorOptions {
12
- config?: InstanceConfiguration;
13
- level?: string;
14
- types?: Record<string, LoggerConfiguration>;
15
- }
16
- type LoggerFunction = (message?: LogMsg, ...args: any[]) => void;
17
- declare const LOG_TYPES: {
18
- error: {
19
- color: string;
20
- label: string;
21
- level: string;
22
- };
23
- info: {
24
- color: string;
25
- label: string;
26
- level: string;
27
- };
28
- success: {
29
- color: string;
30
- label: string;
31
- level: string;
32
- };
33
- warn: {
34
- color: string;
35
- label: string;
36
- level: string;
37
- };
38
- debug: {
39
- color: string;
40
- label: string;
41
- level: string;
42
- };
43
- log: {
44
- level: string;
45
- };
46
- };
47
- declare class Logger {
48
- private readonly level;
49
- private readonly config;
50
- private readonly types;
51
- private readonly longestLabel;
52
- [key: string]: any;
53
- constructor(options?: ConstructorOptions);
54
- private _log;
55
- private getLongestLabel;
56
- }
57
- type LoggerInterface = { [key in keyof typeof LOG_TYPES]: LoggerFunction };
58
- declare const logger: Logger & LoggerInterface;
59
- export { Logger };
60
- export { logger };
61
- export type { LoggerInterface };