vona-module-a-startup 5.0.34 → 5.1.1
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.
- package/LICENSE +0 -0
- package/dist/.metadata/index.d.ts +1 -0
- package/dist/.metadata/index.d.ts.map +1 -0
- package/dist/.metadata/this.d.ts +1 -0
- package/dist/.metadata/this.d.ts.map +1 -0
- package/dist/bean/cacheRedis.startupDebounce.d.ts +1 -0
- package/dist/bean/cacheRedis.startupDebounce.d.ts.map +1 -0
- package/dist/bean/hmr.startup.d.ts +1 -0
- package/dist/bean/hmr.startup.d.ts.map +1 -0
- package/dist/bean/meta.redlock.d.ts +1 -0
- package/dist/bean/meta.redlock.d.ts.map +1 -0
- package/dist/config/config.d.ts +1 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -26
- package/dist/index.js.map +1 -0
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/startup.d.ts +1 -0
- package/dist/lib/startup.d.ts.map +1 -0
- package/dist/monkey.d.ts +1 -0
- package/dist/monkey.d.ts.map +1 -0
- package/dist/service/startup.d.ts +2 -1
- package/dist/service/startup.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/startup.d.ts +1 -0
- package/dist/types/startup.d.ts.map +1 -0
- package/package.json +32 -27
- package/src/.metadata/index.ts +170 -0
- package/src/.metadata/this.ts +2 -0
- package/src/bean/cacheRedis.startupDebounce.ts +11 -0
- package/src/bean/hmr.startup.ts +12 -0
- package/src/bean/meta.redlock.ts +8 -0
- package/src/config/config.ts +9 -0
- package/src/index.ts +3 -0
- package/src/lib/index.ts +1 -0
- package/src/lib/startup.ts +7 -0
- package/src/monkey.ts +15 -0
- package/src/service/startup.ts +160 -0
- package/src/types/index.ts +1 -0
- package/src/types/startup.ts +37 -0
package/LICENSE
CHANGED
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"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"}
|
package/dist/.metadata/this.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"this.d.ts","sourceRoot":"","sources":["../../src/.metadata/this.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,cAAc,CAAC;AAC1C,OAAO,EAAE,mBAAmB,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -3,3 +3,4 @@ export type TCacheRedisStartupDebounceKey = `startupDebounce:${string}`;
|
|
|
3
3
|
export type TCacheRedisStartupDebounceData = boolean;
|
|
4
4
|
export declare class CacheRedisStartupDebounce extends BeanCacheRedisBase<TCacheRedisStartupDebounceKey, TCacheRedisStartupDebounceData> {
|
|
5
5
|
}
|
|
6
|
+
//# sourceMappingURL=cacheRedis.startupDebounce.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cacheRedis.startupDebounce.d.ts","sourceRoot":"","sources":["../../src/bean/cacheRedis.startupDebounce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAc,MAAM,qBAAqB,CAAC;AAErE,MAAM,MAAM,6BAA6B,GAAG,mBAAmB,MAAM,EAAE,CAAC;AACxE,MAAM,MAAM,8BAA8B,GAAG,OAAO,CAAC;AAErD,qBAKa,yBAA0B,SAAQ,kBAAkB,CAAC,6BAA6B,EAAE,8BAA8B,CAAC;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hmr.startup.d.ts","sourceRoot":"","sources":["../../src/bean/hmr.startup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,MAAM,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,qBACa,UAAW,SAAQ,QAAS,YAAW,UAAU;IACtD,MAAM,CAAC,YAAY,EAAE,yBAAyB;CAGrD"}
|
|
@@ -3,3 +3,4 @@ export type TypeRedlockLockResource = never;
|
|
|
3
3
|
export type TypeRedlockLockIsolateResource = `startup.${string}`;
|
|
4
4
|
export declare class MetaRedlock extends BeanRedlockBase<TypeRedlockLockResource, TypeRedlockLockIsolateResource> {
|
|
5
5
|
}
|
|
6
|
+
//# sourceMappingURL=meta.redlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.redlock.d.ts","sourceRoot":"","sources":["../../src/bean/meta.redlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAC5C,MAAM,MAAM,8BAA8B,GAAG,WAAW,MAAM,EAAE,CAAC;AAEjE,qBACa,WAAY,SAAQ,eAAe,CAAC,uBAAuB,EAAE,8BAA8B,CAAC;CAAG"}
|
package/dist/config/config.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAE5C,wBAAgB,MAAM,CAAC,IAAI,EAAE,eAAe;;;;EAM3C"}
|
package/dist/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
import { BeanInfo, BeanBase, cast, BeanSimple, BeanScopeBase, createBeanDecorator } from 'vona';
|
|
2
|
-
import
|
|
2
|
+
import { __decorate } from 'tslib';
|
|
3
3
|
import { isNil } from '@cabloy/utils';
|
|
4
4
|
import fse from 'fs-extra';
|
|
5
|
+
import path from 'node:path';
|
|
5
6
|
import { Service, Scope } from 'vona-module-a-bean';
|
|
6
7
|
import { CacheRedis, BeanCacheRedisBase } from 'vona-module-a-cache';
|
|
7
8
|
import { Meta } from 'vona-module-a-meta';
|
|
8
9
|
import { BeanRedlockBase } from 'vona-module-a-redlock';
|
|
9
|
-
import { Hmr } from 'vona-module-a-
|
|
10
|
+
import { Hmr } from 'vona-module-a-hmrbase';
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
let ServiceStartup = (_dec$4 = Service(), _dec2$4 = BeanInfo({
|
|
13
|
-
module: "a-startup"
|
|
14
|
-
}), _dec$4(_class$4 = _dec2$4(_class$4 = class ServiceStartup extends BeanBase {
|
|
12
|
+
let ServiceStartup = class ServiceStartup extends BeanBase {
|
|
15
13
|
async appStart() {
|
|
16
14
|
// clear keys
|
|
17
15
|
await this._clearResources();
|
|
18
|
-
|
|
19
16
|
// run startups: not after
|
|
20
17
|
for (const startup of this._startups) {
|
|
21
18
|
const startupOptions = startup.beanOptions.options;
|
|
@@ -32,7 +29,6 @@ let ServiceStartup = (_dec$4 = Service(), _dec2$4 = BeanInfo({
|
|
|
32
29
|
await this.runStartup(startup.name, null);
|
|
33
30
|
}
|
|
34
31
|
}
|
|
35
|
-
|
|
36
32
|
// version init : force: should be false
|
|
37
33
|
if (this.app.meta.isTest || this.app.meta.isDev) {
|
|
38
34
|
await this._appReadyInstanceStartup('', true);
|
|
@@ -47,7 +43,6 @@ let ServiceStartup = (_dec$4 = Service(), _dec2$4 = BeanInfo({
|
|
|
47
43
|
await this._appReadyInstanceStartup(instanceName, wait);
|
|
48
44
|
}
|
|
49
45
|
}
|
|
50
|
-
|
|
51
46
|
// version test
|
|
52
47
|
if (this.app.meta.isTest) {
|
|
53
48
|
const instanceName = '';
|
|
@@ -140,30 +135,33 @@ let ServiceStartup = (_dec$4 = Service(), _dec2$4 = BeanInfo({
|
|
|
140
135
|
// .app/public
|
|
141
136
|
await fse.remove(path.join(this.app.config.server.publicDir, '1'));
|
|
142
137
|
}
|
|
143
|
-
}
|
|
138
|
+
};
|
|
139
|
+
ServiceStartup = __decorate([Service(), BeanInfo({
|
|
140
|
+
module: "a-startup"
|
|
141
|
+
})], ServiceStartup);
|
|
144
142
|
|
|
145
|
-
|
|
146
|
-
|
|
143
|
+
let CacheRedisStartupDebounce = class CacheRedisStartupDebounce extends BeanCacheRedisBase {};
|
|
144
|
+
CacheRedisStartupDebounce = __decorate([CacheRedis({
|
|
147
145
|
disableInstance: true,
|
|
148
146
|
disableTransactionCompensate: true,
|
|
149
147
|
client: 'worker'
|
|
150
|
-
}),
|
|
148
|
+
}), BeanInfo({
|
|
151
149
|
module: "a-startup"
|
|
152
|
-
}),
|
|
150
|
+
})], CacheRedisStartupDebounce);
|
|
153
151
|
|
|
154
|
-
|
|
155
|
-
|
|
152
|
+
let MetaRedlock = class MetaRedlock extends BeanRedlockBase {};
|
|
153
|
+
MetaRedlock = __decorate([Meta(), BeanInfo({
|
|
156
154
|
module: "a-startup"
|
|
157
|
-
}),
|
|
155
|
+
})], MetaRedlock);
|
|
158
156
|
|
|
159
|
-
|
|
160
|
-
let HmrStartup = (_dec$1 = Hmr(), _dec2$1 = BeanInfo({
|
|
161
|
-
module: "a-startup"
|
|
162
|
-
}), _dec$1(_class$1 = _dec2$1(_class$1 = class HmrStartup extends BeanBase {
|
|
157
|
+
let HmrStartup = class HmrStartup extends BeanBase {
|
|
163
158
|
async reload(_beanOptions) {
|
|
164
159
|
this.app.bean.worker.reload();
|
|
165
160
|
}
|
|
166
|
-
}
|
|
161
|
+
};
|
|
162
|
+
HmrStartup = __decorate([Hmr(), BeanInfo({
|
|
163
|
+
module: "a-startup"
|
|
164
|
+
})], HmrStartup);
|
|
167
165
|
|
|
168
166
|
function config(_app) {
|
|
169
167
|
return {
|
|
@@ -184,11 +182,10 @@ class Monkey extends BeanSimple {
|
|
|
184
182
|
}
|
|
185
183
|
}
|
|
186
184
|
|
|
187
|
-
|
|
188
|
-
|
|
185
|
+
let ScopeModuleAStartup = class ScopeModuleAStartup extends BeanScopeBase {};
|
|
186
|
+
ScopeModuleAStartup = __decorate([Scope(), BeanInfo({
|
|
189
187
|
module: "a-startup"
|
|
190
|
-
}),
|
|
191
|
-
|
|
188
|
+
})], ScopeModuleAStartup);
|
|
192
189
|
/** scope: end */
|
|
193
190
|
|
|
194
191
|
function Startup(options) {
|
|
@@ -196,3 +193,4 @@ function Startup(options) {
|
|
|
196
193
|
}
|
|
197
194
|
|
|
198
195
|
export { CacheRedisStartupDebounce, HmrStartup, MetaRedlock, Monkey, ScopeModuleAStartup, ServiceStartup, Startup, config };
|
|
196
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/service/startup.ts","../src/bean/cacheRedis.startupDebounce.ts","../src/bean/meta.redlock.ts","../src/bean/hmr.startup.ts","../src/config/config.ts","../src/.metadata/this.ts","../src/monkey.ts","../src/.metadata/index.ts","../src/lib/startup.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["ServiceStartup","BeanBase","appStart","_clearResources","startup","_startups","startupOptions","beanOptions","options","instance","after","runStartup","name","appReady","app","meta","isTest","isDev","_appReadyInstanceStartup","key","config","instances","instanceName","configInstanceBase","wait","server","listen","disable","bean","executor","newCtx","$scope","version","service","__instanceTest","dbInfo","level","res","instanceStartupIsolate","force","startupName","onion","onionsNormal","debounce","_runStartupInner","scope","redlock","lockIsolate","_runStartupLock","cacheKey","isNil","ctx","id","flag","cacheRedis","startupDebounce","getset","ttl","$logger","silly","process","pid","cast","_getBean","beanFullName","execute","transaction","runStartupInstance","appReadyInstances","getOnionsEnabledCached","redis","clearAllData","fse","remove","path","join","publicDir","__decorate","Service","__z_BeanInfo","module","CacheRedisStartupDebounce","BeanCacheRedisBase","CacheRedis","disableInstance","disableTransactionCompensate","client","MetaRedlock","BeanRedlockBase","Meta","HmrStartup","reload","_beanOptions","worker","Hmr","_app","__ThisModule__","Monkey","BeanSimple","ScopeModuleAStartup","BeanScopeBase","Scope","Startup","createBeanDecorator"],"mappings":"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"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
package/dist/lib/startup.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../../src/lib/startup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAEpE,wBAAgB,OAAO,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,cAAc,CAE1E"}
|
package/dist/monkey.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monkey.d.ts","sourceRoot":"","sources":["../src/monkey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAIlC,qBAAa,MAAO,SAAQ,UAAW,YAAW,eAAe,EAAE,eAAe;IAC1E,QAAQ;IAIR,QAAQ;CAGf"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IInstanceRecord } from 'vona';
|
|
2
2
|
import type { IOnionSlice } from 'vona-module-a-onion';
|
|
3
|
-
import type { IInstanceStartupOptions, IStartupRecord } from '../types/startup.ts';
|
|
4
3
|
import { BeanBase } from 'vona';
|
|
4
|
+
import type { IInstanceStartupOptions, IStartupRecord } from '../types/startup.ts';
|
|
5
5
|
export declare class ServiceStartup extends BeanBase {
|
|
6
6
|
appStart(): Promise<void>;
|
|
7
7
|
appReady(): Promise<void>;
|
|
@@ -13,3 +13,4 @@ export declare class ServiceStartup extends BeanBase {
|
|
|
13
13
|
private get _startups();
|
|
14
14
|
private _clearResources;
|
|
15
15
|
}
|
|
16
|
+
//# sourceMappingURL=startup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../../src/service/startup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKvD,OAAO,EAAE,QAAQ,EAAQ,MAAM,MAAM,CAAC;AAGtC,OAAO,KAAK,EAA4B,uBAAuB,EAAmB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE9H,qBACa,cAAe,SAAQ,QAAQ;IACpC,QAAQ;IAaR,QAAQ;YAuCA,wBAAwB;IAOhC,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,eAAe,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,uBAAuB;IAmB9G,eAAe,CAAC,CAAC,SAAS,MAAM,cAAc,EAClD,OAAO,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,EACvC,YAAY,CAAC,EAAE,MAAM,eAAe,GAAG,IAAI,EAC3C,OAAO,CAAC,EAAE,uBAAuB;IAc7B,gBAAgB,CAAC,CAAC,SAAS,MAAM,cAAc,EACnD,OAAO,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,EACvC,YAAY,CAAC,EAAE,MAAM,eAAe,GAAG,IAAI,EAC3C,OAAO,CAAC,EAAE,uBAAuB;IAkB7B,kBAAkB,CAAC,YAAY,EAAE,MAAM,eAAe,EAAE,OAAO,CAAC,EAAE,uBAAuB;IAmB/F,OAAO,KAAK,SAAS,GAEpB;YAEa,eAAe;CAO9B"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
package/dist/types/startup.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../../src/types/startup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAEzG,MAAM,WAAW,cAAc;CAAG;AAElC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,wBAAyB,SAAQ,4BAA4B,EAAE,iBAAiB,CAAC,MAAM,cAAc,CAAC;IACrH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAiB,SAAS;QACxB,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;KACvC;CACF;AAED,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,YAAY;QAC3B,OAAO,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;KACpC;IAED,UAAiB,gBAAgB;QAC/B,OAAO,EAAE,KAAK,CAAC;KAChB;CACF"}
|
package/package.json
CHANGED
|
@@ -1,26 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona-module-a-startup",
|
|
3
|
-
"
|
|
4
|
-
"version": "5.0.34",
|
|
5
|
-
"title": "a-startup",
|
|
6
|
-
"vonaModule": {
|
|
7
|
-
"dependencies": {},
|
|
8
|
-
"onions": {
|
|
9
|
-
"startup": {
|
|
10
|
-
"optionsGlobalInterfaceName": "IDecoratorStartupOptions",
|
|
11
|
-
"optionsGlobalInterfaceFrom": "vona-module-a-startup",
|
|
12
|
-
"boilerplate": "boilerplate"
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
"capabilities": {
|
|
16
|
-
"monkey": true
|
|
17
|
-
}
|
|
18
|
-
},
|
|
3
|
+
"version": "5.1.1",
|
|
19
4
|
"description": "",
|
|
20
|
-
"author": "",
|
|
21
5
|
"keywords": [
|
|
22
6
|
"Vona Module"
|
|
23
7
|
],
|
|
8
|
+
"author": "",
|
|
9
|
+
"files": [
|
|
10
|
+
"assets",
|
|
11
|
+
"cli",
|
|
12
|
+
"dist",
|
|
13
|
+
"src"
|
|
14
|
+
],
|
|
15
|
+
"type": "module",
|
|
24
16
|
"exports": {
|
|
25
17
|
".": {
|
|
26
18
|
"types": [
|
|
@@ -31,17 +23,30 @@
|
|
|
31
23
|
},
|
|
32
24
|
"./package.json": "./package.json"
|
|
33
25
|
},
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
|
|
26
|
+
"scripts": {
|
|
27
|
+
"clean": "rimraf dist tsconfig.build.tsbuildinfo",
|
|
28
|
+
"tsc:publish": "npm run clean && vona :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
|
|
29
|
+
"prepublishOnly": "npm run tsc:publish",
|
|
30
|
+
"prepack": "clean-package",
|
|
31
|
+
"postpack": "clean-package restore && npm run clean"
|
|
32
|
+
},
|
|
39
33
|
"devDependencies": {
|
|
40
34
|
"clean-package": "^2.2.0",
|
|
41
35
|
"rimraf": "^6.0.1"
|
|
42
36
|
},
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
|
|
37
|
+
"title": "a-startup",
|
|
38
|
+
"vonaModule": {
|
|
39
|
+
"dependencies": {},
|
|
40
|
+
"onions": {
|
|
41
|
+
"startup": {
|
|
42
|
+
"optionsGlobalInterfaceName": "IDecoratorStartupOptions",
|
|
43
|
+
"optionsGlobalInterfaceFrom": "vona-module-a-startup",
|
|
44
|
+
"boilerplate": "boilerplate"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"capabilities": {
|
|
48
|
+
"monkey": true
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"gitHead": "991189da4443b789fcf77872990b901ccf43bccb"
|
|
52
|
+
}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
// eslint-disable
|
|
2
|
+
/** service: begin */
|
|
3
|
+
export * from '../service/startup.ts';
|
|
4
|
+
|
|
5
|
+
import 'vona-module-a-bean';
|
|
6
|
+
declare module 'vona-module-a-bean' {
|
|
7
|
+
|
|
8
|
+
export interface IServiceRecord {
|
|
9
|
+
'a-startup:startup': never;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
}
|
|
14
|
+
declare module 'vona-module-a-startup' {
|
|
15
|
+
|
|
16
|
+
export interface ServiceStartup {
|
|
17
|
+
/** @internal */
|
|
18
|
+
get scope(): ScopeModuleAStartup;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface ServiceStartup {
|
|
22
|
+
get $beanFullName(): 'a-startup.service.startup';
|
|
23
|
+
get $onionName(): 'a-startup:startup';
|
|
24
|
+
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/** service: end */
|
|
28
|
+
/** service: begin */
|
|
29
|
+
import type { ServiceStartup } from '../service/startup.ts';
|
|
30
|
+
export interface IModuleService {
|
|
31
|
+
'startup': ServiceStartup;
|
|
32
|
+
}
|
|
33
|
+
/** service: end */
|
|
34
|
+
/** service: begin */
|
|
35
|
+
|
|
36
|
+
import 'vona';
|
|
37
|
+
declare module 'vona' {
|
|
38
|
+
export interface IBeanRecordGeneral {
|
|
39
|
+
'a-startup.service.startup': ServiceStartup;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/** service: end */
|
|
43
|
+
/** cacheRedis: begin */
|
|
44
|
+
export * from '../bean/cacheRedis.startupDebounce.ts';
|
|
45
|
+
|
|
46
|
+
import { type IDecoratorCacheRedisOptions } from 'vona-module-a-cache';
|
|
47
|
+
declare module 'vona-module-a-cache' {
|
|
48
|
+
|
|
49
|
+
export interface ICacheRedisRecord {
|
|
50
|
+
'a-startup:startupDebounce': IDecoratorCacheRedisOptions;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
}
|
|
55
|
+
declare module 'vona-module-a-startup' {
|
|
56
|
+
|
|
57
|
+
export interface CacheRedisStartupDebounce {
|
|
58
|
+
/** @internal */
|
|
59
|
+
get scope(): ScopeModuleAStartup;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export interface CacheRedisStartupDebounce {
|
|
63
|
+
get $beanFullName(): 'a-startup.cacheRedis.startupDebounce';
|
|
64
|
+
get $onionName(): 'a-startup:startupDebounce';
|
|
65
|
+
get $onionOptions(): IDecoratorCacheRedisOptions;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/** cacheRedis: end */
|
|
69
|
+
/** cacheRedis: begin */
|
|
70
|
+
import type { CacheRedisStartupDebounce } from '../bean/cacheRedis.startupDebounce.ts';
|
|
71
|
+
export interface IModuleCacheRedis {
|
|
72
|
+
'startupDebounce': CacheRedisStartupDebounce;
|
|
73
|
+
}
|
|
74
|
+
/** cacheRedis: end */
|
|
75
|
+
/** meta: begin */
|
|
76
|
+
export * from '../bean/meta.redlock.ts';
|
|
77
|
+
|
|
78
|
+
import 'vona-module-a-meta';
|
|
79
|
+
declare module 'vona-module-a-meta' {
|
|
80
|
+
|
|
81
|
+
export interface IMetaRecord {
|
|
82
|
+
'a-startup:redlock': never;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
}
|
|
87
|
+
declare module 'vona-module-a-startup' {
|
|
88
|
+
|
|
89
|
+
export interface MetaRedlock {
|
|
90
|
+
/** @internal */
|
|
91
|
+
get scope(): ScopeModuleAStartup;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export interface MetaRedlock {
|
|
95
|
+
get $beanFullName(): 'a-startup.meta.redlock';
|
|
96
|
+
get $onionName(): 'a-startup:redlock';
|
|
97
|
+
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/** meta: end */
|
|
101
|
+
/** meta redlock: begin */
|
|
102
|
+
import type { MetaRedlock } from '../bean/meta.redlock.ts';
|
|
103
|
+
/** meta redlock: end */
|
|
104
|
+
/** hmr: begin */
|
|
105
|
+
export * from '../bean/hmr.startup.ts';
|
|
106
|
+
|
|
107
|
+
import 'vona';
|
|
108
|
+
declare module 'vona' {
|
|
109
|
+
|
|
110
|
+
export interface IHmrRecord {
|
|
111
|
+
'a-startup:startup': never;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
}
|
|
116
|
+
declare module 'vona-module-a-startup' {
|
|
117
|
+
|
|
118
|
+
export interface HmrStartup {
|
|
119
|
+
/** @internal */
|
|
120
|
+
get scope(): ScopeModuleAStartup;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export interface HmrStartup {
|
|
124
|
+
get $beanFullName(): 'a-startup.hmr.startup';
|
|
125
|
+
get $onionName(): 'a-startup:startup';
|
|
126
|
+
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/** hmr: end */
|
|
130
|
+
/** config: begin */
|
|
131
|
+
export * from '../config/config.ts';
|
|
132
|
+
import type { config } from '../config/config.ts';
|
|
133
|
+
/** config: end */
|
|
134
|
+
/** monkey: begin */
|
|
135
|
+
export * from '../monkey.ts';
|
|
136
|
+
/** monkey: end */
|
|
137
|
+
/** scope: begin */
|
|
138
|
+
import { BeanScopeBase, type BeanScopeUtil, type TypeModuleConfig } from 'vona';
|
|
139
|
+
import { Scope } from 'vona-module-a-bean';
|
|
140
|
+
|
|
141
|
+
@Scope()
|
|
142
|
+
export class ScopeModuleAStartup extends BeanScopeBase {}
|
|
143
|
+
|
|
144
|
+
export interface ScopeModuleAStartup {
|
|
145
|
+
util: BeanScopeUtil;
|
|
146
|
+
config: TypeModuleConfig<typeof config>;
|
|
147
|
+
service: IModuleService;
|
|
148
|
+
cacheRedis: IModuleCacheRedis;
|
|
149
|
+
redlock: MetaRedlock;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
import 'vona';
|
|
153
|
+
declare module 'vona' {
|
|
154
|
+
export interface IBeanScopeRecord {
|
|
155
|
+
'a-startup': ScopeModuleAStartup;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export interface IBeanScopeContainer {
|
|
159
|
+
startup: ScopeModuleAStartup;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export interface IBeanScopeConfig {
|
|
163
|
+
'a-startup': ReturnType<typeof config>;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
}
|
|
170
|
+
/** scope: end */
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BeanCacheRedisBase, CacheRedis } from 'vona-module-a-cache';
|
|
2
|
+
|
|
3
|
+
export type TCacheRedisStartupDebounceKey = `startupDebounce:${string}`;
|
|
4
|
+
export type TCacheRedisStartupDebounceData = boolean;
|
|
5
|
+
|
|
6
|
+
@CacheRedis({
|
|
7
|
+
disableInstance: true,
|
|
8
|
+
disableTransactionCompensate: true,
|
|
9
|
+
client: 'worker',
|
|
10
|
+
})
|
|
11
|
+
export class CacheRedisStartupDebounce extends BeanCacheRedisBase<TCacheRedisStartupDebounceKey, TCacheRedisStartupDebounceData> {}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IDecoratorBeanOptionsBase } from 'vona';
|
|
2
|
+
import type { IHmrReload } from 'vona-module-a-hmr';
|
|
3
|
+
|
|
4
|
+
import { BeanBase } from 'vona';
|
|
5
|
+
import { Hmr } from 'vona-module-a-hmrbase';
|
|
6
|
+
|
|
7
|
+
@Hmr()
|
|
8
|
+
export class HmrStartup extends BeanBase implements IHmrReload {
|
|
9
|
+
async reload(_beanOptions: IDecoratorBeanOptionsBase) {
|
|
10
|
+
this.app.bean.worker.reload();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Meta } from 'vona-module-a-meta';
|
|
2
|
+
import { BeanRedlockBase } from 'vona-module-a-redlock';
|
|
3
|
+
|
|
4
|
+
export type TypeRedlockLockResource = never;
|
|
5
|
+
export type TypeRedlockLockIsolateResource = `startup.${string}`;
|
|
6
|
+
|
|
7
|
+
@Meta()
|
|
8
|
+
export class MetaRedlock extends BeanRedlockBase<TypeRedlockLockResource, TypeRedlockLockIsolateResource> {}
|
package/src/index.ts
ADDED
package/src/lib/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './startup.ts';
|
package/src/monkey.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { IMonkeyAppReady, IMonkeyAppStart } from 'vona';
|
|
2
|
+
|
|
3
|
+
import { BeanSimple } from 'vona';
|
|
4
|
+
|
|
5
|
+
import { __ThisModule__ } from './.metadata/this.ts';
|
|
6
|
+
|
|
7
|
+
export class Monkey extends BeanSimple implements IMonkeyAppStart, IMonkeyAppReady {
|
|
8
|
+
async appStart() {
|
|
9
|
+
await this.app.scope(__ThisModule__).service.startup.appStart();
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
async appReady() {
|
|
13
|
+
await this.app.scope(__ThisModule__).service.startup.appReady();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import type { IInstanceRecord } from 'vona';
|
|
2
|
+
import type { IOnionSlice } from 'vona-module-a-onion';
|
|
3
|
+
|
|
4
|
+
import { isNil } from '@cabloy/utils';
|
|
5
|
+
import fse from 'fs-extra';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import { BeanBase, cast } from 'vona';
|
|
8
|
+
import { Service } from 'vona-module-a-bean';
|
|
9
|
+
|
|
10
|
+
import type { IDecoratorStartupOptions, IInstanceStartupOptions, IStartupExecute, IStartupRecord } from '../types/startup.ts';
|
|
11
|
+
|
|
12
|
+
@Service()
|
|
13
|
+
export class ServiceStartup extends BeanBase {
|
|
14
|
+
async appStart() {
|
|
15
|
+
// clear keys
|
|
16
|
+
await this._clearResources();
|
|
17
|
+
|
|
18
|
+
// run startups: not after
|
|
19
|
+
for (const startup of this._startups) {
|
|
20
|
+
const startupOptions = startup.beanOptions.options;
|
|
21
|
+
if (!startupOptions?.instance && startupOptions?.after !== true) {
|
|
22
|
+
await this.runStartup(startup.name, null);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async appReady() {
|
|
28
|
+
// run startups: after
|
|
29
|
+
for (const startup of this._startups) {
|
|
30
|
+
const startupOptions = startup.beanOptions.options;
|
|
31
|
+
if (!startupOptions?.instance && startupOptions?.after === true) {
|
|
32
|
+
await this.runStartup(startup.name, null);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// version init : force: should be false
|
|
37
|
+
if (this.app.meta.isTest || this.app.meta.isDev) {
|
|
38
|
+
await this._appReadyInstanceStartup('', true);
|
|
39
|
+
} else {
|
|
40
|
+
// only start static instances (defined in config)
|
|
41
|
+
for (const key in this.app.config.instance.instances) {
|
|
42
|
+
const instanceName = key as keyof IInstanceRecord;
|
|
43
|
+
const configInstanceBase = this.app.config.instance.instances[instanceName];
|
|
44
|
+
if (configInstanceBase === false) continue;
|
|
45
|
+
// need not await for prod
|
|
46
|
+
const wait = this.app.config.server.listen.disable;
|
|
47
|
+
await this._appReadyInstanceStartup(instanceName, wait);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// version test
|
|
52
|
+
if (this.app.meta.isTest) {
|
|
53
|
+
const instanceName = '';
|
|
54
|
+
await this.bean.executor.newCtx(
|
|
55
|
+
async () => {
|
|
56
|
+
await this.$scope.version.service.version.__instanceTest(instanceName);
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
dbInfo: { level: 1 },
|
|
60
|
+
instanceName,
|
|
61
|
+
},
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
private async _appReadyInstanceStartup(instanceName: keyof IInstanceRecord, wait: boolean) {
|
|
67
|
+
const res = this.$scope.instance.service.instance.instanceStartupIsolate(instanceName, { force: false });
|
|
68
|
+
if (wait) {
|
|
69
|
+
await res;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
async runStartup(startupName: string, instanceName?: keyof IInstanceRecord | null, options?: IInstanceStartupOptions) {
|
|
74
|
+
const startup = this.bean.onion.startup.onionsNormal[startupName];
|
|
75
|
+
const startupOptions = startup.beanOptions.options as IDecoratorStartupOptions;
|
|
76
|
+
// normal
|
|
77
|
+
if (!startupOptions.debounce) {
|
|
78
|
+
return await this._runStartupInner(startup, instanceName, options);
|
|
79
|
+
}
|
|
80
|
+
// debounce: lock
|
|
81
|
+
return await this.scope.redlock.lockIsolate(
|
|
82
|
+
`startup.${startupName}`,
|
|
83
|
+
async () => {
|
|
84
|
+
return await this._runStartupLock(startup, instanceName, options);
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
instanceName,
|
|
88
|
+
},
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
async _runStartupLock<T extends keyof IStartupRecord>(
|
|
93
|
+
startup: IOnionSlice<IStartupRecord, T>,
|
|
94
|
+
instanceName?: keyof IInstanceRecord | null,
|
|
95
|
+
options?: IInstanceStartupOptions,
|
|
96
|
+
) {
|
|
97
|
+
// ignore debounce for test
|
|
98
|
+
if (!options?.force && !this.app.meta.isTest) {
|
|
99
|
+
const startupOptions = startup.beanOptions.options as IDecoratorStartupOptions;
|
|
100
|
+
const cacheKey = `startupDebounce:${startup.name}${!isNil(instanceName) ? `:${this.ctx.instance.id}` : ''}` as const;
|
|
101
|
+
const debounce = typeof startupOptions.debounce === 'number' ? startupOptions.debounce : this.scope.config.startup.debounce;
|
|
102
|
+
const flag = await this.scope.cacheRedis.startupDebounce.getset(true, cacheKey, { ttl: debounce });
|
|
103
|
+
if (flag) return;
|
|
104
|
+
}
|
|
105
|
+
// perform
|
|
106
|
+
await this._runStartupInner(startup, instanceName, options);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
async _runStartupInner<T extends keyof IStartupRecord>(
|
|
110
|
+
startup: IOnionSlice<IStartupRecord, T>,
|
|
111
|
+
instanceName?: keyof IInstanceRecord | null,
|
|
112
|
+
options?: IInstanceStartupOptions,
|
|
113
|
+
) {
|
|
114
|
+
this.$logger.silly(`startup${startup.beanOptions?.options?.instance ? ' instance' : ''}: ${startup.name}, pid: ${process.pid}`);
|
|
115
|
+
const startupOptions = startup.beanOptions.options as IDecoratorStartupOptions;
|
|
116
|
+
// execute
|
|
117
|
+
return await this.bean.executor.newCtx(
|
|
118
|
+
async () => {
|
|
119
|
+
const bean = cast<IStartupExecute>(this.bean._getBean(startup.beanOptions.beanFullName as any));
|
|
120
|
+
await bean.execute(options);
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
dbInfo: { level: 1 },
|
|
124
|
+
instanceName,
|
|
125
|
+
transaction: startupOptions.transaction,
|
|
126
|
+
},
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
async runStartupInstance(instanceName: keyof IInstanceRecord, options?: IInstanceStartupOptions) {
|
|
131
|
+
// run startups: not after
|
|
132
|
+
for (const startup of this._startups) {
|
|
133
|
+
const startupOptions = startup.beanOptions.options;
|
|
134
|
+
if (startupOptions?.instance && startupOptions?.after !== true) {
|
|
135
|
+
await this.runStartup(startup.name, instanceName, options);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// set flag
|
|
139
|
+
this.app.meta.appReadyInstances[instanceName] = true;
|
|
140
|
+
// run startups: after
|
|
141
|
+
for (const startup of this._startups) {
|
|
142
|
+
const startupOptions = startup.beanOptions.options;
|
|
143
|
+
if (startupOptions?.instance && startupOptions?.after === true) {
|
|
144
|
+
await this.runStartup(startup.name, instanceName, options);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
private get _startups() {
|
|
150
|
+
return this.bean.onion.startup.getOnionsEnabledCached();
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
private async _clearResources() {
|
|
154
|
+
if (!this.app.meta.isTest) return;
|
|
155
|
+
// redis
|
|
156
|
+
await this.$scope.redis.service.redis.clearAllData();
|
|
157
|
+
// .app/public
|
|
158
|
+
await fse.remove(path.join(this.app.config.server.publicDir, '1'));
|
|
159
|
+
}
|
|
160
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './startup.ts';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { OmitNever } from 'vona';
|
|
2
|
+
import type { ConfigInstanceBase } from 'vona-module-a-instance';
|
|
3
|
+
import type { IOnionOptionsDeps, ServiceOnion, TypeOnionOptionsEnableSimple } from 'vona-module-a-onion';
|
|
4
|
+
|
|
5
|
+
export interface IStartupRecord {}
|
|
6
|
+
|
|
7
|
+
export interface IStartupExecute {
|
|
8
|
+
execute: (options?: IInstanceStartupOptions) => Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface IDecoratorStartupOptions extends TypeOnionOptionsEnableSimple, IOnionOptionsDeps<keyof IStartupRecord> {
|
|
12
|
+
instance?: boolean;
|
|
13
|
+
debounce?: boolean | number;
|
|
14
|
+
transaction?: boolean;
|
|
15
|
+
after?: boolean;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface IInstanceStartupOptions {
|
|
19
|
+
force?: boolean;
|
|
20
|
+
configInstanceBase?: ConfigInstanceBase;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
declare module 'vona-module-a-onion' {
|
|
24
|
+
export interface BeanOnion {
|
|
25
|
+
startup: ServiceOnion<IStartupRecord>;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
declare module 'vona' {
|
|
30
|
+
export interface ConfigOnions {
|
|
31
|
+
startup: OmitNever<IStartupRecord>;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface IBeanSceneRecord {
|
|
35
|
+
startup: never;
|
|
36
|
+
}
|
|
37
|
+
}
|