@magda/typescript-common 2.3.3 → 3.0.0-alpha.0
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/dist/AspectBuilder.d.ts +1 -1
- package/dist/AspectBuilder.js +1 -2
- package/dist/AspectCreationFailure.js +3 -4
- package/dist/AspectCreationFailure.js.map +1 -1
- package/dist/AsyncPage.js +59 -79
- package/dist/AsyncPage.js.map +1 -1
- package/dist/BaseApiClient.d.ts +3 -3
- package/dist/BaseApiClient.js +20 -13
- package/dist/BaseApiClient.js.map +1 -1
- package/dist/ConnectionResult.d.ts +2 -2
- package/dist/ConnectionResult.js +17 -22
- package/dist/ConnectionResult.js.map +1 -1
- package/dist/ConnectorRecordId.d.ts +1 -1
- package/dist/ConnectorRecordId.js +9 -13
- package/dist/ConnectorRecordId.js.map +1 -1
- package/dist/IndexerApiClient.d.ts +1 -1
- package/dist/IndexerApiClient.js +13 -32
- package/dist/IndexerApiClient.js.map +1 -1
- package/dist/JsonConnector.d.ts +9 -9
- package/dist/JsonConnector.js +163 -206
- package/dist/JsonConnector.js.map +1 -1
- package/dist/JsonTransformer.d.ts +3 -3
- package/dist/JsonTransformer.js +71 -75
- package/dist/JsonTransformer.js.map +1 -1
- package/dist/OpaCompileResponseParser.d.ts +4 -4
- package/dist/OpaCompileResponseParser.js +278 -211
- package/dist/OpaCompileResponseParser.js.map +1 -1
- package/dist/RecordCreationFailure.d.ts +1 -1
- package/dist/RecordCreationFailure.js +4 -4
- package/dist/RecordCreationFailure.js.map +1 -1
- package/dist/SQLUtils.d.ts +3 -3
- package/dist/SQLUtils.js +139 -195
- package/dist/SQLUtils.js.map +1 -1
- package/dist/ServerError.js +2 -4
- package/dist/ServerError.js.map +1 -1
- package/dist/Try.js +20 -35
- package/dist/Try.js.map +1 -1
- package/dist/addTrailingSlash.js +1 -4
- package/dist/addTrailingSlash.js.map +1 -1
- package/dist/appendUrlSegments.js +3 -8
- package/dist/appendUrlSegments.js.map +1 -1
- package/dist/authorization-api/AccessControlError.d.ts +1 -1
- package/dist/authorization-api/AccessControlError.js +2 -8
- package/dist/authorization-api/AccessControlError.js.map +1 -1
- package/dist/authorization-api/ApiClient.d.ts +3 -3
- package/dist/authorization-api/ApiClient.js +211 -272
- package/dist/authorization-api/ApiClient.js.map +1 -1
- package/dist/authorization-api/AuthError.d.ts +1 -1
- package/dist/authorization-api/AuthError.js +2 -8
- package/dist/authorization-api/AuthError.js.map +1 -1
- package/dist/authorization-api/GenericError.js +2 -4
- package/dist/authorization-api/GenericError.js.map +1 -1
- package/dist/authorization-api/authMiddleware.d.ts +3 -3
- package/dist/authorization-api/authMiddleware.js +19 -40
- package/dist/authorization-api/authMiddleware.js.map +1 -1
- package/dist/authorization-api/constants.js +9 -12
- package/dist/authorization-api/constants.js.map +1 -1
- package/dist/authorization-api/model.d.ts +8 -8
- package/dist/authorization-api/model.js +1 -2
- package/dist/coerceJson.js +1 -3
- package/dist/coerceJson.js.map +1 -1
- package/dist/createNoCacheFetchOptions.d.ts +1 -1
- package/dist/createNoCacheFetchOptions.js +4 -7
- package/dist/createNoCacheFetchOptions.js.map +1 -1
- package/dist/createServiceError.d.ts +1 -1
- package/dist/createServiceError.js +4 -9
- package/dist/createServiceError.js.map +1 -1
- package/dist/delay.js +1 -3
- package/dist/delay.js.map +1 -1
- package/dist/express/getNoCacheHeaders.js +1 -3
- package/dist/express/getNoCacheHeaders.js.map +1 -1
- package/dist/express/setResponseNoCache.d.ts +1 -1
- package/dist/express/setResponseNoCache.js +3 -8
- package/dist/express/setResponseNoCache.js.map +1 -1
- package/dist/express/status.d.ts +14 -15
- package/dist/express/status.js +135 -126
- package/dist/express/status.js.map +1 -1
- package/dist/fetchRequest.d.ts +6 -6
- package/dist/fetchRequest.js +36 -51
- package/dist/fetchRequest.js.map +1 -1
- package/dist/formatServiceError.js +1 -4
- package/dist/formatServiceError.js.map +1 -1
- package/dist/generated/registry/api.d.ts +4 -4
- package/dist/generated/registry/api.js +197 -102
- package/dist/generated/registry/api.js.map +1 -1
- package/dist/getAbsoluteUrl.js +8 -11
- package/dist/getAbsoluteUrl.js.map +1 -1
- package/dist/getBasePathFromUrl.js +3 -9
- package/dist/getBasePathFromUrl.js.map +1 -1
- package/dist/getBoolValWithDefault.js +1 -3
- package/dist/getBoolValWithDefault.js.map +1 -1
- package/dist/getRequest.js +9 -26
- package/dist/getRequest.js.map +1 -1
- package/dist/getRequestNoCache.js +4 -21
- package/dist/getRequestNoCache.js.map +1 -1
- package/dist/getStorageUrl.js +13 -23
- package/dist/getStorageUrl.js.map +1 -1
- package/dist/handleServerError.js +3 -9
- package/dist/handleServerError.js.map +1 -1
- package/dist/markdownToHtml.js +5 -11
- package/dist/markdownToHtml.js.map +1 -1
- package/dist/opa/AspectQuery.js +55 -79
- package/dist/opa/AspectQuery.js.map +1 -1
- package/dist/opa/AuthDecision.d.ts +2 -2
- package/dist/opa/AuthDecision.js +52 -69
- package/dist/opa/AuthDecision.js.map +1 -1
- package/dist/opa/AuthDecisionQueryClient.d.ts +2 -2
- package/dist/opa/AuthDecisionQueryClient.js +72 -102
- package/dist/opa/AuthDecisionQueryClient.js.map +1 -1
- package/dist/pgTypes.js +4 -9
- package/dist/pgTypes.js.map +1 -1
- package/dist/registry/AuthorizedRegistryClient.d.ts +4 -4
- package/dist/registry/AuthorizedRegistryClient.js +52 -92
- package/dist/registry/AuthorizedRegistryClient.js.map +1 -1
- package/dist/registry/RegistryClient.d.ts +2 -2
- package/dist/registry/RegistryClient.js +60 -76
- package/dist/registry/RegistryClient.js.map +1 -1
- package/dist/registry/TenantConsts.js +3 -6
- package/dist/registry/TenantConsts.js.map +1 -1
- package/dist/registry/model.js +1 -2
- package/dist/registry-manual/api.d.ts +1 -1
- package/dist/registry-manual/api.js +18 -7
- package/dist/registry-manual/api.js.map +1 -1
- package/dist/request.d.ts +2 -2
- package/dist/request.js +4 -9
- package/dist/request.js.map +1 -1
- package/dist/retry.d.ts +1 -1
- package/dist/retry.js +3 -9
- package/dist/retry.js.map +1 -1
- package/dist/retryBackoff.js +3 -9
- package/dist/retryBackoff.js.map +1 -1
- package/dist/runLater.js +1 -4
- package/dist/runLater.js.map +1 -1
- package/dist/session/GetUserId.d.ts +2 -2
- package/dist/session/GetUserId.js +10 -16
- package/dist/session/GetUserId.js.map +1 -1
- package/dist/session/GetUserSession.d.ts +1 -1
- package/dist/session/GetUserSession.js +6 -10
- package/dist/session/GetUserSession.js.map +1 -1
- package/dist/session/addJwtSecretFromEnvVar.js +1 -4
- package/dist/session/addJwtSecretFromEnvVar.js.map +1 -1
- package/dist/session/buildJwt.d.ts +1 -1
- package/dist/session/buildJwt.js +2 -5
- package/dist/session/buildJwt.js.map +1 -1
- package/dist/session/buildJwtFromReq.d.ts +1 -1
- package/dist/session/buildJwtFromReq.js +3 -8
- package/dist/session/buildJwtFromReq.js.map +1 -1
- package/dist/session/cookieUtils.d.ts +2 -13
- package/dist/session/cookieUtils.js +8 -9
- package/dist/session/cookieUtils.js.map +1 -1
- package/dist/session/destroySession.js +18 -33
- package/dist/session/destroySession.js.map +1 -1
- package/dist/session/getSessionId.js +5 -11
- package/dist/session/getSessionId.js.map +1 -1
- package/dist/tenant-api/AuthorizedTenantClient.d.ts +1 -1
- package/dist/tenant-api/AuthorizedTenantClient.js +22 -36
- package/dist/tenant-api/AuthorizedTenantClient.js.map +1 -1
- package/dist/tenant-api/Tenant.js +13 -5
- package/dist/tenant-api/Tenant.js.map +1 -1
- package/dist/test/JsonConnector.spec.js +56 -61
- package/dist/test/JsonConnector.spec.js.map +1 -1
- package/dist/test/JsonTransformer.spec.js +15 -19
- package/dist/test/JsonTransformer.spec.js.map +1 -1
- package/dist/test/arbitraries.d.ts +21 -21
- package/dist/test/arbitraries.js +85 -99
- package/dist/test/arbitraries.js.map +1 -1
- package/dist/test/aspect-templates/organization-details.d.ts +1 -4
- package/dist/test/aspect-templates/organization-details.js +1 -1
- package/dist/test/aspect-templates/organization-details.js.map +1 -1
- package/dist/test/buildApiClient.spec.js +81 -107
- package/dist/test/buildApiClient.spec.js.map +1 -1
- package/dist/test/buildAuthorizedTenantClient.spec.js +25 -40
- package/dist/test/buildAuthorizedTenantClient.spec.js.map +1 -1
- package/dist/test/connectors/MockExpressServer.js +9 -23
- package/dist/test/connectors/MockExpressServer.js.map +1 -1
- package/dist/test/connectors/MockRegistry.d.ts +1 -1
- package/dist/test/connectors/MockRegistry.js +11 -18
- package/dist/test/connectors/MockRegistry.js.map +1 -1
- package/dist/test/connectors/runConnectorTest.js +33 -55
- package/dist/test/connectors/runConnectorTest.js.map +1 -1
- package/dist/test/createMockAuthDecisionQueryClient.d.ts +4 -4
- package/dist/test/createMockAuthDecisionQueryClient.js +4 -9
- package/dist/test/createMockAuthDecisionQueryClient.js.map +1 -1
- package/dist/test/db/getTestDBConfig.js +1 -3
- package/dist/test/db/getTestDBConfig.js.map +1 -1
- package/dist/test/db/runMigrationSql.js +37 -58
- package/dist/test/db/runMigrationSql.js.map +1 -1
- package/dist/test/express/status.spec.js +81 -72
- package/dist/test/express/status.spec.js.map +1 -1
- package/dist/test/fakeArgv.js +6 -5
- package/dist/test/fakeArgv.js.map +1 -1
- package/dist/test/getBasePathFromUrl.spec.js +5 -10
- package/dist/test/getBasePathFromUrl.spec.js.map +1 -1
- package/dist/test/getStorageUrl.spec.js +22 -46
- package/dist/test/getStorageUrl.spec.js.map +1 -1
- package/dist/test/mockAuthApiHost.js +26 -28
- package/dist/test/mockAuthApiHost.js.map +1 -1
- package/dist/test/mockAuthorization.js +4 -10
- package/dist/test/mockAuthorization.js.map +1 -1
- package/dist/test/mockTenantDataStore.d.ts +1 -1
- package/dist/test/mockTenantDataStore.js +3 -5
- package/dist/test/mockTenantDataStore.js.map +1 -1
- package/dist/test/mockUserDataStore.d.ts +1 -1
- package/dist/test/mockUserDataStore.js +4 -6
- package/dist/test/mockUserDataStore.js.map +1 -1
- package/dist/test/registry/buildAuthorizedClient.spec.js +65 -87
- package/dist/test/registry/buildAuthorizedClient.spec.js.map +1 -1
- package/dist/test/session/buildJwt.spec.js +15 -19
- package/dist/test/session/buildJwt.spec.js.map +1 -1
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsAndOwnerTest.spec.js +6 -11
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsAndOwnerTest.spec.js.map +1 -1
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsTest.spec.js +6 -11
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsTest.spec.js.map +1 -1
- package/dist/test/session/buildJwtForRegistryEsriOpaOwnerTest.spec.js +6 -11
- package/dist/test/session/buildJwtForRegistryEsriOpaOwnerTest.spec.js.map +1 -1
- package/dist/test/testAsyncPage.spec.js +84 -105
- package/dist/test/testAsyncPage.spec.js.map +1 -1
- package/dist/test/testOpaCompileResponseParser.spec.js +192 -196
- package/dist/test/testOpaCompileResponseParser.spec.js.map +1 -1
- package/dist/test/util.js +1 -5
- package/dist/test/util.js.map +1 -1
- package/dist/unknown2Error.d.ts +2 -0
- package/dist/unknown2Error.js +3 -0
- package/dist/unknown2Error.js.map +1 -0
- package/dist/util/arrayToMaybe.d.ts +1 -1
- package/dist/util/arrayToMaybe.js +3 -6
- package/dist/util/arrayToMaybe.js.map +1 -1
- package/dist/util/cleanOrgTitle.js +1 -4
- package/dist/util/cleanOrgTitle.js.map +1 -1
- package/dist/util/escapeRegExp.js +1 -3
- package/dist/util/escapeRegExp.js.map +1 -1
- package/dist/util/getMinikubeIP.js +3 -9
- package/dist/util/getMinikubeIP.js.map +1 -1
- package/dist/util/isArray.js +1 -3
- package/dist/util/isArray.js.map +1 -1
- package/dist/util/isUuid.js +1 -3
- package/dist/util/isUuid.js.map +1 -1
- package/dist/util/unionToThrowable.d.ts +1 -1
- package/dist/util/unionToThrowable.js +3 -9
- package/dist/util/unionToThrowable.js.map +1 -1
- package/dist/utilityTypes.d.ts +1 -1
- package/dist/utilityTypes.js +1 -2
- package/package.json +44 -26
- package/dist/test/jsverify.d.ts +0 -2
- package/dist/test/jsverify.js +0 -8
- package/dist/test/jsverify.js.map +0 -1
package/dist/express/status.js
CHANGED
|
@@ -1,22 +1,81 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { Router } from "express";
|
|
2
|
+
import request from "request";
|
|
3
|
+
import callerPath from "caller-path";
|
|
4
|
+
/**
|
|
5
|
+
* Store all probe information in a global variable
|
|
6
|
+
* All probe will be referenced with a unique key.
|
|
7
|
+
* This key will by default auto generated.
|
|
8
|
+
*/
|
|
9
|
+
const probeDB = {};
|
|
10
|
+
const getInitialState = () => ({
|
|
11
|
+
ready: false,
|
|
12
|
+
since: new Date().toISOString(),
|
|
13
|
+
last: new Date().toISOString(),
|
|
14
|
+
details: {},
|
|
15
|
+
latencyMs: 0
|
|
16
|
+
});
|
|
17
|
+
const noopProbe = async () => Promise.resolve({ ...getInitialState(), ready: true });
|
|
18
|
+
function probeList2ProbeCheckingTask(list, key) {
|
|
19
|
+
const probeData = probeDB[key];
|
|
20
|
+
if (!list || !Object.keys(list).length) {
|
|
21
|
+
return async () => {
|
|
22
|
+
probeData.state = await noopProbe();
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
const probeTasks = Object.entries(list).map(([probeKey, probe]) => async () => {
|
|
26
|
+
try {
|
|
27
|
+
const startMs = Date.now();
|
|
28
|
+
const previousState = probeData.state.details?.[probeKey];
|
|
29
|
+
let nextState = getInitialState();
|
|
30
|
+
try {
|
|
31
|
+
const stateData = await probe();
|
|
32
|
+
if (stateData && typeof stateData === "object") {
|
|
33
|
+
nextState = { ...nextState, ...stateData };
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
nextState.ready = true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
// lets not spam console with the same error message
|
|
41
|
+
// report if error message changed
|
|
42
|
+
if (previousState?.error !== `${e}`) {
|
|
43
|
+
console.error("ERROR", probeKey, e);
|
|
44
|
+
nextState.error = `${e}`;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
nextState.latencyMs = Date.now() - startMs;
|
|
48
|
+
nextState.last = new Date().toISOString();
|
|
49
|
+
// report if status changed
|
|
50
|
+
if (nextState.ready !== previousState?.ready) {
|
|
51
|
+
nextState.since = new Date(startMs).toISOString();
|
|
52
|
+
console.log("STATUS", probeKey, "is", nextState.ready ? "up" : "down", "on", nextState.since);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
nextState.since = previousState.since;
|
|
56
|
+
}
|
|
57
|
+
// we want to report internal details
|
|
58
|
+
probeData.state.details[probeKey] = nextState;
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
console.error("ERROR", probeKey, e);
|
|
62
|
+
}
|
|
9
63
|
});
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
64
|
+
return async () => {
|
|
65
|
+
await Promise.all(probeTasks.map((task) => task()));
|
|
66
|
+
// update overall probe state
|
|
67
|
+
if (Object.values(probeData.state.details).findIndex((state) => !state?.ready) === -1) {
|
|
68
|
+
probeData.state.ready = true;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
probeData.state.ready = false;
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}
|
|
15
75
|
// In case anyone is confused, this does not duplicate or replace kubernetes functionality
|
|
16
76
|
// It just makes service and dependency status visible to everyone
|
|
17
|
-
function createStatusRouter(
|
|
18
|
-
const router =
|
|
19
|
-
installUpdater(options);
|
|
77
|
+
function createStatusRouter(key) {
|
|
78
|
+
const router = Router();
|
|
20
79
|
// we don't want to cache status
|
|
21
80
|
router.use(function (req, res, next) {
|
|
22
81
|
res.set("Cache-Control", "no-cache");
|
|
@@ -29,132 +88,82 @@ function createStatusRouter(options = {}) {
|
|
|
29
88
|
// readiness probe for knowing if service and its dependents are
|
|
30
89
|
// ready to go
|
|
31
90
|
router.get("/ready", function (req, res) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
91
|
+
const probeItem = probeDB[key];
|
|
92
|
+
res.status(probeItem.state.ready ? 200 : 500).json({
|
|
93
|
+
ready: probeItem.state.ready,
|
|
94
|
+
since: probeItem.state.since,
|
|
95
|
+
last: probeItem.state.last,
|
|
96
|
+
details: probeItem.state.details,
|
|
37
97
|
now: new Date().toISOString()
|
|
38
98
|
});
|
|
39
99
|
});
|
|
40
100
|
// added this for diagnosing service state based on latency in kubernetes
|
|
41
|
-
router.get("/readySync", function (req, res) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
});
|
|
101
|
+
router.get("/readySync", async function (req, res) {
|
|
102
|
+
const probeItem = probeDB[key];
|
|
103
|
+
await probeItem?.allProbesChecking?.();
|
|
104
|
+
res.status(probeItem.state.ready ? 200 : 500).json({
|
|
105
|
+
ready: probeItem.state.ready,
|
|
106
|
+
since: probeItem.state.since,
|
|
107
|
+
last: probeItem.state.last,
|
|
108
|
+
details: probeItem.state.details,
|
|
109
|
+
now: new Date().toISOString()
|
|
51
110
|
});
|
|
52
111
|
});
|
|
53
112
|
return router;
|
|
54
113
|
}
|
|
55
|
-
exports.createStatusRouter = createStatusRouter;
|
|
56
114
|
function installUpdater(options) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
options.ready = !options.probes;
|
|
61
|
-
options.probeUpdateMs = options.probeUpdateMs || 10000;
|
|
62
|
-
options.details = {};
|
|
63
|
-
options.since = new Date().toISOString();
|
|
64
|
-
options._installed = {};
|
|
65
|
-
options._probes = {};
|
|
66
|
-
}
|
|
67
|
-
if (!options.probes || !Object.keys(options.probes).length) {
|
|
68
|
-
// when no probes, readiness probe will behave like the liveness probe
|
|
69
|
-
options.ready = true;
|
|
70
|
-
options.since = options.last = new Date().toISOString();
|
|
71
|
-
options.details = {};
|
|
72
|
-
return;
|
|
115
|
+
const { key } = options;
|
|
116
|
+
if (!key) {
|
|
117
|
+
throw new Error("key is required");
|
|
73
118
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const startMs = Date.now();
|
|
82
|
-
let previousState = options.details[id];
|
|
83
|
-
let nextState = {
|
|
84
|
-
ready: false
|
|
85
|
-
};
|
|
86
|
-
// update probe state
|
|
87
|
-
try {
|
|
88
|
-
nextState = yield callback();
|
|
89
|
-
}
|
|
90
|
-
catch (e) {
|
|
91
|
-
// lets not spam console with the same error message
|
|
92
|
-
// report if error message changed
|
|
93
|
-
if (!previousState || previousState.error !== e.message) {
|
|
94
|
-
console.error("ERROR", id, e.stack);
|
|
95
|
-
nextState.error = e.message;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
// --- Note: typeof null === "object"
|
|
99
|
-
if (!nextState || typeof nextState !== "object") {
|
|
100
|
-
nextState = {
|
|
101
|
-
ready: false
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
nextState.latencyMs = Date.now() - startMs;
|
|
105
|
-
options.last = nextState.last = new Date().toISOString();
|
|
106
|
-
// report if status changed
|
|
107
|
-
if (!previousState || nextState.ready !== previousState.ready) {
|
|
108
|
-
nextState.since = new Date(startMs).toISOString();
|
|
109
|
-
console.log("STATUS", id, "is", nextState.ready ? "up" : "down", "on", nextState.since);
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
nextState.since = previousState.since;
|
|
113
|
-
}
|
|
114
|
-
// we want to report internal details
|
|
115
|
-
options.details[id] = nextState;
|
|
116
|
-
// update global state
|
|
117
|
-
let isReady = true;
|
|
118
|
-
for (const oid of Object.keys(options.probes)) {
|
|
119
|
-
isReady =
|
|
120
|
-
isReady &&
|
|
121
|
-
options.details[oid] &&
|
|
122
|
-
options.details[oid].ready;
|
|
123
|
-
}
|
|
124
|
-
options.ready = isReady;
|
|
125
|
-
}
|
|
126
|
-
catch (e) {
|
|
127
|
-
console.error("ERROR", id, e.stack);
|
|
128
|
-
}
|
|
129
|
-
if (!dontUpdate) {
|
|
130
|
-
setTimeout(update, options.probeUpdateMs).unref();
|
|
131
|
-
}
|
|
132
|
-
});
|
|
119
|
+
const hasNoProbeTasks = !options?.probes || Object.keys(options.probes).length === 0;
|
|
120
|
+
probeDB[key] = {
|
|
121
|
+
key,
|
|
122
|
+
config: { probeUpdateMs: 10000, ...options },
|
|
123
|
+
state: {
|
|
124
|
+
...getInitialState(),
|
|
125
|
+
ready: hasNoProbeTasks ? true : false
|
|
133
126
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
}
|
|
140
|
-
options._probes[id] = update.bind(null, true);
|
|
141
|
-
options._installed[id] = true;
|
|
127
|
+
};
|
|
128
|
+
const allProbesCheckingTask = probeList2ProbeCheckingTask(options?.probes, key);
|
|
129
|
+
const allProbesCheckingFunc = async () => {
|
|
130
|
+
if (probeDB[key]?.allProbesChecking !== allProbesCheckingTask) {
|
|
131
|
+
return;
|
|
142
132
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
133
|
+
await allProbesCheckingTask();
|
|
134
|
+
// .unref() make sure the timer will not block the process from exiting
|
|
135
|
+
setTimeout(allProbesCheckingFunc, probeDB[key].config.probeUpdateMs).unref();
|
|
136
|
+
};
|
|
137
|
+
// should save allProbesCheckingTask rather than allProbesCheckingFunc
|
|
138
|
+
// as allProbesCheckingFunc include the `setTimeout` logic
|
|
139
|
+
probeDB[key].allProbesChecking = allProbesCheckingTask;
|
|
140
|
+
// let's not bother running this inside test cases
|
|
141
|
+
const isInTest = typeof it === "function";
|
|
142
|
+
if (!hasNoProbeTasks) {
|
|
143
|
+
if (!isInTest || options?.forceRun) {
|
|
144
|
+
setTimeout(allProbesCheckingFunc, probeDB[key].config.probeUpdateMs).unref();
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
// when the probe not run (e.g. in test cases) to make sure set it as true initially
|
|
148
|
+
probeDB[key].state.ready = true;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return probeDB[key];
|
|
146
152
|
}
|
|
147
|
-
function installStatusRouter(app, options = {}, routePrefix = "") {
|
|
148
|
-
|
|
153
|
+
export function installStatusRouter(app, options = {}, routePrefix = "") {
|
|
154
|
+
options.key = options?.key
|
|
155
|
+
? options?.key
|
|
156
|
+
: callerPath() + routePrefix + "/status";
|
|
157
|
+
installUpdater(options);
|
|
158
|
+
const statusRouter = createStatusRouter(options.key);
|
|
159
|
+
app.use(routePrefix + "/status", statusRouter);
|
|
149
160
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
const data = yield requestPromise("GET", `${url}${statusLocation}`);
|
|
161
|
+
export function createServiceProbe(url, statusLocation = "/status/ready") {
|
|
162
|
+
return async () => {
|
|
163
|
+
const data = await requestPromise("GET", `${url}${statusLocation}`);
|
|
154
164
|
return data;
|
|
155
|
-
}
|
|
165
|
+
};
|
|
156
166
|
}
|
|
157
|
-
exports.createServiceProbe = createServiceProbe;
|
|
158
167
|
function requestPromise(method, url) {
|
|
159
168
|
return new Promise((resolve, reject) => {
|
|
160
169
|
request({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/express/status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/express/status.ts"],"names":[],"mappings":"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"}
|
package/dist/fetchRequest.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
type RequestContentTypeJson = "application/json";
|
|
2
|
+
type RequestContentTypePlainText = "text/plain";
|
|
3
|
+
type RequestContentTypeForm = "application/x-www-form-urlencoded";
|
|
4
|
+
type RequestContentTypeBinary = "application/octet-stream";
|
|
5
|
+
type RequestContentTypeMultipartForm = "multipart/form-data";
|
|
6
|
+
type RequestContentType = RequestContentTypeJson | RequestContentTypePlainText | RequestContentTypeForm | RequestContentTypeBinary | RequestContentTypeMultipartForm;
|
|
7
7
|
export declare function setDefaultRequestInitOptions(options: RequestInit): void;
|
|
8
8
|
export declare function getDefaultRequestInitOptions(): RequestInit;
|
|
9
9
|
export default function fetchRequest<T = any, CT = string>(method: string, url: string, body?: any, contentType?: CT | RequestContentType | undefined | null, returnHeaders?: false, extraRequestOptions?: RequestInit): Promise<T>;
|
package/dist/fetchRequest.js
CHANGED
|
@@ -1,62 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.getDefaultRequestInitOptions = exports.setDefaultRequestInitOptions = void 0;
|
|
16
|
-
const isomorphic_fetch_1 = __importDefault(require("isomorphic-fetch"));
|
|
17
|
-
const merge_1 = __importDefault(require("lodash/merge"));
|
|
18
|
-
const ServerError_1 = __importDefault(require("./ServerError"));
|
|
1
|
+
import fetch from "cross-fetch";
|
|
2
|
+
import merge from "lodash/merge.js";
|
|
3
|
+
import ServerError from "./ServerError.js";
|
|
19
4
|
let defaultRequestInitOptions = {};
|
|
20
|
-
function setDefaultRequestInitOptions(options) {
|
|
5
|
+
export function setDefaultRequestInitOptions(options) {
|
|
21
6
|
defaultRequestInitOptions = options;
|
|
22
7
|
}
|
|
23
|
-
|
|
24
|
-
function getDefaultRequestInitOptions() {
|
|
8
|
+
export function getDefaultRequestInitOptions() {
|
|
25
9
|
return defaultRequestInitOptions;
|
|
26
10
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
11
|
+
export default async function fetchRequest(method, url, body = undefined, contentType = "application/json", returnHeaders = false, extraRequestOptions = {}) {
|
|
12
|
+
const defaultOptions = {
|
|
13
|
+
...(defaultRequestInitOptions ? defaultRequestInitOptions : {})
|
|
14
|
+
};
|
|
15
|
+
const fetchOptions = merge(defaultOptions, {
|
|
16
|
+
method,
|
|
17
|
+
...extraRequestOptions
|
|
18
|
+
});
|
|
19
|
+
if (body !== undefined) {
|
|
20
|
+
if (contentType === "application/json") {
|
|
21
|
+
fetchOptions.body = JSON.stringify(body);
|
|
22
|
+
fetchOptions.headers = {
|
|
23
|
+
"Content-type": "application/json"
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
fetchOptions.body = body;
|
|
28
|
+
if (typeof contentType === "string") {
|
|
35
29
|
fetchOptions.headers = {
|
|
36
|
-
"Content-type":
|
|
30
|
+
"Content-type": contentType
|
|
37
31
|
};
|
|
38
32
|
}
|
|
39
|
-
else {
|
|
40
|
-
fetchOptions.body = body;
|
|
41
|
-
if (typeof contentType === "string") {
|
|
42
|
-
fetchOptions.headers = {
|
|
43
|
-
"Content-type": contentType
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
const response = yield isomorphic_fetch_1.default(url, fetchOptions);
|
|
49
|
-
if (response.status >= 200 && response.status < 300) {
|
|
50
|
-
// wrapping this in try/catch as the request succeeded
|
|
51
|
-
// this is just haggling over response content
|
|
52
|
-
return returnHeaders
|
|
53
|
-
? [(yield response.json()), response.headers]
|
|
54
|
-
: (yield response.json());
|
|
55
33
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
34
|
+
}
|
|
35
|
+
const response = await fetch(url, fetchOptions);
|
|
36
|
+
if (response.status >= 200 && response.status < 300) {
|
|
37
|
+
// wrapping this in try/catch as the request succeeded
|
|
38
|
+
// this is just haggling over response content
|
|
39
|
+
return returnHeaders
|
|
40
|
+
? [(await response.json()), response.headers]
|
|
41
|
+
: (await response.json());
|
|
42
|
+
}
|
|
43
|
+
// --- get responseText and remove any HTML tags
|
|
44
|
+
const responseText = (await response.text()).replace(/<(.|\n)*?>/g, "");
|
|
45
|
+
throw new ServerError(responseText, response.status);
|
|
60
46
|
}
|
|
61
|
-
exports.default = fetchRequest;
|
|
62
47
|
//# sourceMappingURL=fetchRequest.js.map
|
package/dist/fetchRequest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchRequest.js","sourceRoot":"","sources":["../src/fetchRequest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetchRequest.js","sourceRoot":"","sources":["../src/fetchRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAe3C,IAAI,yBAAyB,GAAgB,EAAE,CAAC;AAEhD,MAAM,UAAU,4BAA4B,CAAC,OAAoB;IAC7D,yBAAyB,GAAG,OAAO,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,4BAA4B;IACxC,OAAO,yBAAyB,CAAC;AACrC,CAAC;AAoBD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,YAAY,CACtC,MAAc,EACd,GAAW,EACX,OAAY,SAAS,EACrB,cAIa,kBAAkB,EAC/B,gBAAyB,KAAK,EAC9B,sBAAmC,EAAE;IAErC,MAAM,cAAc,GAAG;QACnB,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC;IACF,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,EAAE;QACvC,MAAM;QACN,GAAG,mBAAmB;KACzB,CAAC,CAAC;IACH,IAAI,IAAI,KAAK,SAAS,EAAE;QACpB,IAAI,WAAW,KAAK,kBAAkB,EAAE;YACpC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACzC,YAAY,CAAC,OAAO,GAAG;gBACnB,cAAc,EAAE,kBAAkB;aACrC,CAAC;SACL;aAAM;YACH,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;YACzB,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;gBACjC,YAAY,CAAC,OAAO,GAAG;oBACnB,cAAc,EAAE,WAAW;iBAC9B,CAAC;aACL;SACJ;KACJ;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAEhD,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE;QACjD,sDAAsD;QACtD,8CAA8C;QAC9C,OAAO,aAAa;YAChB,CAAC,CAAE,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,EAAE,QAAQ,CAAC,OAAO,CAAkB;YACpE,CAAC,CAAE,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAO,CAAC;KACxC;IACD,gDAAgD;IAChD,MAAM,YAAY,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACxE,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
function formatServiceError(baseMessage, e, retriesLeft) {
|
|
1
|
+
export default function formatServiceError(baseMessage, e, retriesLeft) {
|
|
4
2
|
let messageParts = [baseMessage];
|
|
5
3
|
if (retriesLeft) {
|
|
6
4
|
messageParts.push(`${retriesLeft} retries left.`);
|
|
@@ -19,5 +17,4 @@ function formatServiceError(baseMessage, e, retriesLeft) {
|
|
|
19
17
|
}
|
|
20
18
|
return messageParts.join(" ");
|
|
21
19
|
}
|
|
22
|
-
exports.default = formatServiceError;
|
|
23
20
|
//# sourceMappingURL=formatServiceError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatServiceError.js","sourceRoot":"","sources":["../src/formatServiceError.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"formatServiceError.js","sourceRoot":"","sources":["../src/formatServiceError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACtC,WAAmB,EACnB,CAAM,EACN,WAAmB;IAEnB,IAAI,YAAY,GAAG,CAAC,WAAW,CAAC,CAAC;IACjC,IAAI,WAAW,EAAE;QACb,YAAY,CAAC,IAAI,CAAC,GAAG,WAAW,gBAAgB,CAAC,CAAC;KACrD;IACD,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,EAAE;QACpD,YAAY,CAAC,IAAI,CACb,gBAAgB,CAAC,CAAC,QAAQ,CAAC,UAAU,YAAY,IAAI,CAAC,SAAS,CAC3D,CAAC,CAAC,IAAI,EACN,IAAI,EACJ,IAAI,CACP,EAAE,CACN,CAAC;KACL;SAAM,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,EAAE;QAChC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;KACpD;SAAM,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC5C,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;KAClD;SAAM,IAAI,CAAC,EAAE;QACV,YAAY,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;KACnE;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* https://github.com/swagger-api/swagger-codegen.git
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
|
-
/// <reference types="node" />
|
|
13
|
-
import request
|
|
14
|
-
import http
|
|
12
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
13
|
+
import request from 'request';
|
|
14
|
+
import http from 'node:http';
|
|
15
15
|
export declare class ApiError {
|
|
16
16
|
'message': string;
|
|
17
17
|
}
|
|
@@ -46,7 +46,7 @@ export declare class DeleteResult {
|
|
|
46
46
|
/**
|
|
47
47
|
* The type of a registry modification event.
|
|
48
48
|
*/
|
|
49
|
-
export
|
|
49
|
+
export type EventType = 'CreateRecord' | 'CreateAspectDefinition' | 'CreateRecordAspect' | 'PatchRecord' | 'PatchAspectDefinition' | 'PatchRecordAspect' | 'DeleteRecord' | 'DeleteAspectDefinition' | 'DeleteRecordAspect';
|
|
50
50
|
/**
|
|
51
51
|
* A page of events.
|
|
52
52
|
*/
|