@global-cache/core 0.4.0 → 0.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"setter.d.ts","sourceRoot":"","sources":["../../src/server/setter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEtE,qBAAa,MAAM;IAEf,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,iBAAiB;gBADjB,cAAc,EAAE,eAAe,EAC/B,iBAAiB,EAAE,kBAAkB;IAIzC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;CAwBlF"}
1
+ {"version":3,"file":"setter.d.ts","sourceRoot":"","sources":["../../src/server/setter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEtE,qBAAa,MAAM;IAEf,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,iBAAiB;gBADjB,cAAc,EAAE,eAAe,EAC/B,iBAAiB,EAAE,kBAAkB;IAIzC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;CA0BlF"}
@@ -15,7 +15,7 @@ class Setter {
15
15
  throw new Error(`Cannot set value for key "${key}" that is not loaded.`);
16
16
  }
17
17
  if (valueInfo.state !== 'computing') {
18
- throw new Error(`Cannot set value for key "${key}" that is not in "computing" state.`);
18
+ throw new Error(`Cannot set value for key "${key}" that is not in "computing" state (${valueInfo.state}).`);
19
19
  }
20
20
  if (error) {
21
21
  (0, value_info_1.setError)(valueInfo, error);
@@ -1 +1 @@
1
- {"version":3,"file":"setter.js","sourceRoot":"","sources":["../../src/server/setter.ts"],"names":[],"mappings":";;;AAAA,qDAA6D;AAG7D,MAAa,MAAM;IACjB,YACU,cAA+B,EAC/B,iBAAqC;QADrC,mBAAc,GAAd,cAAc,CAAiB;QAC/B,sBAAiB,GAAjB,iBAAiB,CAAoB;IAC5C,CAAC;IAEJ,6DAA6D;IAC7D,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAoD;QAC/E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEtD,6BAA6B;QAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,uBAAuB,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,SAAS,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,qCAAqC,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,IAAA,qBAAQ,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC3B,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,yEAAyE;YACzE,IAAI,SAAS,CAAC,UAAU;gBAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,IAAA,wBAAW,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC9B,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,IAAI,SAAS,CAAC,UAAU;gBAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA/BD,wBA+BC"}
1
+ {"version":3,"file":"setter.js","sourceRoot":"","sources":["../../src/server/setter.ts"],"names":[],"mappings":";;;AAAA,qDAA6D;AAG7D,MAAa,MAAM;IACjB,YACU,cAA+B,EAC/B,iBAAqC;QADrC,mBAAc,GAAd,cAAc,CAAiB;QAC/B,sBAAiB,GAAjB,iBAAiB,CAAoB;IAC5C,CAAC;IAEJ,6DAA6D;IAC7D,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAoD;QAC/E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEtD,6BAA6B;QAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,uBAAuB,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,SAAS,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,6BAA6B,GAAG,uCAAuC,SAAS,CAAC,KAAK,IAAI,CAC3F,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,IAAA,qBAAQ,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC3B,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,yEAAyE;YACzE,IAAI,SAAS,CAAC,UAAU;gBAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,IAAA,wBAAW,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC9B,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,IAAI,SAAS,CAAC,UAAU;gBAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAjCD,wBAiCC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@global-cache/core",
3
3
  "description": "Key-value cache for sharing data between parallel workers.",
4
- "version": "0.4.0",
4
+ "version": "0.4.1",
5
5
  "type": "commonjs",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -17,6 +17,10 @@
17
17
  ]
18
18
  }
19
19
  },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/vitalets/global-cache.git"
23
+ },
20
24
  "engines": {
21
25
  "node": ">=20"
22
26
  },
@@ -27,10 +31,10 @@
27
31
  ],
28
32
  "dependencies": {
29
33
  "@types/debug": "^4.1.12",
30
- "@types/express": "^5.0.3",
34
+ "@types/express": "^5.0.6",
31
35
  "@types/ms": "^2.1.0",
32
- "debug": "^4.4.1",
33
- "express": "^5.1.0",
36
+ "debug": "^4.4.3",
37
+ "express": "^5.2.1",
34
38
  "ms": "^2.1.3"
35
39
  },
