@eggjs/core 6.5.0 → 6.6.0-beta.3

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 +1 -5
  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 +34 -72
  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 -246
  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 -315
  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 -1558
  38. package/dist/commonjs/loader/file_loader.d.ts +0 -100
  39. package/dist/commonjs/loader/file_loader.js +0 -260
  40. package/dist/commonjs/package.json +0 -3
  41. package/dist/commonjs/singleton.d.ts +0 -29
  42. package/dist/commonjs/singleton.js +0 -124
  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 -64
  49. package/dist/commonjs/utils/timing.d.ts +0 -21
  50. package/dist/commonjs/utils/timing.js +0 -106
  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 -246
  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 -308
  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 -1551
  63. package/dist/esm/loader/file_loader.d.ts +0 -100
  64. package/dist/esm/loader/file_loader.js +0 -253
  65. package/dist/esm/package.json +0 -3
  66. package/dist/esm/singleton.d.ts +0 -29
  67. package/dist/esm/singleton.js +0 -117
  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 -61
  74. package/dist/esm/utils/timing.d.ts +0 -21
  75. package/dist/esm/utils/timing.js +0 -99
  76. package/dist/package.json +0 -4
  77. package/src/base_context_class.ts +0 -39
  78. package/src/egg.ts +0 -617
  79. package/src/index.ts +0 -14
  80. package/src/lifecycle.ts +0 -438
  81. package/src/loader/context_loader.ts +0 -123
  82. package/src/loader/egg_loader.ts +0 -1984
  83. package/src/loader/file_loader.ts +0 -349
  84. package/src/singleton.ts +0 -187
  85. package/src/utils/index.ts +0 -132
  86. package/src/utils/sequencify.ts +0 -105
  87. package/src/utils/timing.ts +0 -128
