@eggjs/core 6.4.1 → 6.6.0-beta.2

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 (87) hide show
  1. package/README.md +23 -27
  2. package/dist/base_context_class.d.ts +21 -0
  3. package/dist/base_context_class.js +40 -0
  4. package/dist/egg.d.ts +248 -0
  5. package/dist/egg.js +358 -0
  6. package/dist/index.d.ts +12 -0
  7. package/dist/index.js +12 -0
  8. package/dist/lifecycle.d.ts +84 -0
  9. package/dist/lifecycle.js +280 -0
  10. package/dist/loader/context_loader.d.ts +39 -0
  11. package/dist/loader/context_loader.js +79 -0
  12. package/dist/loader/egg_loader.d.ts +374 -0
  13. package/dist/loader/egg_loader.js +1184 -0
  14. package/dist/loader/file_loader.d.ts +105 -0
  15. package/dist/loader/file_loader.js +198 -0
  16. package/dist/singleton.d.ts +33 -0
  17. package/dist/singleton.js +107 -0
  18. package/{src/types.ts → dist/types.d.ts} +7 -7
  19. package/dist/utils/index.d.ts +19 -0
  20. package/dist/utils/index.js +103 -0
  21. package/dist/utils/sequencify.d.ts +16 -0
  22. package/dist/utils/sequencify.js +46 -0
  23. package/dist/utils/timing.d.ts +24 -0
  24. package/dist/utils/timing.js +85 -0
  25. package/package.json +35 -63
  26. package/dist/commonjs/base_context_class.d.ts +0 -16
  27. package/dist/commonjs/base_context_class.js +0 -41
  28. package/dist/commonjs/egg.d.ts +0 -247
  29. package/dist/commonjs/egg.js +0 -401
  30. package/dist/commonjs/index.d.ts +0 -12
  31. package/dist/commonjs/index.js +0 -32
  32. package/dist/commonjs/lifecycle.d.ts +0 -78
  33. package/dist/commonjs/lifecycle.js +0 -312
  34. package/dist/commonjs/loader/context_loader.d.ts +0 -35
  35. package/dist/commonjs/loader/context_loader.js +0 -110
  36. package/dist/commonjs/loader/egg_loader.d.ts +0 -369
  37. package/dist/commonjs/loader/egg_loader.js +0 -1543
  38. package/dist/commonjs/loader/file_loader.d.ts +0 -100
  39. package/dist/commonjs/loader/file_loader.js +0 -262
  40. package/dist/commonjs/package.json +0 -3
  41. package/dist/commonjs/singleton.d.ts +0 -29
  42. package/dist/commonjs/singleton.js +0 -125
  43. package/dist/commonjs/types.d.ts +0 -53
  44. package/dist/commonjs/types.js +0 -3
  45. package/dist/commonjs/utils/index.d.ts +0 -17
  46. package/dist/commonjs/utils/index.js +0 -117
  47. package/dist/commonjs/utils/sequencify.d.ts +0 -13
  48. package/dist/commonjs/utils/sequencify.js +0 -59
  49. package/dist/commonjs/utils/timing.d.ts +0 -21
  50. package/dist/commonjs/utils/timing.js +0 -100
  51. package/dist/esm/base_context_class.d.ts +0 -16
  52. package/dist/esm/base_context_class.js +0 -37
  53. package/dist/esm/egg.d.ts +0 -247
  54. package/dist/esm/egg.js +0 -388
  55. package/dist/esm/index.d.ts +0 -12
  56. package/dist/esm/index.js +0 -12
  57. package/dist/esm/lifecycle.d.ts +0 -78
  58. package/dist/esm/lifecycle.js +0 -305
  59. package/dist/esm/loader/context_loader.d.ts +0 -35
  60. package/dist/esm/loader/context_loader.js +0 -102
  61. package/dist/esm/loader/egg_loader.d.ts +0 -369
  62. package/dist/esm/loader/egg_loader.js +0 -1536
  63. package/dist/esm/loader/file_loader.d.ts +0 -100
  64. package/dist/esm/loader/file_loader.js +0 -255
  65. package/dist/esm/package.json +0 -3
  66. package/dist/esm/singleton.d.ts +0 -29
  67. package/dist/esm/singleton.js +0 -118
  68. package/dist/esm/types.d.ts +0 -53
  69. package/dist/esm/types.js +0 -2
  70. package/dist/esm/utils/index.d.ts +0 -17
  71. package/dist/esm/utils/index.js +0 -112
  72. package/dist/esm/utils/sequencify.d.ts +0 -13
  73. package/dist/esm/utils/sequencify.js +0 -56
  74. package/dist/esm/utils/timing.d.ts +0 -21
  75. package/dist/esm/utils/timing.js +0 -93
  76. package/dist/package.json +0 -4
  77. package/src/base_context_class.ts +0 -39
  78. package/src/egg.ts +0 -517
  79. package/src/index.ts +0 -14
  80. package/src/lifecycle.ts +0 -399
  81. package/src/loader/context_loader.ts +0 -121
  82. package/src/loader/egg_loader.ts +0 -1722
  83. package/src/loader/file_loader.ts +0 -308
  84. package/src/singleton.ts +0 -149
  85. package/src/utils/index.ts +0 -125
  86. package/src/utils/sequencify.ts +0 -70
  87. package/src/utils/timing.ts +0 -114