36
40
  "publishConfig": {
@@ -16,7 +16,9 @@ export class Setter {
16
16
  throw new Error(`Cannot set value for key "${key}" that is not loaded.`);
17
17
  }
18
18
  if (valueInfo.state !== 'computing') {
19
- throw new Error(`Cannot set value for key "${key}" that is not in "computing" state.`);
19
+ throw new Error(
20
+ `Cannot set value for key "${key}" that is not in "computing" state (${valueInfo.state}).`,
21
+ );
20
22
  }
21
23
 
22
24
  if (error) {
@@ -1,14 +0,0 @@
1
- /**
2
- * Simple http client for json payloads.
3
- */
4
- export type QueryParams<T extends Record<string, unknown>> = {
5
- [K in keyof T]: string;
6
- };
7
- export declare class HttpJson {
8
- private baseUrl;
9
- constructor(baseUrl: string);
10
- get(pathname: string, query?: Record<string, string>): Promise<Response>;
11
- post(pathname: string, bodyObj?: Record<string, unknown>): Promise<Response>;
12
- buildUrl(pathname: string, query?: Record<string, string>): string;
13
- }
14
- //# sourceMappingURL=http-json.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-json.d.ts","sourceRoot":"","sources":["../../../src/client/utils/http-json.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;KAC1D,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;CACvB,CAAC;AAEF,qBAAa,QAAQ;IACP,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,MAAM;IAE7B,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAKpD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAM9D,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAK1D"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- /**
3
- * Simple http client for json payloads.
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.HttpJson = void 0;
7
- const http_query_1 = require("./http-query");
8
- const headers = { 'Content-Type': 'application/json' };
9
- class HttpJson {
10
- constructor(baseUrl) {
11
- this.baseUrl = baseUrl;
12
- }
13
- async get(pathname, query) {
14
- const url = this.buildUrl(pathname, query);
15
- return fetch(url, { method: 'GET', headers });
16
- }
17
- async post(pathname, bodyObj) {
18
- const url = this.buildUrl(pathname);
19
- const body = bodyObj ? JSON.stringify(bodyObj) : undefined;
20
- return fetch(url, { method: 'POST', headers, body });
21
- }
22
- buildUrl(pathname, query) {
23
- const url = new URL(pathname, this.baseUrl);
24
- (0, http_query_1.addSearchParams)(url, query);
25
- return url.toString();
26
- }
27
- }
28
- exports.HttpJson = HttpJson;
29
- //# sourceMappingURL=http-json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-json.js","sourceRoot":"","sources":["../../../src/client/utils/http-json.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,6CAA+C;AAE/C,MAAM,OAAO,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;AAMvD,MAAa,QAAQ;IACnB,YAAoB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAEvC,KAAK,CAAC,GAAG,CAAC,QAAgB,EAAE,KAA8B;QACxD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,OAAiC;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,QAAQ,CAAC,QAAgB,EAAE,KAA8B;QACvD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAA,4BAAe,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5B,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;CACF;AAnBD,4BAmBC"}
package/dist/config.d.ts DELETED
@@ -1,30 +0,0 @@
1
- export type GlobalCacheConfig = {
2
- ignoreTTL?: boolean;
3
- basePath?: string;
4
- disabled?: boolean;
5
- serverUrl?: string;
6
- };
7
- type GlobalConfigInternal = GlobalCacheConfig & {
8
- runId?: string;
9
- localServerUrl?: string;
10
- };
11
- export declare class GlobalConfig {
12
- private config;
13
- constructor();
14
- update(config: Partial<GlobalConfigInternal>): void;
15
- /**
16
- * Generate new runId or re-use from env variable.
17
- * There can be multiple test runs within single server session.
18
- */
19
- newTestRun(): void;
20
- get localServerUrl(): string | undefined;
21
- get externalServerUrl(): string | undefined;
22
- get serverUrl(): string | undefined;
23
- get ignoreTTL(): boolean;
24
- get basePath(): string | undefined;
25
- get disabled(): boolean;
26
- get runId(): string;
27
- }
28
- export declare const globalConfig: GlobalConfig;
29
- export {};
30
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,iBAAiB,GAAG;IAE9B,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,oBAAoB,GAAG,iBAAiB,GAAG;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA4B;;IAO1C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAK5C;;;OAGG;IACH,UAAU;IAIV,IAAI,cAAc,uBAEjB;IAED,IAAI,iBAAiB,uBAEpB;IAED,IAAI,SAAS,uBAEZ;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,QAAQ,uBAEX;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,KAAK,WAIR;CACF;AAYD,eAAO,MAAM,YAAY,cAAqB,CAAC"}
package/dist/config.js DELETED
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.globalConfig = exports.GlobalConfig = void 0;
4
- /**
5
- * Global config is shared across host and all workers via env variables.
6
- * Assumption here is that all runners start workers with the same env.
7
- */
8
- const node_crypto_1 = require("node:crypto");
9
- const object_1 = require("./shared/utils/object");
10
- class GlobalConfig {
11
- constructor() {
12
- this.config = {};
13
- Object.assign(this.config, getConfigFromEnv());
14
- if (!this.config.runId)
15
- this.newTestRun();
16
- }
17
- update(config) {
18
- Object.assign(this.config, (0, object_1.removeUndefined)(config));
19
- saveConfigToEnv(this.config);
20
- }
21
- /**
22
- * Generate new runId or re-use from env variable.
23
- * There can be multiple test runs within single server session.
24
- */
25
- newTestRun() {
26
- this.update({ runId: process.env.GLOBAL_CACHE_RUN_ID || (0, node_crypto_1.randomUUID)() });
27
- }
28
- get localServerUrl() {
29
- return this.config.localServerUrl;
30
- }
31
- get externalServerUrl() {
32
- return this.config.serverUrl;
33
- }
34
- get serverUrl() {
35
- return this.externalServerUrl || this.localServerUrl;
36
- }
37
- get ignoreTTL() {
38
- return Boolean(this.config.ignoreTTL);
39
- }
40
- get basePath() {
41
- return this.config.basePath;
42
- }
43
- get disabled() {
44
- return Boolean(this.config.disabled);
45
- }
46
- get runId() {
47
- const { runId } = this.config;
48
- if (!runId)
49
- throw new Error('RunId is not set.');
50
- return runId;
51
- }
52
- }
53
- exports.GlobalConfig = GlobalConfig;
54
- function getConfigFromEnv() {
55
- const configFromEnv = process.env.GLOBAL_CACHE_CONFIG;
56
- return configFromEnv ? JSON.parse(configFromEnv) : undefined;
57
- }
58
- function saveConfigToEnv(config) {
59
- process.env.GLOBAL_CACHE_CONFIG = JSON.stringify(config);
60
- }
61
- /* Export singleton instance */
62
- exports.globalConfig = new GlobalConfig();
63
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,6CAAyC;AACzC,kDAAwD;AAkBxD,MAAa,YAAY;IAGvB;QAFQ,WAAM,GAAyB,EAAE,CAAC;QAGxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,MAAqC;QAC1C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAA,wBAAe,EAAC,MAAM,CAAC,CAAC,CAAC;QACpD,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAA,wBAAU,GAAE,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;IACpC,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,CAAC;IACvD,CAAC;IAED,IAAI,SAAS;QACX,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,KAAK;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAlDD,oCAkDC;AAED,SAAS,gBAAgB;IACvB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACtD,OAAO,aAAa,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;AACtF,CAAC;AAED,SAAS,eAAe,CAAC,MAAyB;IAChD,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,+BAA+B;AAClB,QAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC"}