@@ -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 instanceof Error)) {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4QyxPQUFPLGFBQWEsTUFBTSxhQUFhLENBQUM7QUFFeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0QsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFJNUMsbURBQW1EO0FBQ25ELE1BQU0sTUFBTSxHQUNWLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDO0lBQzVELENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVztJQUNwQixDQUFDLENBQUMsMEJBQTBCO1FBQzFCLGFBQWEsQ0FBQztBQUVwQixNQUFNLFVBQVUsR0FBSSxNQUFjLENBQUMsV0FBVyxDQUFDO0FBQy9DLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDeEUsS0FBSyxDQUFDLHVCQUF1QixFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBRS9DLFNBQVMsa0JBQWtCLENBQUMsUUFBa0IsRUFBRSxVQUFtQjtJQUNqRSxVQUFVLEdBQUcsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDdkQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztJQUNwQyxN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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 declare function sequencify(tasks: Record<string, SequencifyTask>, names: string[]): {
10
- sequence: string[];
11
- missingTasks: string[];
12
- recursiveDependencies: string[];
13
- };
@@ -1,61 +0,0 @@
1
- import { debuglog } from 'node:util';
2
- const debug = debuglog('@eggjs/core/utils/sequencify');
3
- function sequence(
4
- // oxlint-disable-next-line max-params
5
- tasks, names, result, missing, recursive, nest, optional, parent) {
6
- for (const name of names) {
7
- if (result.requires[name]) {
8
- continue;
9
- }
10
- const node = tasks[name];
11
- if (!node) {
12
- if (optional === true) {
13
- continue;
14
- }
15
- missing.push(name);
16
- }
17
- else if (nest.includes(name)) {
18
- nest.push(name);
19
- recursive.push(...nest.slice(0));
20
- nest.pop();
21
- }
22
- else if (node.dependencies.length > 0 ||
23
- node.optionalDependencies.length > 0) {
24
- nest.push(name);
25
- if (node.dependencies.length > 0) {
26
- sequence(tasks, node.dependencies, result, missing, recursive, nest, optional, name);
27
- }
28
- if (node.optionalDependencies.length > 0) {
29
- sequence(tasks, node.optionalDependencies, result, missing, recursive, nest, true, name);
30
- }
31
- nest.pop();
32
- }
33
- if (!optional) {
34
- result.requires[name] = true;
35
- debug('task: %s is enabled by %s', name, parent);
36
- }
37
- if (!result.sequence.includes(name)) {
38
- result.sequence.push(name);
39
- }
40
- }
41
- }
42
- // tasks: object with keys as task names
43
- // names: array of task names
44
- export function sequencify(tasks, names) {
45
- const result = {
46
- sequence: [],
47
- requires: {},
48
- }; // the final sequence
49
- const missing = []; // missing tasks
50
- const recursive = []; // recursive task dependencies
51
- sequence(tasks, names, result, missing, recursive, [], false, 'app');
52
- if (missing.length > 0 || recursive.length > 0) {
53
- result.sequence = []; // results are incomplete at best, completely wrong at worst, remove them to avoid confusion
54
- }
55
- return {
56
- sequence: result.sequence.filter(item => result.requires[item]),
57
- missingTasks: missing,
58
- recursiveDependencies: recursive,
59
- };
60
- }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2lmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9zZXF1ZW5jaWZ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLDhCQUE4QixDQUFDLENBQUM7QUFZdkQsU0FBUyxRQUFRO0FBQ2Ysc0NBQXNDO0FBQ3RDLEtBQXFDLEVBQ3JDLEtBQWUsRUFDZixNQUF3QixFQUN4QixPQUFpQixFQUNqQixTQUFtQixFQUNuQixJQUFjLEVBQ2QsUUFBaUIsRUFDakIsTUFBYztJQUVkLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUIsU0FBUztRQUNYLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLFNBQVM7WUFDWCxDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQixTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNiLENBQUM7YUFBTSxJQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDNUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3BDLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLFFBQVEsQ0FDTixLQUFLLEVBQ0wsSUFBSSxDQUFDLFlBQVksRUFDakIsTUFBTSxFQUNOLE9BQU8sRUFDUCxTQUFTLEVBQ1QsSUFBSSxFQUNKLFFBQVEsRUFDUixJQUFJLENBQ0wsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLFFBQVEsQ0FDTixLQUFLLEVBQ0wsSUFBSSxDQUFDLG9CQUFvQixFQUN6QixNQUFNLEVBQ04sT0FBTyxFQUNQLFNBQVMsRUFDVCxJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksQ0FDTCxDQUFDO1lBQ0osQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNiLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztZQUM3QixLQUFLLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCx3Q0FBd0M7QUFDeEMsNkJBQTZCO0FBQzdCLE1BQU0sVUFBVSxVQUFVLENBQ3hCLEtBQXFDLEVBQ3JDLEtBQWU7SUFFZixNQUFNLE1BQU0sR0FBcUI7UUFDL0IsUUFBUSxFQUFFLEVBQUU7UUFDWixRQUFRLEVBQUUsRUFBRTtLQUNiLENBQUMsQ0FBQyxxQkFBcUI7SUFDeEIsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDLENBQUMsZ0JBQWdCO0lBQzlDLE1BQU0sU0FBUyxHQUFhLEVBQUUsQ0FBQyxDQUFDLDhCQUE4QjtJQUU5RCxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRXJFLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxNQUFNLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFDLDRGQUE0RjtJQUNwSCxDQUFDO0lBRUQsT0FBTztRQUNMLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0QsWUFBWSxFQUFFLE9BQU87UUFDckIscUJBQXFCLEVBQUUsU0FBUztLQUNqQyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -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,99 +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.#map = new Map();
13
- this.#list = [];
14
- this.init();
15
- }
16
- init() {
17
- // process start time
18
- this.start('Process Start', Date.now() - Math.floor(process.uptime() * 1000));
19
- this.end('Process Start');
20
- if ('scriptStartTime' in process &&
21
- 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) {
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
- const item = this.#map.get(name);
52
- assert(item, `should run timing.start('${name}') first`);
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
74
- ? item.duration
75
- : timelineEnd - item.start;
76
- const offset = item.start - this.#startTime;
77
- const status = `${duration}ms${isEnd ? '' : ' NOT_END'}`;
78
- const timespan = Math.floor(Number((offset * times).toFixed(6)));
79
- let timeline = Math.floor(Number((duration * times).toFixed(6)));
80
- timeline = timeline > 0 ? timeline : 1; // make sure there is at least one unit
81
- const message = `#${item.index} ${item.name}`;
82
- return (' '.repeat(timespan) + '▇'.repeat(timeline) + ` [${status}] - ${message}`);
83
- }
84
- toString(prefix = 'egg start timeline:', width = 50) {
85
- const timelineEnd = Date.now();
86
- const timelineDuration = timelineEnd - this.#startTime;
87
- let times = 1;
88
- if (timelineDuration > width) {
89
- times = width / timelineDuration;
90
- }
91
- // follow https://github.com/node-modules/time-profile/blob/master/lib/profiler.js#L88
92
- return (prefix +
93
- EOL +
94
- this.#list
95
- .map(item => this.itemToString(timelineEnd, item, times))
96
- .join(EOL));
97
- }
98
- }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3RpbWluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBRWpDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBV25ELE1BQU0sT0FBTyxNQUFNO0lBQ2pCLE9BQU8sQ0FBVTtJQUNqQixVQUFVLENBQVM7SUFDbkIsSUFBSSxDQUEwQjtJQUM5QixLQUFLLENBQWU7SUFDcEI7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUk7UUFDRixxQkFBcUI7UUFDckIsSUFBSSxDQUFDLEtBQUssQ0FDUixlQUFlLEVBQ2YsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUNqRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUUxQixJQUNFLGlCQUFpQixJQUFJLE9BQU87WUFDNUIsT0FBTyxPQUFPLENBQUMsZUFBZSxLQUFLLFFBQVEsRUFDM0MsQ0FBQztZQUNELCtCQUErQjtZQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FB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
package/dist/package.json DELETED
@@ -1,4 +0,0 @@
1
- {
2
- "name": "@eggjs/core",
3
- "version": "6.5.0"
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
- }