@start9labs/start-sdk 0.4.0-beta.27 → 0.4.0-beta.29
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/base/lib/osBindings/GetOsVersionParams.d.ts +0 -1
- package/base/lib/osBindings/Manifest.d.ts +1 -0
- package/base/lib/types.js +1 -1
- package/base/lib/types.js.map +1 -1
- package/package/lib/StartSdk.d.ts +2 -4
- package/package/lib/StartSdk.js +2 -4
- package/package/lib/StartSdk.js.map +1 -1
- package/package/lib/health/HealthCheck.d.ts +0 -1
- package/package/lib/health/HealthCheck.js +0 -6
- package/package/lib/health/HealthCheck.js.map +1 -1
- package/package/lib/mainFn/CommandController.d.ts +2 -2
- package/package/lib/mainFn/CommandController.js +4 -4
- package/package/lib/mainFn/CommandController.js.map +1 -1
- package/package/lib/mainFn/Daemon.d.ts +4 -4
- package/package/lib/mainFn/Daemon.js +8 -9
- package/package/lib/mainFn/Daemon.js.map +1 -1
- package/package/lib/mainFn/Daemons.d.ts +42 -21
- package/package/lib/mainFn/Daemons.js +63 -15
- package/package/lib/mainFn/Daemons.js.map +1 -1
- package/package/lib/mainFn/HealthDaemon.d.ts +3 -2
- package/package/lib/mainFn/HealthDaemon.js +43 -31
- package/package/lib/mainFn/HealthDaemon.js.map +1 -1
- package/package/lib/mainFn/Oneshot.d.ts +2 -2
- package/package/lib/mainFn/Oneshot.js +4 -5
- package/package/lib/mainFn/Oneshot.js.map +1 -1
- package/package/lib/manifest/setupManifest.js +2 -0
- package/package/lib/manifest/setupManifest.js.map +1 -1
- package/package/lib/test/output.js +297 -386
- package/package/lib/test/output.js.map +1 -1
- package/package/lib/test/output.sdk.d.ts +2 -3
- package/package/lib/util/fileHelper.d.ts +6 -2
- package/package/lib/util/fileHelper.js +8 -4
- package/package/lib/util/fileHelper.js.map +1 -1
- package/package/lib/version/VersionGraph.d.ts +3 -3
- package/package/lib/version/VersionGraph.js.map +1 -1
- package/package/package.json +63 -0
- package/package.json +4 -4
package/base/lib/types.js
CHANGED
|
@@ -57,7 +57,7 @@ class UseEntrypoint {
|
|
|
57
57
|
}
|
|
58
58
|
exports.UseEntrypoint = UseEntrypoint;
|
|
59
59
|
function isUseEntrypoint(command) {
|
|
60
|
-
return typeof command === "object" && "
|
|
60
|
+
return typeof command === "object" && "USE_ENTRYPOINT" in command;
|
|
61
61
|
}
|
|
62
62
|
function writable(value) {
|
|
63
63
|
return value;
|
package/base/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../base/lib/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyGA,0CAIC;AAmFD,4BAEC;AAMD,4BAEC;AA1MD,iFAAgE;AAchE,+CAA4B;AAgBf,QAAA,OAAO,GAAY,SAAS,CAAA;AAC5B,QAAA,OAAO,GAAY,SAAS,CAAA;AAC5B,QAAA,UAAU,GAAG,CAAC,CAAC,CAAA;AAI5B,IAAiB,eAAe,CAkC/B;AAlCD,WAAiB,eAAe;IAC9B,OAAO,EAAE,CAAC,CAAA;AAiCZ,CAAC,EAlCgB,eAAe,+BAAf,eAAe,QAkC/B;AA+BD,MAAa,aAAa;IAExB,YAAqB,UAAqB;QAArB,eAAU,GAAV,UAAU,CAAW;QADjC,mBAAc,GAAG,gBAAgB,CAAA;IACG,CAAC;CAC/C;AAHD,sCAGC;AACD,SAAgB,eAAe,CAC7B,OAAoB;IAEpB,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../base/lib/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyGA,0CAIC;AAmFD,4BAEC;AAMD,4BAEC;AA1MD,iFAAgE;AAchE,+CAA4B;AAgBf,QAAA,OAAO,GAAY,SAAS,CAAA;AAC5B,QAAA,OAAO,GAAY,SAAS,CAAA;AAC5B,QAAA,UAAU,GAAG,CAAC,CAAC,CAAA;AAI5B,IAAiB,eAAe,CAkC/B;AAlCD,WAAiB,eAAe;IAC9B,OAAO,EAAE,CAAC,CAAA;AAiCZ,CAAC,EAlCgB,eAAe,+BAAf,eAAe,QAkC/B;AA+BD,MAAa,aAAa;IAExB,YAAqB,UAAqB;QAArB,eAAU,GAAV,UAAU,CAAW;QADjC,mBAAc,GAAG,gBAAgB,CAAA;IACG,CAAC;CAC/C;AAHD,sCAGC;AACD,SAAgB,eAAe,CAC7B,OAAoB;IAEpB,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,gBAAgB,IAAI,OAAO,CAAA;AACnE,CAAC;AAmFD,SAAgB,QAAQ,CAAI,KAAQ;IAClC,OAAO,KAAK,CAAA;AACd,CAAC;AAMD,SAAgB,QAAQ,CAAI,KAAQ;IAClC,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -6,7 +6,6 @@ import { SyncOptions, ServiceInterfaceId, PackageId, ServiceInterfaceType, Effec
|
|
|
6
6
|
import * as patterns from "../../base/lib/util/patterns";
|
|
7
7
|
import { BackupSync, Backups } from "./backup/Backups";
|
|
8
8
|
import { Daemon, Daemons } from "./mainFn/Daemons";
|
|
9
|
-
import { HealthCheck } from "./health/HealthCheck";
|
|
10
9
|
import { checkPortListening } from "./health/checkFns/checkPortListening";
|
|
11
10
|
import { List } from "../../base/lib/actions/input/builder/list";
|
|
12
11
|
import { SetupBackupsParams } from "./backup/setupBackups";
|
|
@@ -251,7 +250,6 @@ export declare class StartSdk<Manifest extends T.SDKManifest> {
|
|
|
251
250
|
}) => ServiceInterfaceBuilder;
|
|
252
251
|
getSystemSmtp: <E extends Effects>(effects: E) => GetSystemSmtp;
|
|
253
252
|
getSslCerificate: <E extends Effects>(effects: E, hostnames: string[], algorithm?: T.Algorithm) => GetSslCertificate;
|
|
254
|
-
HealthCheck: typeof HealthCheck;
|
|
255
253
|
healthCheck: {
|
|
256
254
|
checkPortListening: typeof checkPortListening;
|
|
257
255
|
checkWebUrl: (effects: Effects, url: string, { timeout, successMessage, errorMessage, }?: {
|
|
@@ -503,10 +501,10 @@ export declare class StartSdk<Manifest extends T.SDKManifest> {
|
|
|
503
501
|
of: <Spec extends Record<string, Value<any>>>(spec: Spec) => InputSpec<{ [K in keyof Spec]: Spec[K] extends Value<infer T> ? T : never; }>;
|
|
504
502
|
};
|
|
505
503
|
Daemon: {
|
|
506
|
-
readonly of: (effects: T.Effects, subcontainer:
|
|
504
|
+
readonly of: <C extends SubContainer<Manifest, Effects> | null>(effects: T.Effects, subcontainer: C, exec: import("./mainFn/Daemons").DaemonCommandType<Manifest, C>) => Promise<Daemon<Manifest, SubContainer<Manifest, Effects> | null>>;
|
|
507
505
|
};
|
|
508
506
|
Daemons: {
|
|
509
|
-
of(effects: Effects, started: (onTerm: () => PromiseLike<void>) => PromiseLike<null
|
|
507
|
+
of(effects: Effects, started: ((onTerm: () => PromiseLike<void>) => PromiseLike<null>) | null): Daemons<Manifest, never>;
|
|
510
508
|
};
|
|
511
509
|
SubContainer: {
|
|
512
510
|
/**
|
package/package/lib/StartSdk.js
CHANGED
|
@@ -43,7 +43,6 @@ const patterns = __importStar(require("../../base/lib/util/patterns"));
|
|
|
43
43
|
const Backups_1 = require("./backup/Backups");
|
|
44
44
|
const inputSpecConstants_1 = require("../../base/lib/actions/input/inputSpecConstants");
|
|
45
45
|
const Daemons_1 = require("./mainFn/Daemons");
|
|
46
|
-
const HealthCheck_1 = require("./health/HealthCheck");
|
|
47
46
|
const checkPortListening_1 = require("./health/checkFns/checkPortListening");
|
|
48
47
|
const checkFns_1 = require("./health/checkFns");
|
|
49
48
|
const list_1 = require("../../base/lib/actions/input/builder/list");
|
|
@@ -327,7 +326,6 @@ class StartSdk {
|
|
|
327
326
|
createInterface: (effects, options) => new ServiceInterfaceBuilder_1.ServiceInterfaceBuilder({ ...options, effects }),
|
|
328
327
|
getSystemSmtp: (effects) => new util_1.GetSystemSmtp(effects),
|
|
329
328
|
getSslCerificate: (effects, hostnames, algorithm) => new util_5.GetSslCertificate(effects, hostnames, algorithm),
|
|
330
|
-
HealthCheck: HealthCheck_1.HealthCheck,
|
|
331
329
|
healthCheck: {
|
|
332
330
|
checkPortListening: checkPortListening_1.checkPortListening,
|
|
333
331
|
checkWebUrl: checkFns_1.checkWebUrl,
|
|
@@ -564,8 +562,8 @@ class StartSdk {
|
|
|
564
562
|
},
|
|
565
563
|
},
|
|
566
564
|
Daemons: {
|
|
567
|
-
of(effects, started
|
|
568
|
-
return Daemons_1.Daemons.of({ effects, started
|
|
565
|
+
of(effects, started) {
|
|
566
|
+
return Daemons_1.Daemons.of({ effects, started });
|
|
569
567
|
},
|
|
570
568
|
},
|
|
571
569
|
SubContainer: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartSdk.js","sourceRoot":"","sources":["../../../package/lib/StartSdk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"StartSdk.js","sourceRoot":"","sources":["../../../package/lib/StartSdk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAovBA,gCA2CC;AA/xBD,sEAAkE;AAClE,8EAA0E;AAC1E,4EAAwE;AACxE,sEAI4C;AAQ5C,uEAAwD;AACxD,8CAAsD;AACtD,wFAA+E;AAC/E,8CAAkD;AAClD,6EAAyE;AACzE,gDAAgE;AAChE,oEAAgE;AAChE,wDAAwE;AACxE,qCAAoC;AACpC,6DAAyD;AACzD,uCAAiE;AACjE,+EAAkF;AAClF,6DAAyD;AACzD,yDAAkE;AAClE,+FAA2F;AAC3F,iCAAsC;AACtC,iCAAoC;AACpC,iCAAkE;AAClE,sDAK4B;AAC5B,iCAAqC;AACrC,4CAAwC;AACxC,qFAAiF;AACjF,wDAAyC;AACzC,gDAAsD;AACtD,2EAGiD;AACjD,iCAA0C;AAC1C,uCAA0D;AAI1D,gEAAiD;AACjD,qDAAsC;AACtC,gDAK6B;AAEhB,QAAA,SAAS,GAAG,IAAA,uBAAe,EAAC,eAAe,CAAC,CAAA;AASzD,MAAa,QAAQ;IACnB,YAA6B,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;IAAG,CAAC;IACnD,MAAM,CAAC,EAAE;QACP,OAAO,IAAI,QAAQ,CAAQ,IAAa,CAAC,CAAA;IAC3C,CAAC;IACD,YAAY,CAAyC,QAAkB;QACrE,OAAO,IAAI,QAAQ,CAAW,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,OAA0D;QA2B9D,MAAM,qBAAqB,GAA0B;YACnD,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YACvD,eAAe,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;YACvE,iBAAiB,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,CACtC,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;YACpC,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YACnD,oBAAoB,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,CACzC,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC;YACvC,qBAAqB,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,CAC1C,OAAO,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC;YACxC,aAAa,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;YACnE,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YACvD,SAAS,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;YAC3D,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YACzD,eAAe,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;YACvE,SAAS,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;SAC5D,CAAA;QAED,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,qBAAqB;YACxB,cAAc,EAAd,wBAAc;YACd,cAAc,EAAd,wBAAc;YACd,MAAM,EAAE;gBACN,GAAG,EAAE,OAAO,CAAC,SAAS;gBACtB,UAAU,EAAE,CACV,OAAkB,EAClB,SAAsB,EACtB,MAAS,EACT,QAAwB,EACxB,OAAgC,EAChC,EAAE,CACF,OAAO,CAAC,UAAU,CAAC;oBACjB,OAAO;oBACP,SAAS;oBACT,MAAM;oBACN,QAAQ;oBACR,OAAO,EAAE,OAAO;iBACjB,CAAC;gBACJ,aAAa,EAAE,CACb,OAAkB,EAClB,MAAS,EACT,QAAwB,EACxB,OAAgC,EAChC,EAAE,CACF,OAAO,CAAC,UAAU,CAAC;oBACjB,OAAO;oBACP,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;oBAC3B,MAAM;oBACN,QAAQ;oBACR,OAAO,EAAE,OAAO;iBACjB,CAAC;gBACJ,SAAS,EAAE,CAAC,OAAkB,EAAE,GAAG,SAAmB,EAAE,EAAE,CACxD,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;aACjD;YACD,iBAAiB,EAAE,gCAM0B;YAC7C,gBAAgB,EAAE;gBAChB,MAAM,EAAE,CAAoB,OAAU,EAAE,EAAsB,EAAE,EAAE,CAChE,IAAA,0BAAmB,EAAC,OAAO,EAAE;oBAC3B,EAAE;iBACH,CAAC;gBACJ,GAAG,EAAE,CACH,OAAU,EACV,IAAsD,EACtD,EAAE,CAAC,IAAA,0BAAmB,EAAC,OAAO,EAAE,IAAI,CAAC;gBACvC,SAAS,EAAE,CAAoB,OAAU,EAAE,EAAE,CAC3C,IAAA,2BAAoB,EAAC,OAAO,EAAE,EAAE,CAAC;gBACnC,MAAM,EAAE,CACN,OAAU,EACV,IAA8B,EAC9B,EAAE,CAAC,IAAA,2BAAoB,EAAC,OAAO,EAAE,IAAI,CAAC;aACzC;YACD,cAAc,EAAE,CACd,OAAkB,EAClB,UAGI,EAAE,EACN,EAAE;gBACF,KAAK,SAAS,CAAC,CAAC,KAAK;oBACnB,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAA;oBACzC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE;wBAC1B,WAAW,CAAC,OAAO,EAAE,CAAA;oBACvB,CAAC,CAAC,CAAA;oBACF,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;wBAC3B,IAAI,QAAQ,GAAe,GAAG,EAAE,GAAE,CAAC,CAAA;wBACnC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;4BAChD,QAAQ,GAAG,OAAO,CAAA;4BAClB,WAAW,CAAC,OAAO,GAAG,OAAO,CAAA;wBAC/B,CAAC,CAAC,CAAA;wBACF,MAAM,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAA;wBAC5D,MAAM,WAAW,CAAA;oBACnB,CAAC;gBACH,CAAC;gBACD,OAAO;oBACL,KAAK,EAAE,GAAG,EAAE,CACV,OAAO,CAAC,cAAc,CAAC;wBACrB,GAAG,OAAO;wBACV,QAAQ,EACN,OAAO,CAAC,UAAU;4BAClB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;qBACrD,CAAC;oBACJ,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC3C,KAAK;oBACL,QAAQ,EAAE,CACR,QAGyB,EACzB,EAAE;wBACF,CAAC;wBAAA,CAAC,KAAK,IAAI,EAAE;4BACX,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,EAAE,EAAE,CAAC;gCAClC,IAAI,CAAC;oCACH,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAA;gCACvB,CAAC;gCAAC,OAAO,CAAC,EAAE,CAAC;oCACX,OAAO,CAAC,KAAK,CACX,4DAA4D,EAC5D,CAAC,CACF,CAAA;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC,CAAC,EAAE;6BACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;6BAC/B,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACX,OAAO,CAAC,KAAK,CACX,4DAA4D,EAC5D,CAAC,CACF,CACF,CAAA;oBACL,CAAC;oBACD,OAAO,EAAE,KAAK,EAAE,IAAuC,EAAE,EAAE;wBACzD,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAA;wBACzC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE;4BAC1B,WAAW,CAAC,OAAO,EAAE,CAAA;wBACvB,CAAC,CAAC,CAAA;wBACF,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;4BAC3B,IAAI,QAAQ,GAAe,GAAG,EAAE,GAAE,CAAC,CAAA;4BACnC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gCAChD,QAAQ,GAAG,OAAO,CAAA;gCAClB,WAAW,CAAC,OAAO,GAAG,OAAO,CAAA;4BAC/B,CAAC,CAAC,CAAA;4BACF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAA;4BAClE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gCACd,WAAW,CAAC,OAAO,EAAE,CAAA;gCACrB,OAAO,GAAG,CAAA;4BACZ,CAAC;4BACD,MAAM,WAAW,CAAA;wBACnB,CAAC;wBACD,OAAO,IAAI,CAAA;oBACb,CAAC;iBACF,CAAA;YACH,CAAC;YAED,SAAS,EAAE;gBACT,EAAE,EAAE,CAAC,OAAgB,EAAE,EAAU,EAAE,EAAE,CAAC,IAAI,gBAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;aACrE;YACD,WAAW,EAAX,kBAAW;YACX,aAAa,EAAE,CAAC,WAAsB,EAAE,EAAE,CACxC,IAAI,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC;YAClC;;;eAGG;YACH,MAAM,EAAE;gBACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAwDE;gBACF,SAAS,EAAE,CAIT,EAAM,EACN,QAAqD,EACrD,SAAwB,EACxB,QAAiC,EACjC,GAAuB,EACvB,EAAE,CAAC,qBAAM,CAAC,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC;gBAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0CE;gBACF,YAAY,EAAE,CACZ,EAAM,EACN,QAAqD,EACrD,GAAY,EACZ,EAAE,CAAC,qBAAM,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC;aAC5C;YACD,kBAAkB,EAAE,EAAE,aAAa,EAAb,kCAAa,EAAE;YACrC;;;;;;;;;;;;;;;;;;;;eAoBG;YACH,eAAe,EAAE,CACf,OAAgB,EAChB,OAsBC,EACD,EAAE,CAAC,IAAI,iDAAuB,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC;YACzD,aAAa,EAAE,CAAoB,OAAU,EAAE,EAAE,CAC/C,IAAI,oBAAa,CAAC,OAAO,CAAC;YAC5B,gBAAgB,EAAE,CAChB,OAAU,EACV,SAAmB,EACnB,SAAuB,EACvB,EAAE,CAAC,IAAI,wBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;YACzD,WAAW,EAAE;gBACX,kBAAkB,EAAlB,uCAAkB;gBAClB,WAAW,EAAX,sBAAW;gBACX,eAAe,EAAf,0BAAe;aAChB;YACD,QAAQ;YACR;;;;;;;;;;;;;eAaG;YACH,OAAO,EAAE,CAAA,sBAAW,CAAA;YACpB;;;;;;;;;;;;;;;;;;;;;;;;eAwBG;YACH,YAAY,EAAE,CAAC,OAAqC,EAAE,EAAE,CACtD,IAAA,2BAAY,EAAW,OAAO,CAAC;YACjC;;;;;;;;;;;;;;;;;;eAkBG;YACH,iBAAiB,EAAE,CAAA,qCAA2B,CAAA;YAC9C;;eAEG;YACH,WAAW,EAAX,mBAAW;YACX;;eAEG;YACH,aAAa,EAAb,qBAAa;YACb;;;;;;;;;;;;;;;;;;;;eAoBG;YACH,SAAS,EAAE,iBAAS;YACpB;;;;;;;;;;;;;;;eAeG;YACH,WAAW,EAAE,mBAAW;YACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAmEG;YACH,eAAe,EAAE,wCAAsB;YACvC,SAAS,EAAE,CACT,EAGqC,EACrC,EAAE,CAAC,IAAA,kBAAS,EAAW,EAAE,CAAC;YAC5B,OAAO,EAAE;gBACP,cAAc,EAAd,+BAAc;gBACd,eAAe,EAAf,yBAAe;gBACf,oBAAoB,EAApB,8BAAoB;gBACpB,cAAc,EAAd,+BAAc;aACf;YACD,MAAM,EAAE;gBACN,EAAE;oBACA,OAAO,eAAM,CAAC,EAAE,EAAY,CAAA;gBAC9B,CAAC;aACF;YACD,OAAO,EAAE;gBACP,OAAO,EAAE,CACP,GAAG,WAAwD,EAC3D,EAAE,CAAC,iBAAO,CAAC,WAAW,CAAW,GAAG,WAAW,CAAC;gBAClD,OAAO,EAAE,CACP,GAAG,OAA2D,EAC9D,EAAE,CAAC,iBAAO,CAAC,SAAS,CAAW,GAAG,OAAO,CAAC;gBAC5C,WAAW,EAAE,CAAC,OAA8B,EAAE,EAAE,CAC9C,iBAAO,CAAC,WAAW,CAAW,OAAO,CAAC;aACzC;YACD,SAAS,EAAE;gBACT;;;;;;;;;;;;;;;;;;;;;;;;;;mBA0BG;gBACH,EAAE,EAAE,CAA0C,IAAU,EAAE,EAAE,CAC1D,qBAAS,CAAC,EAAE,CAAO,IAAI,CAAC;aAC3B;YACD,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,OAAO,gBAAM,CAAC,EAAE,EAAY,CAAA;gBAC9B,CAAC;aACF;YACD,OAAO,EAAE;gBACP,EAAE,CACA,OAAgB,EAChB,OAEQ;oBAER,OAAO,iBAAO,CAAC,EAAE,CAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;gBACnD,CAAC;aACF;YACD,YAAY,EAAE;gBACZ;;;;;;mBAMG;gBACH,EAAE,CACA,OAAgB,EAChB,KAGC,EACD,MAA+B,EAC/B,IAAY;oBAEZ,OAAO,gCAAiB,CAAC,EAAE,CACzB,OAAO,EACP,KAAK,EACL,MAAM,EACN,IAAI,CACL,CAAA;gBACH,CAAC;gBACD;;;;;;mBAMG;gBACH,QAAQ,CACN,OAAkB,EAClB,KAGC,EACD,MAA+B,EAC/B,IAAY,EACZ,EAAwD;oBAExD,OAAO,gCAAiB,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;gBACrE,CAAC;aACF;YACD,IAAI,EAAJ,WAAI;YACJ,KAAK,EAAL,aAAK;YACL,QAAQ,EAAR,mBAAQ;SACT,CAAA;IACH,CAAC;CACF;AA3qBD,4BA2qBC;AAEM,KAAK,UAAU,UAAU,CAC9B,OAAgB,EAChB,KAA6E,EAC7E,OAAsB,EACtB,OAEC,EACD,IAAa;IAEb,IAAI,QAAkB,CAAA;IACtB,IAAI,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAoB,MAAM,EAAE;aACxC,QAAQ,CAAC,yBAAyB,KAAK,CAAC,OAAO,OAAO,EAAE;YACvD,QAAQ,EAAE,MAAM;SACjB,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;aACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,QAAQ,GAAG,SAAS,CAAC,UAAU,IAAI,EAAE,CAAA;QACrC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAA;IAC5E,CAAC;;QAAM,QAAQ,GAAG,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAA;IACvC,OAAO,gCAAiB,CAAC,QAAQ,CAC/B,OAAO,EACP,KAAK,EACL,OAAO,CAAC,MAAM,EACd,IAAI;QACF,QAAQ;aACL,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAA;YACrC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,CAAA;YACV,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,YAAY,EAAE,EAAE;QACrB,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7C,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,IAAI,wBAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QACvC,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,CAAA;QACZ,CAAC;IACH,CAAC,CACF,CAAA;AACH,CAAC"}
|
|
@@ -8,7 +8,6 @@ export type HealthCheckParams = {
|
|
|
8
8
|
trigger?: Trigger;
|
|
9
9
|
gracePeriod?: number;
|
|
10
10
|
fn(): Promise<HealthCheckResult> | HealthCheckResult;
|
|
11
|
-
onFirstSuccess?: () => unknown | Promise<unknown>;
|
|
12
11
|
};
|
|
13
12
|
export declare class HealthCheck extends Drop {
|
|
14
13
|
private started;
|
|
@@ -20,9 +20,6 @@ class HealthCheck extends util_1.Drop {
|
|
|
20
20
|
const getCurrentValue = () => this.currentValue;
|
|
21
21
|
const gracePeriod = o.gracePeriod ?? 10_000;
|
|
22
22
|
const trigger = (o.trigger ?? defaultTrigger_1.defaultTrigger)(getCurrentValue);
|
|
23
|
-
const triggerFirstSuccess = (0, util_1.once)(() => Promise.resolve("onFirstSuccess" in o && o.onFirstSuccess
|
|
24
|
-
? o.onFirstSuccess()
|
|
25
|
-
: undefined));
|
|
26
23
|
const checkStarted = () => [
|
|
27
24
|
this.started,
|
|
28
25
|
new Promise((resolve) => {
|
|
@@ -57,9 +54,6 @@ class HealthCheck extends util_1.Drop {
|
|
|
57
54
|
message: message || "",
|
|
58
55
|
});
|
|
59
56
|
this.currentValue.lastResult = result;
|
|
60
|
-
await triggerFirstSuccess().catch((err) => {
|
|
61
|
-
console.error((0, util_1.asError)(err));
|
|
62
|
-
});
|
|
63
57
|
}
|
|
64
58
|
catch (e) {
|
|
65
59
|
await effects.setHealth({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HealthCheck.js","sourceRoot":"","sources":["../../../../package/lib/health/HealthCheck.ts"],"names":[],"mappings":";;;AAIA,8DAA0D;AAC1D,kCAA6C;AAC7C,2CAA4C;
|
|
1
|
+
{"version":3,"file":"HealthCheck.js","sourceRoot":"","sources":["../../../../package/lib/health/HealthCheck.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,14 +2,14 @@ import * as T from "../../../base/lib/types";
|
|
|
2
2
|
import { SubContainer } from "../util/SubContainer";
|
|
3
3
|
import { Drop } from "../util";
|
|
4
4
|
import { DaemonCommandType } from "./Daemons";
|
|
5
|
-
export declare class CommandController<Manifest extends T.SDKManifest> extends Drop {
|
|
5
|
+
export declare class CommandController<Manifest extends T.SDKManifest, C extends SubContainer<Manifest> | null> extends Drop {
|
|
6
6
|
readonly runningAnswer: Promise<null>;
|
|
7
7
|
private state;
|
|
8
8
|
private readonly subcontainer;
|
|
9
9
|
private process;
|
|
10
10
|
readonly sigtermTimeout: number;
|
|
11
11
|
private constructor();
|
|
12
|
-
static of<Manifest extends T.SDKManifest>(): (effects: T.Effects, subcontainer:
|
|
12
|
+
static of<Manifest extends T.SDKManifest, C extends SubContainer<Manifest> | null>(): (effects: T.Effects, subcontainer: C, exec: DaemonCommandType<Manifest, C>) => Promise<CommandController<Manifest, C>>;
|
|
13
13
|
wait({ timeout }?: {
|
|
14
14
|
timeout?: number | undefined;
|
|
15
15
|
}): Promise<void>;
|
|
@@ -55,7 +55,7 @@ class CommandController extends util_1.Drop {
|
|
|
55
55
|
const abort = new AbortController();
|
|
56
56
|
const cell = {
|
|
57
57
|
ctrl: new CommandController(exec.fn(subcontainer, abort).then(async (command) => {
|
|
58
|
-
if (command && !abort.signal.aborted) {
|
|
58
|
+
if (subcontainer && command && !abort.signal.aborted) {
|
|
59
59
|
Object.assign(cell.ctrl, await CommandController.of()(effects, subcontainer, command));
|
|
60
60
|
return await cell.ctrl.runningAnswer;
|
|
61
61
|
}
|
|
@@ -116,7 +116,7 @@ class CommandController extends util_1.Drop {
|
|
|
116
116
|
return new CommandController(answer, state, subcontainer, childProcess, exec.sigtermTimeout);
|
|
117
117
|
}
|
|
118
118
|
catch (e) {
|
|
119
|
-
await subcontainer
|
|
119
|
+
await subcontainer?.destroy();
|
|
120
120
|
throw e;
|
|
121
121
|
}
|
|
122
122
|
};
|
|
@@ -142,7 +142,7 @@ class CommandController extends util_1.Drop {
|
|
|
142
142
|
else
|
|
143
143
|
this.process.kill("SIGKILL");
|
|
144
144
|
}
|
|
145
|
-
await this.subcontainer
|
|
145
|
+
await this.subcontainer?.destroy();
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
148
|
async term({ signal = types_1.SIGTERM, timeout = this.sigtermTimeout } = {}) {
|
|
@@ -171,7 +171,7 @@ class CommandController extends util_1.Drop {
|
|
|
171
171
|
await this.runningAnswer;
|
|
172
172
|
}
|
|
173
173
|
finally {
|
|
174
|
-
await this.subcontainer
|
|
174
|
+
await this.subcontainer?.destroy();
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
onDrop() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandController.js","sourceRoot":"","sources":["../../../../package/lib/mainFn/CommandController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAA2C;AAC3C,mDAA6D;AAE7D,2DAA4C;AAE5C,kCAA4C;AAE5C,qDAAsC;
|
|
1
|
+
{"version":3,"file":"CommandController.js","sourceRoot":"","sources":["../../../../package/lib/mainFn/CommandController.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { Oneshot } from "./Oneshot";
|
|
|
8
8
|
* This is a wrapper around CommandController that has a state of off, where the command shouldn't be running
|
|
9
9
|
* and the others state of running, where it will keep a living running command
|
|
10
10
|
*/
|
|
11
|
-
export declare class Daemon<Manifest extends T.SDKManifest> extends Drop {
|
|
11
|
+
export declare class Daemon<Manifest extends T.SDKManifest, C extends SubContainer<Manifest> | null = SubContainer<Manifest> | null> extends Drop {
|
|
12
12
|
private subcontainer;
|
|
13
13
|
private startCommand;
|
|
14
14
|
readonly oneshot: boolean;
|
|
@@ -16,9 +16,9 @@ export declare class Daemon<Manifest extends T.SDKManifest> extends Drop {
|
|
|
16
16
|
private shouldBeRunning;
|
|
17
17
|
protected exitedSuccess: boolean;
|
|
18
18
|
private onExitFns;
|
|
19
|
-
protected constructor(subcontainer:
|
|
19
|
+
protected constructor(subcontainer: C, startCommand: () => Promise<CommandController<Manifest, C>>, oneshot?: boolean);
|
|
20
20
|
isOneshot(): this is Oneshot<Manifest>;
|
|
21
|
-
static of<Manifest extends T.SDKManifest>(): (effects: T.Effects, subcontainer:
|
|
21
|
+
static of<Manifest extends T.SDKManifest>(): <C extends SubContainer<Manifest> | null>(effects: T.Effects, subcontainer: C, exec: DaemonCommandType<Manifest, C>) => Promise<Daemon<Manifest, SubContainer<Manifest, T.Effects> | null>>;
|
|
22
22
|
start(): Promise<void>;
|
|
23
23
|
term(termOptions?: {
|
|
24
24
|
signal?: NodeJS.Signals | undefined;
|
|
@@ -28,7 +28,7 @@ export declare class Daemon<Manifest extends T.SDKManifest> extends Drop {
|
|
|
28
28
|
signal?: NodeJS.Signals | undefined;
|
|
29
29
|
timeout?: number | undefined;
|
|
30
30
|
}): Promise<void>;
|
|
31
|
-
subcontainerRc(): SubContainerRc<Manifest
|
|
31
|
+
subcontainerRc(): SubContainerRc<Manifest> | null;
|
|
32
32
|
onExit(fn: (success: boolean) => void): void;
|
|
33
33
|
onDrop(): void;
|
|
34
34
|
}
|
|
@@ -26,12 +26,11 @@ class Daemon extends util_1.Drop {
|
|
|
26
26
|
}
|
|
27
27
|
static of() {
|
|
28
28
|
return async (effects, subcontainer, exec) => {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return new Daemon(subcontainer, startCommand);
|
|
29
|
+
let subc = subcontainer;
|
|
30
|
+
if (subcontainer && subcontainer.isOwned())
|
|
31
|
+
subc = subcontainer.rc();
|
|
32
|
+
const startCommand = () => CommandController_1.CommandController.of()(effects, (subc?.rc() ?? null), exec);
|
|
33
|
+
return new Daemon(subc, startCommand);
|
|
35
34
|
};
|
|
36
35
|
}
|
|
37
36
|
async start() {
|
|
@@ -41,7 +40,7 @@ class Daemon extends util_1.Drop {
|
|
|
41
40
|
this.shouldBeRunning = true;
|
|
42
41
|
let timeoutCounter = 0;
|
|
43
42
|
(async () => {
|
|
44
|
-
while (this.
|
|
43
|
+
while (this.shouldBeRunning) {
|
|
45
44
|
if (this.commandController)
|
|
46
45
|
await this.commandController
|
|
47
46
|
.term({})
|
|
@@ -87,10 +86,10 @@ class Daemon extends util_1.Drop {
|
|
|
87
86
|
.catch((e) => console.error((0, asError_1.asError)(e)));
|
|
88
87
|
this.commandController = null;
|
|
89
88
|
this.onExitFns = [];
|
|
90
|
-
await this.subcontainer
|
|
89
|
+
await this.subcontainer?.destroy();
|
|
91
90
|
}
|
|
92
91
|
subcontainerRc() {
|
|
93
|
-
return this.subcontainer
|
|
92
|
+
return this.subcontainer?.rc() ?? null;
|
|
94
93
|
}
|
|
95
94
|
onExit(fn) {
|
|
96
95
|
this.onExitFns.push(fn);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Daemon.js","sourceRoot":"","sources":["../../../../package/lib/mainFn/Daemon.ts"],"names":[],"mappings":";;;AACA,4DAAwD;AACxD,kCAA8B;AAM9B,2DAAuD;AAIvD,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,cAAc,GAAG,KAAK,CAAA;AAC5B;;;GAGG;AAEH,MAAa,
|
|
1
|
+
{"version":3,"file":"Daemon.js","sourceRoot":"","sources":["../../../../package/lib/mainFn/Daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,6 @@ export { CommandController } from "./CommandController";
|
|
|
8
8
|
import { HealthDaemon } from "./HealthDaemon";
|
|
9
9
|
import { Daemon } from "./Daemon";
|
|
10
10
|
import { CommandController } from "./CommandController";
|
|
11
|
-
import { HealthCheck } from "../health/HealthCheck";
|
|
12
|
-
import { Manifest } from "../test/output.sdk";
|
|
13
11
|
export declare const cpExec: typeof CP.exec.__promisify__;
|
|
14
12
|
export declare const cpExecFile: typeof CP.execFile.__promisify__;
|
|
15
13
|
export type Ready = {
|
|
@@ -29,7 +27,7 @@ export type Ready = {
|
|
|
29
27
|
})
|
|
30
28
|
* ```
|
|
31
29
|
*/
|
|
32
|
-
fn: (
|
|
30
|
+
fn: () => Promise<HealthCheckResult> | HealthCheckResult;
|
|
33
31
|
/**
|
|
34
32
|
* A duration in milliseconds to treat a failing health check as "starting"
|
|
35
33
|
*
|
|
@@ -50,31 +48,36 @@ export type ExecCommandOptions = {
|
|
|
50
48
|
onStdout?: (chunk: Buffer | string | any) => void;
|
|
51
49
|
onStderr?: (chunk: Buffer | string | any) => void;
|
|
52
50
|
};
|
|
53
|
-
export type ExecFnOptions = {
|
|
54
|
-
fn: (subcontainer:
|
|
51
|
+
export type ExecFnOptions<Manifest extends T.SDKManifest, C extends SubContainer<Manifest> | null> = {
|
|
52
|
+
fn: (subcontainer: C, abort: AbortController) => Promise<C extends null ? null : ExecCommandOptions | null>;
|
|
55
53
|
sigtermTimeout?: number;
|
|
56
54
|
};
|
|
57
|
-
export type DaemonCommandType =
|
|
58
|
-
type NewDaemonParams<Manifest extends T.SDKManifest> = {
|
|
55
|
+
export type DaemonCommandType<Manifest extends T.SDKManifest, C extends SubContainer<Manifest> | null> = ExecFnOptions<Manifest, C> | (C extends null ? never : ExecCommandOptions);
|
|
56
|
+
type NewDaemonParams<Manifest extends T.SDKManifest, C extends SubContainer<Manifest> | null> = {
|
|
59
57
|
/** What to run as the daemon: either an async fn or a commandline command to run in the subcontainer */
|
|
60
|
-
exec: DaemonCommandType
|
|
61
|
-
/**
|
|
62
|
-
subcontainer:
|
|
58
|
+
exec: DaemonCommandType<Manifest, C>;
|
|
59
|
+
/** The subcontainer in which the daemon runs */
|
|
60
|
+
subcontainer: C;
|
|
63
61
|
};
|
|
64
|
-
type AddDaemonParams<Manifest extends T.SDKManifest, Ids extends string, Id extends string> = (NewDaemonParams<Manifest> | {
|
|
62
|
+
type AddDaemonParams<Manifest extends T.SDKManifest, Ids extends string, Id extends string, C extends SubContainer<Manifest> | null> = (NewDaemonParams<Manifest, C> | {
|
|
65
63
|
daemon: Daemon<Manifest>;
|
|
66
64
|
}) & {
|
|
67
65
|
ready: Ready;
|
|
68
66
|
/** An array of IDs of prior daemons whose successful initializations are required before this daemon will initialize */
|
|
69
67
|
requires: Exclude<Ids, Id>[];
|
|
70
68
|
};
|
|
71
|
-
type AddOneshotParams<Manifest extends T.SDKManifest, Ids extends string, Id extends string> = NewDaemonParams<Manifest> & {
|
|
72
|
-
exec: DaemonCommandType
|
|
69
|
+
type AddOneshotParams<Manifest extends T.SDKManifest, Ids extends string, Id extends string, C extends SubContainer<Manifest> | null> = NewDaemonParams<Manifest, C> & {
|
|
70
|
+
exec: DaemonCommandType<Manifest, C>;
|
|
71
|
+
/** An array of IDs of prior daemons whose successful initializations are required before this daemon will initialize */
|
|
72
|
+
requires: Exclude<Ids, Id>[];
|
|
73
|
+
};
|
|
74
|
+
type AddHealthCheckParams<Ids extends string, Id extends string> = {
|
|
75
|
+
ready: Ready;
|
|
73
76
|
/** An array of IDs of prior daemons whose successful initializations are required before this daemon will initialize */
|
|
74
77
|
requires: Exclude<Ids, Id>[];
|
|
75
78
|
};
|
|
76
79
|
type ErrorDuplicateId<Id extends string> = `The id '${Id}' is already used`;
|
|
77
|
-
export declare const runCommand: <Manifest extends T.SDKManifest>() => (effects: T.Effects, subcontainer: SubContainer<Manifest, T.Effects>, exec: DaemonCommandType) => Promise<CommandController<Manifest
|
|
80
|
+
export declare const runCommand: <Manifest extends T.SDKManifest>() => (effects: T.Effects, subcontainer: SubContainer<Manifest, T.Effects>, exec: DaemonCommandType<Manifest, SubContainer<Manifest, T.Effects>>) => Promise<CommandController<Manifest, SubContainer<Manifest, T.Effects>>>;
|
|
78
81
|
/**
|
|
79
82
|
* A class for defining and controlling the service daemons
|
|
80
83
|
```ts
|
|
@@ -100,11 +103,10 @@ Daemons.of({
|
|
|
100
103
|
*/
|
|
101
104
|
export declare class Daemons<Manifest extends T.SDKManifest, Ids extends string> implements T.DaemonBuildable {
|
|
102
105
|
readonly effects: T.Effects;
|
|
103
|
-
readonly started: (onTerm: () => PromiseLike<void>) => PromiseLike<null
|
|
106
|
+
readonly started: ((onTerm: () => PromiseLike<void>) => PromiseLike<null>) | null;
|
|
104
107
|
readonly daemons: Promise<Daemon<Manifest>>[];
|
|
105
108
|
readonly ids: Ids[];
|
|
106
109
|
readonly healthDaemons: HealthDaemon<Manifest>[];
|
|
107
|
-
readonly healthChecks: HealthCheck[];
|
|
108
110
|
private constructor();
|
|
109
111
|
/**
|
|
110
112
|
* Returns an empty new Daemons class with the provided inputSpec.
|
|
@@ -113,13 +115,18 @@ export declare class Daemons<Manifest extends T.SDKManifest, Ids extends string>
|
|
|
113
115
|
*
|
|
114
116
|
* Daemons run in the order they are defined, with latter daemons being capable of
|
|
115
117
|
* depending on prior daemons
|
|
116
|
-
*
|
|
118
|
+
*
|
|
119
|
+
* @param effects
|
|
120
|
+
*
|
|
121
|
+
* @param started
|
|
117
122
|
* @returns
|
|
118
123
|
*/
|
|
119
124
|
static of<Manifest extends T.SDKManifest>(options: {
|
|
120
125
|
effects: T.Effects;
|
|
121
|
-
|
|
122
|
-
|
|
126
|
+
/**
|
|
127
|
+
* A closure to run once the system is launched. If you are in main, provide the `started` argument you receive from the function arguments
|
|
128
|
+
*/
|
|
129
|
+
started: ((onTerm: () => PromiseLike<void>) => PromiseLike<null>) | null;
|
|
123
130
|
}): Daemons<Manifest, never>;
|
|
124
131
|
/**
|
|
125
132
|
* Returns the complete list of daemons, including the one defined here
|
|
@@ -127,7 +134,7 @@ export declare class Daemons<Manifest extends T.SDKManifest, Ids extends string>
|
|
|
127
134
|
* @param options
|
|
128
135
|
* @returns a new Daemons object
|
|
129
136
|
*/
|
|
130
|
-
addDaemon<Id extends string>(id: "" extends Id ? never : ErrorDuplicateId<Id> extends Id ? never : Id extends Ids ? ErrorDuplicateId<Id> : Id, options: AddDaemonParams<Manifest, Ids, Id>): Daemons<Manifest, Ids | Id>;
|
|
137
|
+
addDaemon<Id extends string, C extends SubContainer<Manifest> | null>(id: "" extends Id ? never : ErrorDuplicateId<Id> extends Id ? never : Id extends Ids ? ErrorDuplicateId<Id> : Id, options: AddDaemonParams<Manifest, Ids, Id, C>): Daemons<Manifest, Ids | Id>;
|
|
131
138
|
/**
|
|
132
139
|
* Returns the complete list of daemons, including a "oneshot" daemon one defined here
|
|
133
140
|
* a oneshot daemon is a command that executes once when started, and is considered "running" once it exits successfully
|
|
@@ -135,7 +142,21 @@ export declare class Daemons<Manifest extends T.SDKManifest, Ids extends string>
|
|
|
135
142
|
* @param options
|
|
136
143
|
* @returns a new Daemons object
|
|
137
144
|
*/
|
|
138
|
-
addOneshot<Id extends string>(id: "" extends Id ? never : ErrorDuplicateId<Id> extends Id ? never : Id extends Ids ? ErrorDuplicateId<Id> : Id, options: AddOneshotParams<Manifest, Ids, Id>): Daemons<Manifest, Ids | Id>;
|
|
145
|
+
addOneshot<Id extends string, C extends SubContainer<Manifest> | null>(id: "" extends Id ? never : ErrorDuplicateId<Id> extends Id ? never : Id extends Ids ? ErrorDuplicateId<Id> : Id, options: AddOneshotParams<Manifest, Ids, Id, C>): Daemons<Manifest, Ids | Id>;
|
|
146
|
+
/**
|
|
147
|
+
* Returns the complete list of daemons, including a new HealthCheck defined here
|
|
148
|
+
* @param id
|
|
149
|
+
* @param options
|
|
150
|
+
* @returns a new Daemons object
|
|
151
|
+
*/
|
|
152
|
+
addHealthCheck<Id extends string>(id: "" extends Id ? never : ErrorDuplicateId<Id> extends Id ? never : Id extends Ids ? ErrorDuplicateId<Id> : Id, options: AddHealthCheckParams<Ids, Id>): Daemons<Manifest, Ids | Id>;
|
|
153
|
+
/**
|
|
154
|
+
* Runs the entire system until all daemons have returned `ready`.
|
|
155
|
+
* @param id
|
|
156
|
+
* @param options
|
|
157
|
+
* @returns a new Daemons object
|
|
158
|
+
*/
|
|
159
|
+
runUntilSuccess(timeout: number | null): Promise<null>;
|
|
139
160
|
term(): Promise<void>;
|
|
140
161
|
build(): Promise<this>;
|
|
141
162
|
}
|
|
@@ -72,13 +72,12 @@ Daemons.of({
|
|
|
72
72
|
```
|
|
73
73
|
*/
|
|
74
74
|
class Daemons {
|
|
75
|
-
constructor(effects, started, daemons, ids, healthDaemons
|
|
75
|
+
constructor(effects, started, daemons, ids, healthDaemons) {
|
|
76
76
|
this.effects = effects;
|
|
77
77
|
this.started = started;
|
|
78
78
|
this.daemons = daemons;
|
|
79
79
|
this.ids = ids;
|
|
80
80
|
this.healthDaemons = healthDaemons;
|
|
81
|
-
this.healthChecks = healthChecks;
|
|
82
81
|
}
|
|
83
82
|
/**
|
|
84
83
|
* Returns an empty new Daemons class with the provided inputSpec.
|
|
@@ -87,11 +86,14 @@ class Daemons {
|
|
|
87
86
|
*
|
|
88
87
|
* Daemons run in the order they are defined, with latter daemons being capable of
|
|
89
88
|
* depending on prior daemons
|
|
90
|
-
*
|
|
89
|
+
*
|
|
90
|
+
* @param effects
|
|
91
|
+
*
|
|
92
|
+
* @param started
|
|
91
93
|
* @returns
|
|
92
94
|
*/
|
|
93
95
|
static of(options) {
|
|
94
|
-
return new Daemons(options.effects, options.started, [], [], []
|
|
96
|
+
return new Daemons(options.effects, options.started, [], [], []);
|
|
95
97
|
}
|
|
96
98
|
/**
|
|
97
99
|
* Returns the complete list of daemons, including the one defined here
|
|
@@ -108,11 +110,11 @@ class Daemons {
|
|
|
108
110
|
const healthDaemon = new HealthDaemon_1.HealthDaemon(daemon, options.requires
|
|
109
111
|
.map((x) => this.ids.indexOf(x))
|
|
110
112
|
.filter((x) => x >= 0)
|
|
111
|
-
.map((id) => this.healthDaemons[id]), id,
|
|
112
|
-
const daemons = this.daemons
|
|
113
|
+
.map((id) => this.healthDaemons[id]), id, options.ready, this.effects);
|
|
114
|
+
const daemons = [...this.daemons, daemon];
|
|
113
115
|
const ids = [...this.ids, id];
|
|
114
116
|
const healthDaemons = [...this.healthDaemons, healthDaemon];
|
|
115
|
-
return new Daemons(this.effects, this.started, daemons, ids, healthDaemons
|
|
117
|
+
return new Daemons(this.effects, this.started, daemons, ids, healthDaemons);
|
|
116
118
|
}
|
|
117
119
|
/**
|
|
118
120
|
* Returns the complete list of daemons, including a "oneshot" daemon one defined here
|
|
@@ -126,15 +128,64 @@ class Daemons {
|
|
|
126
128
|
const healthDaemon = new HealthDaemon_1.HealthDaemon(daemon, options.requires
|
|
127
129
|
.map((x) => this.ids.indexOf(x))
|
|
128
130
|
.filter((x) => x >= 0)
|
|
129
|
-
.map((id) => this.healthDaemons[id]), id,
|
|
130
|
-
const daemons = this.daemons
|
|
131
|
+
.map((id) => this.healthDaemons[id]), id, "EXIT_SUCCESS", this.effects);
|
|
132
|
+
const daemons = [...this.daemons, daemon];
|
|
133
|
+
const ids = [...this.ids, id];
|
|
134
|
+
const healthDaemons = [...this.healthDaemons, healthDaemon];
|
|
135
|
+
return new Daemons(this.effects, this.started, daemons, ids, healthDaemons);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Returns the complete list of daemons, including a new HealthCheck defined here
|
|
139
|
+
* @param id
|
|
140
|
+
* @param options
|
|
141
|
+
* @returns a new Daemons object
|
|
142
|
+
*/
|
|
143
|
+
addHealthCheck(id, options) {
|
|
144
|
+
const healthDaemon = new HealthDaemon_1.HealthDaemon(null, options.requires
|
|
145
|
+
.map((x) => this.ids.indexOf(x))
|
|
146
|
+
.filter((x) => x >= 0)
|
|
147
|
+
.map((id) => this.healthDaemons[id]), id, options.ready, this.effects);
|
|
148
|
+
const daemons = [...this.daemons];
|
|
131
149
|
const ids = [...this.ids, id];
|
|
132
150
|
const healthDaemons = [...this.healthDaemons, healthDaemon];
|
|
133
|
-
return new Daemons(this.effects, this.started, daemons, ids, healthDaemons
|
|
151
|
+
return new Daemons(this.effects, this.started, daemons, ids, healthDaemons);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Runs the entire system until all daemons have returned `ready`.
|
|
155
|
+
* @param id
|
|
156
|
+
* @param options
|
|
157
|
+
* @returns a new Daemons object
|
|
158
|
+
*/
|
|
159
|
+
async runUntilSuccess(timeout) {
|
|
160
|
+
let resolve = (_) => { };
|
|
161
|
+
const res = new Promise((res, rej) => {
|
|
162
|
+
resolve = res;
|
|
163
|
+
if (timeout)
|
|
164
|
+
setTimeout(() => {
|
|
165
|
+
const notReady = this.healthDaemons
|
|
166
|
+
.filter((d) => !d.isReady)
|
|
167
|
+
.map((d) => d.id);
|
|
168
|
+
rej(new Error(`Timed out waiting for ${notReady}`));
|
|
169
|
+
}, timeout);
|
|
170
|
+
});
|
|
171
|
+
const daemon = Oneshot_1.Oneshot.of()(this.effects, null, {
|
|
172
|
+
fn: async () => {
|
|
173
|
+
resolve();
|
|
174
|
+
return null;
|
|
175
|
+
},
|
|
176
|
+
});
|
|
177
|
+
const healthDaemon = new HealthDaemon_1.HealthDaemon(daemon, [...this.healthDaemons], "__RUN_UNTIL_SUCCESS", "EXIT_SUCCESS", this.effects);
|
|
178
|
+
const daemons = await new Daemons(this.effects, this.started, [...this.daemons, daemon], this.ids, [...this.healthDaemons, healthDaemon]).build();
|
|
179
|
+
try {
|
|
180
|
+
await res;
|
|
181
|
+
}
|
|
182
|
+
finally {
|
|
183
|
+
await daemons.term();
|
|
184
|
+
}
|
|
185
|
+
return null;
|
|
134
186
|
}
|
|
135
187
|
async term() {
|
|
136
188
|
try {
|
|
137
|
-
this.healthChecks.forEach((health) => health.stop());
|
|
138
189
|
for (let result of await Promise.allSettled(this.healthDaemons.map((x) => x.term()))) {
|
|
139
190
|
if (result.status === "rejected") {
|
|
140
191
|
console.error(result.reason);
|
|
@@ -149,10 +200,7 @@ class Daemons {
|
|
|
149
200
|
for (const daemon of this.healthDaemons) {
|
|
150
201
|
await daemon.init();
|
|
151
202
|
}
|
|
152
|
-
|
|
153
|
-
health.start();
|
|
154
|
-
}
|
|
155
|
-
this.started(() => this.term());
|
|
203
|
+
this.started?.(() => this.term());
|
|
156
204
|
return this;
|
|
157
205
|
}
|
|
158
206
|
}
|