@eggjs/core 6.5.0 → 6.6.0-beta.10

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 +39 -75
  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,105 +0,0 @@
1
- import { debuglog } from 'node:util';
2
-
3
- const debug = debuglog('@eggjs/core/utils/sequencify');
4
-
5
- export interface SequencifyResult {
6
- sequence: string[];
7
- requires: Record<string, true>;
8
- }
9
-
10
- export interface SequencifyTask {
11
- dependencies: string[];
12
- optionalDependencies: string[];
13
- }
14
-
15
- function sequence(
16
- // oxlint-disable-next-line max-params
17
- tasks: Record<string, SequencifyTask>,
18
- names: string[],
19
- result: SequencifyResult,
20
- missing: string[],
21
- recursive: string[],
22
- nest: string[],
23
- optional: boolean,
24
- parent: string
25
- ) {
26
- for (const name of names) {
27
- if (result.requires[name]) {
28
- continue;
29
- }
30
- const node = tasks[name];
31
- if (!node) {
32
- if (optional === true) {
33
- continue;
34
- }
35
- missing.push(name);
36
- } else if (nest.includes(name)) {
37
- nest.push(name);
38
- recursive.push(...nest.slice(0));
39
- nest.pop();
40
- } else if (
41
- node.dependencies.length > 0 ||
42
- node.optionalDependencies.length > 0
43
- ) {
44
- nest.push(name);
45
- if (node.dependencies.length > 0) {
46
- sequence(
47
- tasks,
48
- node.dependencies,
49
- result,
50
- missing,
51
- recursive,
52
- nest,
53
- optional,
54
- name
55
- );
56
- }
57
- if (node.optionalDependencies.length > 0) {
58
- sequence(
59
- tasks,
60
- node.optionalDependencies,
61
- result,
62
- missing,
63
- recursive,
64
- nest,
65
- true,
66
- name
67
- );
68
- }
69
- nest.pop();
70
- }
71
- if (!optional) {
72
- result.requires[name] = true;
73
- debug('task: %s is enabled by %s', name, parent);
74
- }
75
- if (!result.sequence.includes(name)) {
76
- result.sequence.push(name);
77
- }
78
- }
79
- }
80
-
81
- // tasks: object with keys as task names
82
- // names: array of task names
83
- export function sequencify(
84
- tasks: Record<string, SequencifyTask>,
85
- names: string[]
86
- ) {
87
- const result: SequencifyResult = {
88
- sequence: [],
89
- requires: {},
90
- }; // the final sequence
91
- const missing: string[] = []; // missing tasks
92
- const recursive: string[] = []; // recursive task dependencies
93
-
94
- sequence(tasks, names, result, missing, recursive, [], false, 'app');
95
-
96
- if (missing.length > 0 || recursive.length > 0) {
97
- result.sequence = []; // results are incomplete at best, completely wrong at worst, remove them to avoid confusion
98
- }
99
-
100
- return {
101
- sequence: result.sequence.filter(item => result.requires[item]),
102
- missingTasks: missing,
103
- recursiveDependencies: recursive,
104
- };
105
- }
@@ -1,128 +0,0 @@
1
- import { EOL } from 'node:os';
2
- import { debuglog } from 'node:util';
3
- import assert from 'node:assert';
4
-
5
- const debug = debuglog('@eggjs/core/utils/timing');
6
-
7
- export interface TimingItem {
8
- name: string;
9
- start: number;
10
- end?: number;
11
- duration?: number;
12
- pid: number;
13
- index: number;
14
- }
15
-
16
- export class Timing {
17
- #enable: boolean;
18
- #startTime: number;
19
- #map: Map<string, TimingItem>;
20
- #list: TimingItem[];
21
- constructor() {
22
- this.#enable = true;
23
- this.#map = new Map();
24
- this.#list = [];
25
- this.init();
26
- }
27
-
28
- init() {
29
- // process start time
30
- this.start(
31
- 'Process Start',
32
- Date.now() - Math.floor(process.uptime() * 1000)
33
- );
34
- this.end('Process Start');
35
-
36
- if (
37
- 'scriptStartTime' in process &&
38
- typeof process.scriptStartTime === 'number'
39
- ) {
40
- // js script start execute time
41
- this.start('Script Start', process.scriptStartTime);
42
- this.end('Script Start');
43
- }
44
- }
45
-
46
- start(name?: string, start?: number) {
47
- if (!name || !this.#enable) return;
48
-
49
- if (this.#map.has(name)) {
50
- this.end(name);
51
- }
52
-
53
- start = start || Date.now();
54
- if (!this.#startTime) {
55
- this.#startTime = start;
56
- }
57
- const item: TimingItem = {
58
- name,
59
- start,
60
- pid: process.pid,
61
- index: this.#list.length,
62
- };
63
- this.#map.set(name, item);
64
- this.#list.push(item);
65
- debug('start %j', item);
66
- return item;
67
- }
68
-
69
- end(name?: string) {
70
- if (!name || !this.#enable) return;
71
- const item = this.#map.get(name);
72
- assert(item, `should run timing.start('${name}') first`);
73
- item.end = Date.now();
74
- item.duration = item.end - item.start;
75
- debug('end %j', item);
76
- return item;
77
- }
78
-
79
- enable() {
80
- this.#enable = true;
81
- }
82
-
83
- disable() {
84
- this.#enable = false;
85
- }
86
-
87
- clear() {
88
- this.#map.clear();
89
- this.#list = [];
90
- }
91
-
92
- toJSON() {
93
- return this.#list;
94
- }
95
-
96
- itemToString(timelineEnd: number, item: TimingItem, times: number) {
97
- const isEnd = typeof item.duration === 'number';
98
- const duration = isEnd
99
- ? (item.duration as number)
100
- : timelineEnd - item.start;
101
- const offset = item.start - this.#startTime;
102
- const status = `${duration}ms${isEnd ? '' : ' NOT_END'}`;
103
- const timespan = Math.floor(Number((offset * times).toFixed(6)));
104
- let timeline = Math.floor(Number((duration * times).toFixed(6)));
105
- timeline = timeline > 0 ? timeline : 1; // make sure there is at least one unit
106
- const message = `#${item.index} ${item.name}`;
107
- return (
108
- ' '.repeat(timespan) + '▇'.repeat(timeline) + ` [${status}] - ${message}`
109
- );
110
- }
111
-
112
- toString(prefix = 'egg start timeline:', width = 50) {
113
- const timelineEnd = Date.now();
114
- const timelineDuration = timelineEnd - this.#startTime;
115
- let times = 1;
116
- if (timelineDuration > width) {
117
- times = width / timelineDuration;
118
- }
119
- // follow https://github.com/node-modules/time-profile/blob/master/lib/profiler.js#L88
120
- return (
121
- prefix +
122
- EOL +
123
- this.#list
124
- .map(item => this.itemToString(timelineEnd, item, times))
125
- .join(EOL)
126
- );
127
- }
128
- }