@@ -1,112 +0,0 @@
1
- import { debuglog } from 'node:util';
2
- import path from 'node:path';
3
- import fs from 'node:fs';
4
- import { stat } from 'node:fs/promises';
5
- import BuiltinModule from 'node:module';
6
- import { importResolve, importModule } from '@eggjs/utils';
7
- const debug = debuglog('@eggjs/core/utils');
8
- // Guard against poorly mocked module constructors.
9
- const Module = typeof module !== 'undefined' && module.constructor.length > 1
10
- ? module.constructor
11
- /* istanbul ignore next */
12
- : BuiltinModule;
13
- const extensions = Module._extensions;
14
- const extensionNames = Object.keys(extensions).concat(['.cjs', '.mjs']);
15
- debug('Module extensions: %j', extensionNames);
16
- function getCalleeFromStack(withLine, stackIndex) {
17
- stackIndex = stackIndex === undefined ? 2 : stackIndex;
18
- const limit = Error.stackTraceLimit;
19
- const prep = Error.prepareStackTrace;
20
- Error.prepareStackTrace = prepareObjectStackTrace;
21
- Error.stackTraceLimit = 5;
22
- // capture the stack
23
- const obj = {};
24
- Error.captureStackTrace(obj);
25
- let callSite = obj.stack[stackIndex];
26
- let fileName = '';
27
- if (callSite) {
28
- // egg-mock will create a proxy
29
- // https://github.com/eggjs/egg-mock/blob/master/lib/app.js#L174
30
- fileName = callSite.getFileName();
31
- /* istanbul ignore if */
32
- if (fileName && fileName.endsWith('egg-mock/lib/app.js')) {
33
- // TODO: add test
34
- callSite = obj.stack[stackIndex + 1];
35
- fileName = callSite.getFileName();
36
- }
37
- }
38
- Error.prepareStackTrace = prep;
39
- Error.stackTraceLimit = limit;
40
- if (!callSite || !fileName)
41
- return '<anonymous>';
42
- if (!withLine)
43
- return fileName;
44
- return `${fileName}:${callSite.getLineNumber()}:${callSite.getColumnNumber()}`;
45
- }
46
- export default {
47
- deprecated(message) {
48
- if (debug.enabled) {
49
- console.trace('[@eggjs/core/deprecated] %s', message);
50
- }
51
- else {
52
- console.log('[@eggjs/core/deprecated] %s', message);
53
- console.log('[@eggjs/core/deprecated] set NODE_DEBUG=@eggjs/core/utils can show call stack');
54
- }
55
- },
56
- extensions,
57
- extensionNames,
58
- async existsPath(filepath) {
59
- try {
60
- await stat(filepath);
61
- return true;
62
- }
63
- catch {
64
- return false;
65
- }
66
- },
67
- async loadFile(filepath) {
68
- try {
69
- // if not js module, just return content buffer
70
- const extname = path.extname(filepath);
71
- if (extname && !extensionNames.includes(extname) && extname !== '.ts') {
72
- return fs.readFileSync(filepath);
73
- }
74
- const obj = await importModule(filepath, { importDefaultOnly: true });
75
- return obj;
76
- }
77
- catch (e) {
78
- if (!e.message && typeof e !== 'string') {
79
- // ts error: test/fixtures/apps/app-ts/app/extend/context.ts(5,17): error TS2339: Property 'url' does not exist on type 'Context'
80
- console.trace(e);
81
- throw e;
82
- }
83
- const err = new Error(`[@eggjs/core] load file: ${filepath}, error: ${e.message}`);
84
- err.cause = e;
85
- debug('[loadFile] handle %s error: %s', filepath, e);
86
- throw err;
87
- }
88
- },
89
- resolvePath(filepath, options) {
90
- return importResolve(filepath, options);
91
- },
92
- methods: ['head', 'options', 'get', 'put', 'patch', 'post', 'delete'],
93
- async callFn(fn, args, ctx) {
94
- args = args || [];
95
- if (typeof fn !== 'function')
96
- return;
97
- return ctx ? fn.call(ctx, ...args) : fn(...args);
98
- },
99
- getCalleeFromStack,
100
- getResolvedFilename(filepath, baseDir) {
101
- const reg = /[/\\]/g;
102
- return filepath.replace(baseDir + path.sep, '').replace(reg, '/');
103
- },
104
- };
105
- /**
106
- * Capture call site stack from v8.
107
- * https://github.com/v8/v8/wiki/Stack-Trace-API
108
- */
109
- function prepareObjectStackTrace(_obj, stack) {
110
- return stack;
111
- }
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4QyxPQUFPLGFBQWEsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0QsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFJNUMsbURBQW1EO0FBQ25ELE1BQU0sTUFBTSxHQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDO0lBQzNFLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVztJQUNwQiwwQkFBMEI7SUFDMUIsQ0FBQyxDQUFDLGFBQWEsQ0FBQztBQUVsQixNQUFNLFVBQVUsR0FBSSxNQUFjLENBQUMsV0FBVyxDQUFDO0FBQy9DLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBRSxDQUFDLENBQUM7QUFDMUUsS0FBSyxDQUFDLHVCQUF1QixFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBRS9DLFNBQVMsa0JBQWtCLENBQUMsUUFBa0IsRUFBRSxVQUFtQjtJQUNqRSxVQUFVLEdBQUcsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDdkQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztJQUNwQyxN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
@@ -1,13 +0,0 @@
1
- export interface SequencifyResult {
2
- sequence: string[];
3
- requires: Record<string, true>;
4
- }
5
- export interface SequencifyTask {
6
- dependencies: string[];
7
- optionalDependencies: string[];
8
- }
9
- export default function sequencify(tasks: Record<string, SequencifyTask>, names: string[]): {
10
- sequence: string[];
11
- missingTasks: string[];
12
- recursiveDependencies: string[];
13
- };
@@ -1,56 +0,0 @@
1
- import { debuglog } from 'node:util';
2
- const debug = debuglog('@eggjs/core/utils/sequencify');
3
- function sequence(tasks, names, result, missing, recursive, nest, optional, parent) {
4
- names.forEach(function (name) {
5
- if (result.requires[name])
6
- return;
7
- const node = tasks[name];
8
- if (!node) {
9
- if (optional === true)
10
- return;
11
- missing.push(name);
12
- }
13
- else if (nest.includes(name)) {
14
- nest.push(name);
15
- recursive.push(...nest.slice(0));
16
- nest.pop();
17
- }
18
- else if (node.dependencies.length || node.optionalDependencies.length) {
19
- nest.push(name);
20
- if (node.dependencies.length) {
21
- sequence(tasks, node.dependencies, result, missing, recursive, nest, optional, name);
22
- }
23
- if (node.optionalDependencies.length) {
24
- sequence(tasks, node.optionalDependencies, result, missing, recursive, nest, true, name);
25
- }
26
- nest.pop();
27
- }
28
- if (!optional) {
29
- result.requires[name] = true;
30
- debug('task: %s is enabled by %s', name, parent);
31
- }
32
- if (!result.sequence.includes(name)) {
33
- result.sequence.push(name);
34
- }
35
- });
36
- }
37
- // tasks: object with keys as task names
38
- // names: array of task names
39
- export default function sequencify(tasks, names) {
40
- const result = {
41
- sequence: [],
42
- requires: {},
43
- }; // the final sequence
44
- const missing = []; // missing tasks
45
- const recursive = []; // recursive task dependencies
46
- sequence(tasks, names, result, missing, recursive, [], false, 'app');
47
- if (missing.length || recursive.length) {
48
- result.sequence = []; // results are incomplete at best, completely wrong at worst, remove them to avoid confusion
49
- }
50
- return {
51
- sequence: result.sequence.filter(item => result.requires[item]),
52
- missingTasks: missing,
53
- recursiveDependencies: recursive,
54
- };
55
- }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2lmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9zZXF1ZW5jaWZ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLDhCQUE4QixDQUFDLENBQUM7QUFZdkQsU0FBUyxRQUFRLENBQUMsS0FBcUMsRUFBRSxLQUFlLEVBQUUsTUFBd0IsRUFDaEcsT0FBaUIsRUFBRSxTQUFtQixFQUN0QyxJQUFjLEVBQUUsUUFBaUIsRUFBRSxNQUFjO0lBQ2pELEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBUyxJQUFJO1FBQ3pCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPO1FBRWxDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixJQUFJLFFBQVEsS0FBSyxJQUFJO2dCQUFFLE9BQU87WUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQixTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNiLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4RSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDN0IsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdkYsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNyQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzNGLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDYixDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDN0IsS0FBSyxDQUFDLDJCQUEyQixFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELHdDQUF3QztBQUN4Qyw2QkFBNkI7QUFDN0IsTUFBTSxDQUFDLE9BQU8sVUFBVSxVQUFVLENBQUMsS0FBcUMsRUFBRSxLQUFlO0lBQ3ZGLE1BQU0sTUFBTSxHQUFxQjtRQUMvQixRQUFRLEVBQUUsRUFBRTtRQUNaLFFBQVEsRUFBRSxFQUFFO0tBQ2IsQ0FBQyxDQUFDLHFCQUFxQjtJQUN4QixNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0I7SUFDOUMsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDLENBQUMsOEJBQThCO0lBRTlELFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFckUsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN2QyxNQUFNLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFDLDRGQUE0RjtJQUNwSCxDQUFDO0lBRUQsT0FBTztRQUNMLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0QsWUFBWSxFQUFFLE9BQU87UUFDckIscUJBQXFCLEVBQUUsU0FBUztLQUNqQyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -1,21 +0,0 @@
1
- export interface TimingItem {
2
- name: string;
3
- start: number;
4
- end?: number;
5
- duration?: number;
6
- pid: number;
7
- index: number;
8
- }
9
- export declare class Timing {
10
- #private;
11
- constructor();
12
- init(): void;
13
- start(name?: string, start?: number): TimingItem | undefined;
14
- end(name?: string): TimingItem | undefined;
15
- enable(): void;
16
- disable(): void;
17
- clear(): void;
18
- toJSON(): TimingItem[];
19
- itemToString(timelineEnd: number, item: TimingItem, times: number): string;
20
- toString(prefix?: string, width?: number): string;
21
- }
@@ -1,93 +0,0 @@
1
- import { EOL } from 'node:os';
2
- import { debuglog } from 'node:util';
3
- import assert from 'node:assert';
4
- const debug = debuglog('@eggjs/core/utils/timing');
5
- export class Timing {
6
- #enable;
7
- #startTime;
8
- #map;
9
- #list;
10
- constructor() {
11
- this.#enable = true;
12
- this.#startTime = null;
13
- this.#map = new Map();
14
- this.#list = [];
15
- this.init();
16
- }
17
- init() {
18
- // process start time
19
- this.start('Process Start', Date.now() - Math.floor(process.uptime() * 1000));
20
- this.end('Process Start');
21
- if ('scriptStartTime' in process && typeof process.scriptStartTime === 'number') {
22
- // js script start execute time
23
- this.start('Script Start', process.scriptStartTime);
24
- this.end('Script Start');
25
- }
26
- }
27
- start(name, start) {
28
- if (!name || !this.#enable)
29
- return;
30
- if (this.#map.has(name)) {
31
- this.end(name);
32
- }
33
- start = start || Date.now();
34
- if (this.#startTime === null) {
35
- this.#startTime = start;
36
- }
37
- const item = {
38
- name,
39
- start,
40
- pid: process.pid,
41
- index: this.#list.length,
42
- };
43
- this.#map.set(name, item);
44
- this.#list.push(item);
45
- debug('start %j', item);
46
- return item;
47
- }
48
- end(name) {
49
- if (!name || !this.#enable)
50
- return;
51
- assert(this.#map.has(name), `should run timing.start('${name}') first`);
52
- const item = this.#map.get(name);
53
- item.end = Date.now();
54
- item.duration = item.end - item.start;
55
- debug('end %j', item);
56
- return item;
57
- }
58
- enable() {
59
- this.#enable = true;
60
- }
61
- disable() {
62
- this.#enable = false;
63
- }
64
- clear() {
65
- this.#map.clear();
66
- this.#list = [];
67
- }
68
- toJSON() {
69
- return this.#list;
70
- }
71
- itemToString(timelineEnd, item, times) {
72
- const isEnd = typeof item.duration === 'number';
73
- const duration = isEnd ? item.duration : timelineEnd - item.start;
74
- const offset = item.start - this.#startTime;
75
- const status = `${duration}ms${isEnd ? '' : ' NOT_END'}`;
76
- const timespan = Math.floor(Number((offset * times).toFixed(6)));
77
- let timeline = Math.floor(Number((duration * times).toFixed(6)));
78
- timeline = timeline > 0 ? timeline : 1; // make sure there is at least one unit
79
- const message = `#${item.index} ${item.name}`;
80
- return ' '.repeat(timespan) + '▇'.repeat(timeline) + ` [${status}] - ${message}`;
81
- }
82
- toString(prefix = 'egg start timeline:', width = 50) {
83
- const timelineEnd = Date.now();
84
- const timelineDuration = timelineEnd - this.#startTime;
85
- let times = 1;
86
- if (timelineDuration > width) {
87
- times = width / timelineDuration;
88
- }
89
- // follow https://github.com/node-modules/time-profile/blob/master/lib/profiler.js#L88
90
- return prefix + EOL + this.#list.map(item => this.itemToString(timelineEnd, item, times)).join(EOL);
91
- }
92
- }
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3RpbWluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBRWpDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBV25ELE1BQU0sT0FBTyxNQUFNO0lBQ2pCLE9BQU8sQ0FBVTtJQUNqQixVQUFVLENBQWdCO0lBQzFCLElBQUksQ0FBMEI7SUFDOUIsS0FBSyxDQUFlO0lBQ3BCO1FBQ0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJO1FBQ0YscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFMUIsSUFBSSxpQkFBaUIsSUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLENBQUMsZUFBZSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hGLCtCQUErQjtZQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7WUFD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
package/dist/package.json DELETED
@@ -1,4 +0,0 @@
1
- {
2
- "name": "@eggjs/core",
3
- "version": "6.4.1"
4
- }
@@ -1,39 +0,0 @@
1
- import type { EggCore, Context } from './egg.js';
2
-
3
- /**
4
- * BaseContextClass is a base class that can be extended,
5
- * it's instantiated in context level,
6
- * {@link Helper}, {@link Service} is extending it.
7
- */
8
- export class BaseContextClass {
9
- ctx: Context;
10
- app: EggCore;
11
- config: Record<string, any>;
12
- service: BaseContextClass;
13
-
14
- /**
15
- * @since 1.0.0
16
- */
17
- constructor(ctx: Context) {
18
- /**
19
- * @member {Context} BaseContextClass#ctx
20
- * @since 1.0.0
21
- */
22
- this.ctx = ctx;
23
- /**
24
- * @member {Application} BaseContextClass#app
25
- * @since 1.0.0
26
- */
27
- this.app = ctx.app;
28
- /**
29
- * @member {Config} BaseContextClass#config
30
- * @since 1.0.0
31
- */
32
- this.config = ctx.app.config;
33
- /**
34
- * @member {Service} BaseContextClass#service
35
- * @since 1.0.0
36
- */
37
- this.service = ctx.service;
38
- }
39
- }