@reflag/node-sdk 1.0.0-alpha.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 +21 -0
- package/README.md +835 -0
- package/dist/package.json +49 -0
- package/dist/src/batch-buffer.js +85 -0
- package/dist/src/batch-buffer.js.map +1 -0
- package/dist/src/cache.js +71 -0
- package/dist/src/cache.js.map +1 -0
- package/dist/src/client.js +1141 -0
- package/dist/src/client.js.map +1 -0
- package/dist/src/config.js +98 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/edgeClient.js +32 -0
- package/dist/src/edgeClient.js.map +1 -0
- package/dist/src/fetch-http-client.js +85 -0
- package/dist/src/fetch-http-client.js.map +1 -0
- package/dist/src/flusher.js +56 -0
- package/dist/src/flusher.js.map +1 -0
- package/dist/src/inRequestCache.js +72 -0
- package/dist/src/inRequestCache.js.map +1 -0
- package/dist/src/index.js +9 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/periodicallyUpdatingCache.js +78 -0
- package/dist/src/periodicallyUpdatingCache.js.map +1 -0
- package/dist/src/rate-limiter.js +52 -0
- package/dist/src/rate-limiter.js.map +1 -0
- package/dist/src/types.js +6 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils.js +207 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/types/src/batch-buffer.d.ts +27 -0
- package/dist/types/src/batch-buffer.d.ts.map +1 -0
- package/dist/types/src/cache.d.ts +16 -0
- package/dist/types/src/cache.d.ts.map +1 -0
- package/dist/types/src/client.d.ts +410 -0
- package/dist/types/src/client.d.ts.map +1 -0
- package/dist/types/src/config.d.ts +20 -0
- package/dist/types/src/config.d.ts.map +1 -0
- package/dist/types/src/edgeClient.d.ts +25 -0
- package/dist/types/src/edgeClient.d.ts.map +1 -0
- package/dist/types/src/fetch-http-client.d.ts +20 -0
- package/dist/types/src/fetch-http-client.d.ts.map +1 -0
- package/dist/types/src/flusher.d.ts +4 -0
- package/dist/types/src/flusher.d.ts.map +1 -0
- package/dist/types/src/inRequestCache.d.ts +7 -0
- package/dist/types/src/inRequestCache.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +4 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/periodicallyUpdatingCache.d.ts +16 -0
- package/dist/types/src/periodicallyUpdatingCache.d.ts.map +1 -0
- package/dist/types/src/rate-limiter.d.ts +14 -0
- package/dist/types/src/rate-limiter.d.ts.map +1 -0
- package/dist/types/src/types.d.ts +639 -0
- package/dist/types/src/types.d.ts.map +1 -0
- package/dist/types/src/utils.d.ts +65 -0
- package/dist/types/src/utils.d.ts.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { IdType, Logger, LogLevel } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Assert that the given condition is `true`.
|
|
4
|
+
*
|
|
5
|
+
* @param condition - The condition to check.
|
|
6
|
+
* @param message - The error message to throw.
|
|
7
|
+
**/
|
|
8
|
+
export declare function ok(condition: boolean, message: string): asserts condition;
|
|
9
|
+
/**
|
|
10
|
+
* Assert that the given values is a valid user/company id
|
|
11
|
+
**/
|
|
12
|
+
export declare function idOk(id: IdType, entity: string): void;
|
|
13
|
+
/**
|
|
14
|
+
* Check if the given item is an object.
|
|
15
|
+
*
|
|
16
|
+
* @param item - The item to check.
|
|
17
|
+
* @returns `true` if the item is an object, `false` otherwise.
|
|
18
|
+
**/
|
|
19
|
+
export declare function isObject(item: any): item is Record<string, any>;
|
|
20
|
+
export type LogFn = (message: string, ...args: any[]) => void;
|
|
21
|
+
export declare function decorate(prefix: string, fn: LogFn): LogFn;
|
|
22
|
+
export declare function applyLogLevel(logger: Logger, logLevel: LogLevel): {
|
|
23
|
+
debug: LogFn;
|
|
24
|
+
info: LogFn;
|
|
25
|
+
warn: LogFn;
|
|
26
|
+
error: LogFn;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Decorate the messages of a given logger with the given prefix.
|
|
30
|
+
*
|
|
31
|
+
* @param prefix - The prefix to add to log messages.
|
|
32
|
+
* @param logger - The logger to decorate.
|
|
33
|
+
* @returns The decorated logger.
|
|
34
|
+
**/
|
|
35
|
+
export declare function decorateLogger(prefix: string, logger: Logger): Logger;
|
|
36
|
+
/** Merge two objects, skipping `undefined` values.
|
|
37
|
+
*
|
|
38
|
+
* @param target - The target object.
|
|
39
|
+
* @param source - The source object.
|
|
40
|
+
* @returns The merged object.
|
|
41
|
+
**/
|
|
42
|
+
export declare function mergeSkipUndefined<T extends object, U extends object>(target: T, source: U): T & U;
|
|
43
|
+
/** Hash an object using SHA1.
|
|
44
|
+
*
|
|
45
|
+
* @param obj - The object to hash.
|
|
46
|
+
*
|
|
47
|
+
* @returns The SHA1 hash of the object.
|
|
48
|
+
**/
|
|
49
|
+
export declare function hashObject(obj: Record<string, any>): string;
|
|
50
|
+
export declare function once<T extends () => ReturnType<T>>(fn: T): () => ReturnType<T>;
|
|
51
|
+
export declare class TimeoutError extends Error {
|
|
52
|
+
constructor(timeoutMs: number);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Wraps a promise with a timeout. If the promise doesn't resolve within the specified
|
|
56
|
+
* timeout, it will reject with a timeout error. The original promise will still
|
|
57
|
+
* continue to execute but its result will be ignored.
|
|
58
|
+
*
|
|
59
|
+
* @param promise - The promise to wrap with a timeout
|
|
60
|
+
* @param timeoutMs - The timeout in milliseconds
|
|
61
|
+
* @returns A promise that resolves with the original promise result or rejects with a timeout error
|
|
62
|
+
* @throws {Error} If the timeout is reached before the promise resolves
|
|
63
|
+
**/
|
|
64
|
+
export declare function withTimeout<T>(promise: Promise<T>, timeoutMs: number): Promise<T>;
|
|
65
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;IAKI;AACJ,wBAAgB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAIzE;AACD;;IAEI;AACJ,wBAAgB,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAK9C;AAED;;;;;IAKI;AACJ,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAE/D;AAED,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAC9D,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,GAAG,KAAK,CAIzD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;;;;;EAiC/D;AAED;;;;;;IAMI;AACJ,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAUrE;AAED;;;;;IAKI;AACJ,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EACnE,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,GACR,CAAC,GAAG,CAAC,CASP;AAoCD;;;;;IAKI;AACJ,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAO3D;AAED,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,UAAU,CAAC,CAAC,CAAC,EAChD,EAAE,EAAE,CAAC,GACJ,MAAM,UAAU,CAAC,CAAC,CAAC,CAWrB;AAED,qBAAa,YAAa,SAAQ,KAAK;gBACzB,SAAS,EAAE,MAAM;CAI9B;AAED;;;;;;;;;IASI;AACJ,wBAAgB,WAAW,CAAC,CAAC,EAC3B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,CAAC,CAmBZ"}
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@reflag/node-sdk",
|
|
3
|
+
"version": "1.0.0-alpha.1",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/reflagcom/javascript.git"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"dev": "vite",
|
|
11
|
+
"start": "vite",
|
|
12
|
+
"build": "tsc --project tsconfig.build.json",
|
|
13
|
+
"test": "vitest -c vite.config.js",
|
|
14
|
+
"test:ci": "vitest run -c vite.config.js --reporter=default --reporter=junit --outputFile=junit.xml",
|
|
15
|
+
"coverage": "vitest run --coverage",
|
|
16
|
+
"lint": "eslint .",
|
|
17
|
+
"lint:ci": "eslint --output-file eslint-report.json --format json .",
|
|
18
|
+
"prettier": "prettier --check .",
|
|
19
|
+
"format": "yarn lint --fix && yarn prettier --write",
|
|
20
|
+
"preversion": "yarn lint && yarn prettier && yarn vitest run -c vite.config.js && yarn build"
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"dist"
|
|
24
|
+
],
|
|
25
|
+
"publishConfig": {
|
|
26
|
+
"access": "public"
|
|
27
|
+
},
|
|
28
|
+
"main": "./dist/src/index.js",
|
|
29
|
+
"types": "./dist/types/src/index.d.ts",
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@babel/core": "~7.24.7",
|
|
32
|
+
"@reflag/eslint-config": "~0.0.2",
|
|
33
|
+
"@reflag/tsconfig": "~0.0.2",
|
|
34
|
+
"@types/node": "^22.12.0",
|
|
35
|
+
"@vitest/coverage-v8": "~1.6.0",
|
|
36
|
+
"c8": "~10.1.0",
|
|
37
|
+
"eslint": "^9.21.0",
|
|
38
|
+
"flush-promises": "~1.0.2",
|
|
39
|
+
"prettier": "^3.5.2",
|
|
40
|
+
"ts-node": "~10.9.2",
|
|
41
|
+
"typescript": "^5.7.3",
|
|
42
|
+
"vite": "~5.4.18",
|
|
43
|
+
"vite-plugin-dts": "~3.9.1",
|
|
44
|
+
"vitest": "~1.6.0"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"@reflag/flag-evaluation": "1.0.0"
|
|
48
|
+
},
|
|
49
|
+
"gitHead": "d70378c8d717b140cfbaf5f05ec018d60fc26724"
|
|
50
|
+
}
|