@ceramicnetwork/base-test-utils 1.2.0-nightly.6

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/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # Ceramic Base Test Utilities
2
+
3
+ Utilities for testing all modules of Ceramic
package/lib/index.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ import type { CID } from 'multiformats/cid';
2
+ import { StreamID } from '@ceramicnetwork/streamid';
3
+ export declare class BaseTestUtils {
4
+ static randomCID(version?: 0 | 1, codec?: number, hasher?: number): CID;
5
+ static randomStreamID(): StreamID;
6
+ static waitForConditionOrTimeout(predicate: () => Promise<boolean>, timeoutMs?: number): Promise<boolean>;
7
+ static delay(ms: number, signal?: AbortSignal): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAa,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,aAAa;IACxB,MAAM,CAAC,SAAS,CAAC,OAAO,GAAE,CAAC,GAAG,CAAK,EAAE,KAAK,SAAO,EAAE,MAAM,SAAO,GAAG,GAAG;IAItE,MAAM,CAAC,cAAc,IAAI,QAAQ;WAgBpB,yBAAyB,CACpC,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EACjC,SAAS,SAAY,GACpB,OAAO,CAAC,OAAO,CAAC;WAsBN,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAcpE"}
package/lib/index.js ADDED
@@ -0,0 +1,45 @@
1
+ import { randomCID, StreamID } from '@ceramicnetwork/streamid';
2
+ export class BaseTestUtils {
3
+ static randomCID(version = 1, codec = 0x71, hasher = 0x12) {
4
+ return randomCID(version, codec, hasher);
5
+ }
6
+ static randomStreamID() {
7
+ return new StreamID(0, BaseTestUtils.randomCID());
8
+ }
9
+ static async waitForConditionOrTimeout(predicate, timeoutMs = 1000 * 30) {
10
+ const startTime = new Date();
11
+ const deadline = new Date(startTime.getTime() + timeoutMs);
12
+ let now = startTime;
13
+ while (now < deadline) {
14
+ await BaseTestUtils.delay(100);
15
+ now = new Date();
16
+ try {
17
+ const res = await predicate();
18
+ if (res) {
19
+ return res;
20
+ }
21
+ }
22
+ catch (err) {
23
+ console.warn(err);
24
+ }
25
+ }
26
+ console.warn(`timed out after ${timeoutMs}ms waiting for condition to be true`);
27
+ return false;
28
+ }
29
+ static async delay(ms, signal) {
30
+ return new Promise((resolve, reject) => {
31
+ const timeout = setTimeout(() => resolve(), ms);
32
+ if (signal) {
33
+ const handleAbort = () => {
34
+ clearTimeout(timeout);
35
+ signal.removeEventListener('abort', handleAbort);
36
+ reject(signal.reason);
37
+ };
38
+ if (signal.aborted)
39
+ handleAbort();
40
+ signal.addEventListener('abort', handleAbort);
41
+ }
42
+ });
43
+ }
44
+ }
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,aAAa;IACxB,MAAM,CAAC,SAAS,CAAC,UAAiB,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI;QAC9D,OAAO,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,CAAC,cAAc;QACnB,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAA;IACnD,CAAC;IAcD,MAAM,CAAC,KAAK,CAAC,yBAAyB,CACpC,SAAiC,EACjC,SAAS,GAAG,IAAI,GAAG,EAAE;QAErB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;QAC5B,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAAA;QAC1D,IAAI,GAAG,GAAG,SAAS,CAAA;QACnB,OAAO,GAAG,GAAG,QAAQ,EAAE;YACrB,MAAM,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC9B,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;YAEhB,IAAI;gBACF,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAA;gBAC7B,IAAI,GAAG,EAAE;oBACP,OAAO,GAAG,CAAA;iBACX;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;aAClB;SACF;QAED,OAAO,CAAC,IAAI,CAAC,mBAAmB,SAAS,qCAAqC,CAAC,CAAA;QAC/E,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAU,EAAE,MAAoB;QACjD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAA;YAC/C,IAAI,MAAM,EAAE;gBACV,MAAM,WAAW,GAAG,GAAG,EAAE;oBACvB,YAAY,CAAC,OAAO,CAAC,CAAA;oBACrB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;oBAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBACvB,CAAC,CAAA;gBACD,IAAI,MAAM,CAAC,OAAO;oBAAE,WAAW,EAAE,CAAA;gBACjC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;aAC9C;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@ceramicnetwork/base-test-utils",
3
+ "version": "1.2.0-nightly.6+4e766970",
4
+ "description": "Ceramic Test Utils",
5
+ "keywords": [
6
+ "ceramic"
7
+ ],
8
+ "main": "./lib/index.js",
9
+ "types": "./lib/index.d.ts",
10
+ "type": "module",
11
+ "files": [
12
+ "lib"
13
+ ],
14
+ "directories": {
15
+ "lib": "./lib"
16
+ },
17
+ "sideEffects": false,
18
+ "exports": {
19
+ ".": "./lib/index.js"
20
+ },
21
+ "scripts": {
22
+ "test": "NODE_OPTIONS=--experimental-vm-modules npx jest --silent --coverage",
23
+ "build": "npx tsc --project tsconfig.json",
24
+ "prepublishOnly": "npm run build",
25
+ "prebuild": "npm run clean",
26
+ "lint": "npx eslint ./src --ext .js,.jsx,.ts,.tsx",
27
+ "clean": "npx rimraf ./lib"
28
+ },
29
+ "author": "3Box Labs <support@3box.io>",
30
+ "license": "(Apache-2.0 OR MIT)",
31
+ "dependencies": {
32
+ "@ceramicnetwork/streamid": "^3.4.0-nightly.6+4e766970",
33
+ "multiformats": "^13.0.0"
34
+ },
35
+ "publishConfig": {
36
+ "access": "public"
37
+ },
38
+ "gitHead": "4e76697064e60ecfaef7de7473d674860ab82045"
39
+ }