@xylabs/sdk-js 2.5.3 → 2.5.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/dist/browser/Buffer.d.ts +2 -2
- package/dist/browser/Buffer.js +2 -2
- package/dist/browser/bufferPolyfill.d.ts +1 -1
- package/dist/browser/bufferPolyfill.js +10 -10
- package/dist/browser/index.d.ts +2 -2
- package/dist/browser/index.js +2 -2
- package/dist/browserIndex.d.ts +3 -3
- package/dist/browserIndex.js +3 -3
- package/dist/bundle/cjs5/browser/Buffer.d.ts +2 -2
- package/dist/bundle/cjs5/browser/bufferPolyfill.d.ts +1 -1
- package/dist/bundle/cjs5/browser/index.d.ts +2 -2
- package/dist/bundle/cjs5/browserIndex.d.ts +3 -3
- package/dist/bundle/cjs5/index.d.ts +4 -4
- package/dist/bundle/cjs5/index.js +245 -238
- package/dist/bundle/cjs5/index.js.map +1 -1
- package/dist/bundle/cjs5/node/Buffer.d.ts +2 -2
- package/dist/bundle/cjs5/node/bufferPolyfill.d.ts +1 -1
- package/dist/bundle/cjs5/node/index.d.ts +2 -2
- package/dist/bundle/cjs5/nodeIndex.d.ts +3 -3
- package/dist/bundle/cjs5/shared/ApiClient.d.ts +8 -8
- package/dist/bundle/cjs5/shared/ApiConfig.d.ts +7 -7
- package/dist/bundle/cjs5/shared/ApiEndpoint.d.ts +14 -14
- package/dist/bundle/cjs5/shared/ApiStage.d.ts +6 -6
- package/dist/bundle/cjs5/shared/BigNumber.d.ts +2 -2
- package/dist/bundle/cjs5/shared/EthAddress.d.ts +20 -20
- package/dist/bundle/cjs5/shared/Log.d.ts +17 -17
- package/dist/bundle/cjs5/shared/Override.d.ts +2 -2
- package/dist/bundle/cjs5/shared/assertEx.d.ts +11 -11
- package/dist/bundle/cjs5/shared/delay.d.ts +1 -1
- package/dist/bundle/cjs5/shared/ellipsize.d.ts +1 -1
- package/dist/bundle/cjs5/shared/exists.d.ts +9 -0
- package/dist/bundle/cjs5/shared/forget.d.ts +6 -6
- package/dist/bundle/cjs5/shared/getApiStage.d.ts +3 -3
- package/dist/bundle/cjs5/shared/index.d.ts +15 -15
- package/dist/bundle/cjs5/shared/padHex.d.ts +2 -2
- package/dist/bundle/esm2015/browser/Buffer.d.ts +2 -2
- package/dist/bundle/esm2015/browser/bufferPolyfill.d.ts +1 -1
- package/dist/bundle/esm2015/browser/index.d.ts +2 -2
- package/dist/bundle/esm2015/browserIndex.d.ts +3 -3
- package/dist/bundle/esm2015/index.d.ts +4 -4
- package/dist/bundle/esm2015/index.js +246 -238
- package/dist/bundle/esm2015/index.js.map +1 -1
- package/dist/bundle/esm2015/node/Buffer.d.ts +2 -2
- package/dist/bundle/esm2015/node/bufferPolyfill.d.ts +1 -1
- package/dist/bundle/esm2015/node/index.d.ts +2 -2
- package/dist/bundle/esm2015/nodeIndex.d.ts +3 -3
- package/dist/bundle/esm2015/shared/ApiClient.d.ts +8 -8
- package/dist/bundle/esm2015/shared/ApiConfig.d.ts +7 -7
- package/dist/bundle/esm2015/shared/ApiEndpoint.d.ts +14 -14
- package/dist/bundle/esm2015/shared/ApiStage.d.ts +6 -6
- package/dist/bundle/esm2015/shared/BigNumber.d.ts +2 -2
- package/dist/bundle/esm2015/shared/EthAddress.d.ts +20 -20
- package/dist/bundle/esm2015/shared/Log.d.ts +17 -17
- package/dist/bundle/esm2015/shared/Override.d.ts +2 -2
- package/dist/bundle/esm2015/shared/assertEx.d.ts +11 -11
- package/dist/bundle/esm2015/shared/delay.d.ts +1 -1
- package/dist/bundle/esm2015/shared/ellipsize.d.ts +1 -1
- package/dist/bundle/esm2015/shared/exists.d.ts +9 -0
- package/dist/bundle/esm2015/shared/forget.d.ts +6 -6
- package/dist/bundle/esm2015/shared/getApiStage.d.ts +3 -3
- package/dist/bundle/esm2015/shared/index.d.ts +15 -15
- package/dist/bundle/esm2015/shared/padHex.d.ts +2 -2
- package/dist/bundle/esm2017/browser/Buffer.d.ts +2 -2
- package/dist/bundle/esm2017/browser/bufferPolyfill.d.ts +1 -1
- package/dist/bundle/esm2017/browser/index.d.ts +2 -2
- package/dist/bundle/esm2017/browserIndex.d.ts +3 -3
- package/dist/bundle/esm2017/index.d.ts +4 -4
- package/dist/bundle/esm2017/index.js +246 -238
- package/dist/bundle/esm2017/index.js.map +1 -1
- package/dist/bundle/esm2017/node/Buffer.d.ts +2 -2
- package/dist/bundle/esm2017/node/bufferPolyfill.d.ts +1 -1
- package/dist/bundle/esm2017/node/index.d.ts +2 -2
- package/dist/bundle/esm2017/nodeIndex.d.ts +3 -3
- package/dist/bundle/esm2017/shared/ApiClient.d.ts +8 -8
- package/dist/bundle/esm2017/shared/ApiConfig.d.ts +7 -7
- package/dist/bundle/esm2017/shared/ApiEndpoint.d.ts +14 -14
- package/dist/bundle/esm2017/shared/ApiStage.d.ts +6 -6
- package/dist/bundle/esm2017/shared/BigNumber.d.ts +2 -2
- package/dist/bundle/esm2017/shared/EthAddress.d.ts +20 -20
- package/dist/bundle/esm2017/shared/Log.d.ts +17 -17
- package/dist/bundle/esm2017/shared/Override.d.ts +2 -2
- package/dist/bundle/esm2017/shared/assertEx.d.ts +11 -11
- package/dist/bundle/esm2017/shared/delay.d.ts +1 -1
- package/dist/bundle/esm2017/shared/ellipsize.d.ts +1 -1
- package/dist/bundle/esm2017/shared/exists.d.ts +9 -0
- package/dist/bundle/esm2017/shared/forget.d.ts +6 -6
- package/dist/bundle/esm2017/shared/getApiStage.d.ts +3 -3
- package/dist/bundle/esm2017/shared/index.d.ts +15 -15
- package/dist/bundle/esm2017/shared/padHex.d.ts +2 -2
- package/dist/bundle/esm5/browser/Buffer.d.ts +2 -2
- package/dist/bundle/esm5/browser/bufferPolyfill.d.ts +1 -1
- package/dist/bundle/esm5/browser/index.d.ts +2 -2
- package/dist/bundle/esm5/browserIndex.d.ts +3 -3
- package/dist/bundle/esm5/index.d.ts +4 -4
- package/dist/bundle/esm5/index.js +246 -238
- package/dist/bundle/esm5/index.js.map +1 -1
- package/dist/bundle/esm5/node/Buffer.d.ts +2 -2
- package/dist/bundle/esm5/node/bufferPolyfill.d.ts +1 -1
- package/dist/bundle/esm5/node/index.d.ts +2 -2
- package/dist/bundle/esm5/nodeIndex.d.ts +3 -3
- package/dist/bundle/esm5/shared/ApiClient.d.ts +8 -8
- package/dist/bundle/esm5/shared/ApiConfig.d.ts +7 -7
- package/dist/bundle/esm5/shared/ApiEndpoint.d.ts +14 -14
- package/dist/bundle/esm5/shared/ApiStage.d.ts +6 -6
- package/dist/bundle/esm5/shared/BigNumber.d.ts +2 -2
- package/dist/bundle/esm5/shared/EthAddress.d.ts +20 -20
- package/dist/bundle/esm5/shared/Log.d.ts +17 -17
- package/dist/bundle/esm5/shared/Override.d.ts +2 -2
- package/dist/bundle/esm5/shared/assertEx.d.ts +11 -11
- package/dist/bundle/esm5/shared/delay.d.ts +1 -1
- package/dist/bundle/esm5/shared/ellipsize.d.ts +1 -1
- package/dist/bundle/esm5/shared/exists.d.ts +9 -0
- package/dist/bundle/esm5/shared/forget.d.ts +6 -6
- package/dist/bundle/esm5/shared/getApiStage.d.ts +3 -3
- package/dist/bundle/esm5/shared/index.d.ts +15 -15
- package/dist/bundle/esm5/shared/padHex.d.ts +2 -2
- package/dist/bundle/node/browser/Buffer.d.ts +2 -2
- package/dist/bundle/node/browser/bufferPolyfill.d.ts +1 -1
- package/dist/bundle/node/browser/index.d.ts +2 -2
- package/dist/bundle/node/browserIndex.d.ts +3 -3
- package/dist/bundle/node/index.d.ts +4 -4
- package/dist/bundle/node/index.js +239 -239
- package/dist/bundle/node/index.js.map +1 -1
- package/dist/bundle/node/node/Buffer.d.ts +2 -2
- package/dist/bundle/node/node/bufferPolyfill.d.ts +1 -1
- package/dist/bundle/node/node/index.d.ts +2 -2
- package/dist/bundle/node/nodeIndex.d.ts +3 -3
- package/dist/bundle/node/shared/ApiClient.d.ts +8 -8
- package/dist/bundle/node/shared/ApiConfig.d.ts +7 -7
- package/dist/bundle/node/shared/ApiEndpoint.d.ts +14 -14
- package/dist/bundle/node/shared/ApiStage.d.ts +6 -6
- package/dist/bundle/node/shared/BigNumber.d.ts +2 -2
- package/dist/bundle/node/shared/EthAddress.d.ts +20 -20
- package/dist/bundle/node/shared/Log.d.ts +17 -17
- package/dist/bundle/node/shared/Override.d.ts +2 -2
- package/dist/bundle/node/shared/assertEx.d.ts +11 -11
- package/dist/bundle/node/shared/delay.d.ts +1 -1
- package/dist/bundle/node/shared/ellipsize.d.ts +1 -1
- package/dist/bundle/node/shared/exists.d.ts +9 -0
- package/dist/bundle/node/shared/forget.d.ts +6 -6
- package/dist/bundle/node/shared/getApiStage.d.ts +3 -3
- package/dist/bundle/node/shared/index.d.ts +15 -15
- package/dist/bundle/node/shared/padHex.d.ts +2 -2
- package/dist/bundle/node-esm/browser/Buffer.d.ts +2 -2
- package/dist/bundle/node-esm/browser/bufferPolyfill.d.ts +1 -1
- package/dist/bundle/node-esm/browser/index.d.ts +2 -2
- package/dist/bundle/node-esm/browserIndex.d.ts +3 -3
- package/dist/bundle/node-esm/index.d.ts +4 -4
- package/dist/bundle/node-esm/index.js +239 -239
- package/dist/bundle/node-esm/index.js.map +1 -1
- package/dist/bundle/node-esm/node/Buffer.d.ts +2 -2
- package/dist/bundle/node-esm/node/bufferPolyfill.d.ts +1 -1
- package/dist/bundle/node-esm/node/index.d.ts +2 -2
- package/dist/bundle/node-esm/nodeIndex.d.ts +3 -3
- package/dist/bundle/node-esm/shared/ApiClient.d.ts +8 -8
- package/dist/bundle/node-esm/shared/ApiConfig.d.ts +7 -7
- package/dist/bundle/node-esm/shared/ApiEndpoint.d.ts +14 -14
- package/dist/bundle/node-esm/shared/ApiStage.d.ts +6 -6
- package/dist/bundle/node-esm/shared/BigNumber.d.ts +2 -2
- package/dist/bundle/node-esm/shared/EthAddress.d.ts +20 -20
- package/dist/bundle/node-esm/shared/Log.d.ts +17 -17
- package/dist/bundle/node-esm/shared/Override.d.ts +2 -2
- package/dist/bundle/node-esm/shared/assertEx.d.ts +11 -11
- package/dist/bundle/node-esm/shared/delay.d.ts +1 -1
- package/dist/bundle/node-esm/shared/ellipsize.d.ts +1 -1
- package/dist/bundle/node-esm/shared/exists.d.ts +9 -0
- package/dist/bundle/node-esm/shared/forget.d.ts +6 -6
- package/dist/bundle/node-esm/shared/getApiStage.d.ts +3 -3
- package/dist/bundle/node-esm/shared/index.d.ts +15 -15
- package/dist/bundle/node-esm/shared/padHex.d.ts +2 -2
- package/dist/index.d.ts +4 -4
- package/dist/index.js +4 -4
- package/dist/node/Buffer.d.ts +2 -2
- package/dist/node/Buffer.js +2 -2
- package/dist/node/bufferPolyfill.d.ts +1 -1
- package/dist/node/bufferPolyfill.js +3 -3
- package/dist/node/index.d.ts +2 -2
- package/dist/node/index.js +2 -2
- package/dist/nodeIndex.d.ts +3 -3
- package/dist/nodeIndex.js +3 -3
- package/dist/shared/ApiClient.d.ts +8 -8
- package/dist/shared/ApiClient.js +8 -8
- package/dist/shared/ApiConfig.d.ts +7 -7
- package/dist/shared/ApiConfig.js +1 -1
- package/dist/shared/ApiEndpoint.d.ts +14 -14
- package/dist/shared/ApiEndpoint.js +48 -48
- package/dist/shared/ApiStage.d.ts +6 -6
- package/dist/shared/ApiStage.js +7 -7
- package/dist/shared/BigNumber.d.ts +2 -2
- package/dist/shared/BigNumber.js +2 -2
- package/dist/shared/EthAddress.d.ts +20 -20
- package/dist/shared/EthAddress.js +54 -54
- package/dist/shared/Log.d.ts +17 -17
- package/dist/shared/Log.js +59 -59
- package/dist/shared/Log.js.map +1 -1
- package/dist/shared/Override.d.ts +2 -2
- package/dist/shared/Override.js +1 -1
- package/dist/shared/assertEx.d.ts +11 -11
- package/dist/shared/assertEx.js +20 -20
- package/dist/shared/delay.d.ts +1 -1
- package/dist/shared/delay.js +3 -3
- package/dist/shared/ellipsize.d.ts +1 -1
- package/dist/shared/ellipsize.js +5 -5
- package/dist/shared/exists.d.ts +9 -0
- package/dist/shared/exists.js +12 -0
- package/dist/shared/exists.js.map +1 -0
- package/dist/shared/forget.d.ts +6 -6
- package/dist/shared/forget.js +36 -36
- package/dist/shared/getApiStage.d.ts +3 -3
- package/dist/shared/getApiStage.js +13 -13
- package/dist/shared/index.d.ts +15 -15
- package/dist/shared/index.js +12 -12
- package/dist/shared/padHex.d.ts +2 -2
- package/dist/shared/padHex.js +13 -13
- package/package.json +16 -16
- package/src/shared/Log.spec.ts +33 -0
- package/src/shared/Log.ts +2 -2
- package/src/shared/exists.spec.ts +28 -0
- package/src/shared/exists.ts +11 -0
- package/src/shared/forget.spec.ts +1 -1
package/package.json
CHANGED
|
@@ -10,31 +10,31 @@
|
|
|
10
10
|
},
|
|
11
11
|
"description": "Base functionality used throughout XY Labs TypeScript/JavaScript libraries",
|
|
12
12
|
"devDependencies": {
|
|
13
|
-
"@babel/core": "7.
|
|
13
|
+
"@babel/core": "7.18.2",
|
|
14
14
|
"@rollup/plugin-json": "^4.1.0",
|
|
15
15
|
"@rollup/plugin-replace": "^4.0.0",
|
|
16
16
|
"@rollup/plugin-strip": "^2.1.0",
|
|
17
17
|
"@rollup/plugin-typescript": "^8.3.2",
|
|
18
18
|
"@types/bn.js": "^5.1.0",
|
|
19
|
-
"@types/jest": "^27.
|
|
19
|
+
"@types/jest": "^27.5.1",
|
|
20
20
|
"@types/mocha": "^9.1.1",
|
|
21
21
|
"@xylabs/eslint-config": "2.3.22",
|
|
22
|
-
"@xylabs/rollup-config": "^1.1.
|
|
23
|
-
"@xylabs/ts-scripts": "^1.0.
|
|
22
|
+
"@xylabs/rollup-config": "^1.1.17",
|
|
23
|
+
"@xylabs/ts-scripts": "^1.0.66",
|
|
24
24
|
"@xylabs/tsconfig": "^1.0.13",
|
|
25
|
-
"babel-jest": "^
|
|
25
|
+
"babel-jest": "^28.1.0",
|
|
26
26
|
"copyfiles": "^2.4.1",
|
|
27
|
-
"eslint": "^8.
|
|
28
|
-
"jest": "^
|
|
27
|
+
"eslint": "^8.16.0",
|
|
28
|
+
"jest": "^28.1.0",
|
|
29
29
|
"npm-package-json-lint": "^6.3.0",
|
|
30
30
|
"npm-package-json-lint-config-default": "^5.0.0",
|
|
31
31
|
"prettier": "^2.6.2",
|
|
32
32
|
"rimraf": "^3.0.2",
|
|
33
|
-
"rollup": "^2.
|
|
34
|
-
"ts-jest": "^
|
|
35
|
-
"ts-node": "^10.
|
|
33
|
+
"rollup": "^2.75.4",
|
|
34
|
+
"ts-jest": "^28.0.3",
|
|
35
|
+
"ts-node": "^10.8.0",
|
|
36
36
|
"tslib": "^2.4.0",
|
|
37
|
-
"typescript": "^4.
|
|
37
|
+
"typescript": "^4.7.2"
|
|
38
38
|
},
|
|
39
39
|
"browser": "dist/browserIndex.js",
|
|
40
40
|
"docs": "dist/docs.json",
|
|
@@ -63,13 +63,13 @@
|
|
|
63
63
|
"esm"
|
|
64
64
|
],
|
|
65
65
|
"license": "LGPL-3.0",
|
|
66
|
-
"main": "dist/node/index.js",
|
|
66
|
+
"main": "dist/bundle/node/index.js",
|
|
67
67
|
"module": "dist/index.js",
|
|
68
68
|
"name": "@xylabs/sdk-js",
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@types/node": "^17.0.
|
|
71
|
-
"axios": "^0.
|
|
72
|
-
"bn.js": "^5.2.
|
|
70
|
+
"@types/node": "^17.0.38",
|
|
71
|
+
"axios": "^0.27.2",
|
|
72
|
+
"bn.js": "^5.2.1",
|
|
73
73
|
"buffer": "^6.0.3",
|
|
74
74
|
"rollbar": "^2.25.0"
|
|
75
75
|
},
|
|
@@ -90,6 +90,6 @@
|
|
|
90
90
|
},
|
|
91
91
|
"sideEffects": false,
|
|
92
92
|
"types": "dist/index.d.ts",
|
|
93
|
-
"version": "2.5.
|
|
93
|
+
"version": "2.5.6",
|
|
94
94
|
"packageManager": "yarn@3.1.1"
|
|
95
95
|
}
|
package/src/shared/Log.spec.ts
CHANGED
|
@@ -5,4 +5,37 @@ describe('Log', () => {
|
|
|
5
5
|
const log = new Log({ devMode: false })
|
|
6
6
|
expect(log).toBeDefined()
|
|
7
7
|
})
|
|
8
|
+
test('rollbar error methods not to be called when in dev', () => {
|
|
9
|
+
jest.spyOn(global.console, 'error').mockImplementation()
|
|
10
|
+
const log = new Log({ devMode: true, rollbarToken: 'mock' })
|
|
11
|
+
const errorSpy = jest.spyOn((log as any).rollbar, 'error')
|
|
12
|
+
log.error(['ERROR'])
|
|
13
|
+
//@ts-ignore
|
|
14
|
+
expect(errorSpy).toBeCalledTimes(0)
|
|
15
|
+
})
|
|
16
|
+
test('rollbar error methods to be called when not in dev', () => {
|
|
17
|
+
jest.spyOn(global.console, 'error').mockImplementation()
|
|
18
|
+
const log = new Log({ devMode: false, rollbarToken: 'mock' })
|
|
19
|
+
const errorSpy = jest.spyOn((log as any).rollbar, 'error')
|
|
20
|
+
log.error(['ERROR'])
|
|
21
|
+
//@ts-ignore
|
|
22
|
+
expect(errorSpy).toHaveBeenCalled()
|
|
23
|
+
})
|
|
24
|
+
test('rollbar warn methods not to be called when in dev', () => {
|
|
25
|
+
jest.spyOn(global.console, 'warn').mockImplementation()
|
|
26
|
+
const log = new Log({ devMode: true, rollbarToken: 'mock' })
|
|
27
|
+
const warnSpy = jest.spyOn((log as any).rollbar, 'warn')
|
|
28
|
+
log.warn(['WARNING'])
|
|
29
|
+
//@ts-ignore
|
|
30
|
+
expect(warnSpy).toBeCalledTimes(0)
|
|
31
|
+
})
|
|
32
|
+
test('rollbar warn methods to be called when not in dev', () => {
|
|
33
|
+
jest.spyOn(global.console, 'warn').mockImplementation()
|
|
34
|
+
const log = new Log({ devMode: false, rollbarToken: 'mock' })
|
|
35
|
+
const warnSpy = jest.spyOn((log as any).rollbar, 'error')
|
|
36
|
+
log.error(['WARNING'])
|
|
37
|
+
//@ts-ignore
|
|
38
|
+
expect(warnSpy).toHaveBeenCalled()
|
|
39
|
+
})
|
|
40
|
+
|
|
8
41
|
})
|
package/src/shared/Log.ts
CHANGED
|
@@ -42,7 +42,7 @@ class Log {
|
|
|
42
42
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
43
43
|
public error(...params: any[]) {
|
|
44
44
|
console.error(params)
|
|
45
|
-
if (this.devMode) {
|
|
45
|
+
if (!this.devMode) {
|
|
46
46
|
this.rollbar?.error(params)
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -50,7 +50,7 @@ class Log {
|
|
|
50
50
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
51
|
public warn(...params: any[]) {
|
|
52
52
|
console.warn(params)
|
|
53
|
-
if (this.devMode) {
|
|
53
|
+
if (!this.devMode) {
|
|
54
54
|
this.rollbar?.warn(params)
|
|
55
55
|
}
|
|
56
56
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { exists } from './exists'
|
|
2
|
+
|
|
3
|
+
const filterableValues = [undefined, null]
|
|
4
|
+
const nonfilterableValue = {}
|
|
5
|
+
|
|
6
|
+
describe('exists', () => {
|
|
7
|
+
describe.each(filterableValues)('with all %p', (value) => {
|
|
8
|
+
it('filters all', async () => {
|
|
9
|
+
const input = [value, value]
|
|
10
|
+
const actual = input.filter(exists)
|
|
11
|
+
expect(actual.length).toBe(0)
|
|
12
|
+
})
|
|
13
|
+
})
|
|
14
|
+
describe.each(filterableValues)('with mixed %p', (value) => {
|
|
15
|
+
it('filters some', async () => {
|
|
16
|
+
const input = [value, nonfilterableValue, value, nonfilterableValue]
|
|
17
|
+
const actual = input.filter(exists)
|
|
18
|
+
expect(actual.length).toBe(2)
|
|
19
|
+
})
|
|
20
|
+
})
|
|
21
|
+
describe.each(filterableValues)('with no %p', (value) => {
|
|
22
|
+
it('filters none', async () => {
|
|
23
|
+
const input = [nonfilterableValue, nonfilterableValue]
|
|
24
|
+
const actual = input.filter(exists)
|
|
25
|
+
expect(actual.length).toBe(input.length)
|
|
26
|
+
})
|
|
27
|
+
})
|
|
28
|
+
})
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Used to type narrow an object which is possibly undefined. Works well
|
|
3
|
+
* with functional Array methods. For example:
|
|
4
|
+
* @example
|
|
5
|
+
* const payloads: XyoPayload[] = boundWitness._payloads?.filter(exists) || []
|
|
6
|
+
* @param x The object which is potentially undefined
|
|
7
|
+
* @returns True if the object is defined, false otherwise
|
|
8
|
+
*/
|
|
9
|
+
export const exists = <T>(x: T | undefined | null): x is T => {
|
|
10
|
+
return !!x
|
|
11
|
+
}
|