@voiceflow/common 8.2.8 → 8.3.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/build/cjs/constants/environment.js +1 -1
- package/build/cjs/constants/regexp.d.ts +5 -5
- package/build/cjs/constants/regexp.d.ts.map +1 -1
- package/build/cjs/crypto/hex2abc.d.ts.map +1 -1
- package/build/cjs/types.d.ts +26 -26
- package/build/cjs/types.d.ts.map +1 -1
- package/build/cjs/utils/array.d.ts +3 -3
- package/build/cjs/utils/array.d.ts.map +1 -1
- package/build/cjs/utils/array.js +2 -3
- package/build/cjs/utils/emails.d.ts.map +1 -1
- package/build/cjs/utils/functional.d.ts +4 -4
- package/build/cjs/utils/functional.d.ts.map +1 -1
- package/build/cjs/utils/functional.js +0 -1
- package/build/cjs/utils/id.d.ts +1 -1
- package/build/cjs/utils/id.d.ts.map +1 -1
- package/build/cjs/utils/intent.d.ts +6 -6
- package/build/cjs/utils/intent.d.ts.map +1 -1
- package/build/cjs/utils/intent.js +4 -2
- package/build/cjs/utils/mathjs.js +1 -1
- package/build/cjs/utils/normalized.d.ts +5 -5
- package/build/cjs/utils/normalized.d.ts.map +1 -1
- package/build/cjs/utils/number.d.ts.map +1 -1
- package/build/cjs/utils/object/common.d.ts +1 -1
- package/build/cjs/utils/object/common.d.ts.map +1 -1
- package/build/cjs/utils/object/deepMap.d.ts +1 -1
- package/build/cjs/utils/object/deepMap.d.ts.map +1 -1
- package/build/cjs/utils/object/deepMap.js +0 -2
- package/build/cjs/utils/object/diff.d.ts +1 -1
- package/build/cjs/utils/object/diff.d.ts.map +1 -1
- package/build/cjs/utils/object/keys.d.ts +2 -1
- package/build/cjs/utils/object/keys.d.ts.map +1 -1
- package/build/cjs/utils/promise.d.ts.map +1 -1
- package/build/cjs/utils/protocol.d.ts +2 -2
- package/build/cjs/utils/protocol.d.ts.map +1 -1
- package/build/cjs/utils/slot.d.ts.map +1 -1
- package/build/cjs/utils/typeguard.d.ts +2 -2
- package/build/cjs/utils/typeguard.d.ts.map +1 -1
- package/build/cjs/utils/variables.d.ts +2 -2
- package/build/cjs/utils/variables.d.ts.map +1 -1
- package/build/esm/constants/regexp.d.ts +5 -5
- package/build/esm/constants/regexp.d.ts.map +1 -1
- package/build/esm/crypto/hex2abc.d.ts.map +1 -1
- package/build/esm/types.d.ts +26 -26
- package/build/esm/types.d.ts.map +1 -1
- package/build/esm/utils/array.d.ts +3 -3
- package/build/esm/utils/array.d.ts.map +1 -1
- package/build/esm/utils/array.js +2 -3
- package/build/esm/utils/emails.d.ts.map +1 -1
- package/build/esm/utils/functional.d.ts +4 -4
- package/build/esm/utils/functional.d.ts.map +1 -1
- package/build/esm/utils/functional.js +0 -1
- package/build/esm/utils/id.d.ts +1 -1
- package/build/esm/utils/id.d.ts.map +1 -1
- package/build/esm/utils/intent.d.ts +6 -6
- package/build/esm/utils/intent.d.ts.map +1 -1
- package/build/esm/utils/intent.js +4 -2
- package/build/esm/utils/mathjs.js +1 -1
- package/build/esm/utils/normalized.d.ts +5 -5
- package/build/esm/utils/normalized.d.ts.map +1 -1
- package/build/esm/utils/number.d.ts.map +1 -1
- package/build/esm/utils/object/common.d.ts +1 -1
- package/build/esm/utils/object/common.d.ts.map +1 -1
- package/build/esm/utils/object/deepMap.d.ts +1 -1
- package/build/esm/utils/object/deepMap.d.ts.map +1 -1
- package/build/esm/utils/object/deepMap.js +0 -2
- package/build/esm/utils/object/diff.d.ts +1 -1
- package/build/esm/utils/object/diff.d.ts.map +1 -1
- package/build/esm/utils/object/keys.d.ts +2 -1
- package/build/esm/utils/object/keys.d.ts.map +1 -1
- package/build/esm/utils/promise.d.ts.map +1 -1
- package/build/esm/utils/protocol.d.ts +2 -2
- package/build/esm/utils/protocol.d.ts.map +1 -1
- package/build/esm/utils/slot.d.ts.map +1 -1
- package/build/esm/utils/typeguard.d.ts +2 -2
- package/build/esm/utils/typeguard.d.ts.map +1 -1
- package/build/esm/utils/variables.d.ts +2 -2
- package/build/esm/utils/variables.d.ts.map +1 -1
- package/package.json +46 -48
- package/build/cjs/crypto/hex2abc.test.d.ts +0 -2
- package/build/cjs/crypto/hex2abc.test.d.ts.map +0 -1
- package/build/cjs/crypto/hex2abc.test.js +0 -12
- package/build/cjs/crypto/murmurhash.test.d.ts +0 -2
- package/build/cjs/crypto/murmurhash.test.d.ts.map +0 -1
- package/build/cjs/crypto/murmurhash.test.js +0 -23
- package/build/cjs/utils/__fixtures__/name.json +0 -64
- package/build/cjs/utils/array.test.d.ts +0 -2
- package/build/cjs/utils/array.test.d.ts.map +0 -1
- package/build/cjs/utils/array.test.js +0 -237
- package/build/cjs/utils/email.test.d.ts +0 -2
- package/build/cjs/utils/email.test.d.ts.map +0 -1
- package/build/cjs/utils/email.test.js +0 -22
- package/build/cjs/utils/functional.test.d.ts +0 -2
- package/build/cjs/utils/functional.test.d.ts.map +0 -1
- package/build/cjs/utils/functional.test.js +0 -139
- package/build/cjs/utils/id.test.d.ts +0 -2
- package/build/cjs/utils/id.test.d.ts.map +0 -1
- package/build/cjs/utils/id.test.js +0 -66
- package/build/cjs/utils/intent.test.d.ts +0 -2
- package/build/cjs/utils/intent.test.d.ts.map +0 -1
- package/build/cjs/utils/intent.test.js +0 -100
- package/build/cjs/utils/map.test.d.ts +0 -2
- package/build/cjs/utils/map.test.d.ts.map +0 -1
- package/build/cjs/utils/map.test.js +0 -22
- package/build/cjs/utils/object/common.test.d.ts +0 -2
- package/build/cjs/utils/object/common.test.d.ts.map +0 -1
- package/build/cjs/utils/object/common.test.js +0 -175
- package/build/cjs/utils/object/deepMap.test.d.ts +0 -2
- package/build/cjs/utils/object/deepMap.test.d.ts.map +0 -1
- package/build/cjs/utils/object/deepMap.test.js +0 -114
- package/build/cjs/utils/object/diff.test.d.ts +0 -2
- package/build/cjs/utils/object/diff.test.d.ts.map +0 -1
- package/build/cjs/utils/object/diff.test.js +0 -19
- package/build/cjs/utils/object/keys.test.d.ts +0 -2
- package/build/cjs/utils/object/keys.test.d.ts.map +0 -1
- package/build/cjs/utils/object/keys.test.js +0 -15
- package/build/cjs/utils/promise.test.d.ts +0 -2
- package/build/cjs/utils/promise.test.d.ts.map +0 -1
- package/build/cjs/utils/promise.test.js +0 -25
- package/build/cjs/utils/protocol.test.d.ts +0 -2
- package/build/cjs/utils/protocol.test.d.ts.map +0 -1
- package/build/cjs/utils/protocol.test.js +0 -40
- package/build/cjs/utils/slot.test.d.ts +0 -2
- package/build/cjs/utils/slot.test.d.ts.map +0 -1
- package/build/cjs/utils/slot.test.js +0 -38
- package/build/cjs/utils/string.test.d.ts +0 -2
- package/build/cjs/utils/string.test.d.ts.map +0 -1
- package/build/cjs/utils/string.test.js +0 -53
- package/build/cjs/utils/timezones.test.d.ts +0 -2
- package/build/cjs/utils/timezones.test.d.ts.map +0 -1
- package/build/cjs/utils/timezones.test.js +0 -12
- package/build/cjs/utils/typeguard.test.d.ts +0 -2
- package/build/cjs/utils/typeguard.test.d.ts.map +0 -1
- package/build/cjs/utils/typeguard.test.js +0 -55
- package/build/esm/crypto/hex2abc.test.d.ts +0 -2
- package/build/esm/crypto/hex2abc.test.d.ts.map +0 -1
- package/build/esm/crypto/hex2abc.test.js +0 -10
- package/build/esm/crypto/murmurhash.test.d.ts +0 -2
- package/build/esm/crypto/murmurhash.test.d.ts.map +0 -1
- package/build/esm/crypto/murmurhash.test.js +0 -21
- package/build/esm/utils/__fixtures__/name.json +0 -64
- package/build/esm/utils/array.test.d.ts +0 -2
- package/build/esm/utils/array.test.d.ts.map +0 -1
- package/build/esm/utils/array.test.js +0 -235
- package/build/esm/utils/email.test.d.ts +0 -2
- package/build/esm/utils/email.test.d.ts.map +0 -1
- package/build/esm/utils/email.test.js +0 -20
- package/build/esm/utils/functional.test.d.ts +0 -2
- package/build/esm/utils/functional.test.d.ts.map +0 -1
- package/build/esm/utils/functional.test.js +0 -137
- package/build/esm/utils/id.test.d.ts +0 -2
- package/build/esm/utils/id.test.d.ts.map +0 -1
- package/build/esm/utils/id.test.js +0 -64
- package/build/esm/utils/intent.test.d.ts +0 -2
- package/build/esm/utils/intent.test.d.ts.map +0 -1
- package/build/esm/utils/intent.test.js +0 -75
- package/build/esm/utils/map.test.d.ts +0 -2
- package/build/esm/utils/map.test.d.ts.map +0 -1
- package/build/esm/utils/map.test.js +0 -20
- package/build/esm/utils/object/common.test.d.ts +0 -2
- package/build/esm/utils/object/common.test.d.ts.map +0 -1
- package/build/esm/utils/object/common.test.js +0 -173
- package/build/esm/utils/object/deepMap.test.d.ts +0 -2
- package/build/esm/utils/object/deepMap.test.d.ts.map +0 -1
- package/build/esm/utils/object/deepMap.test.js +0 -109
- package/build/esm/utils/object/diff.test.d.ts +0 -2
- package/build/esm/utils/object/diff.test.d.ts.map +0 -1
- package/build/esm/utils/object/diff.test.js +0 -17
- package/build/esm/utils/object/keys.test.d.ts +0 -2
- package/build/esm/utils/object/keys.test.d.ts.map +0 -1
- package/build/esm/utils/object/keys.test.js +0 -13
- package/build/esm/utils/promise.test.d.ts +0 -2
- package/build/esm/utils/promise.test.d.ts.map +0 -1
- package/build/esm/utils/promise.test.js +0 -23
- package/build/esm/utils/protocol.test.d.ts +0 -2
- package/build/esm/utils/protocol.test.d.ts.map +0 -1
- package/build/esm/utils/protocol.test.js +0 -38
- package/build/esm/utils/slot.test.d.ts +0 -2
- package/build/esm/utils/slot.test.d.ts.map +0 -1
- package/build/esm/utils/slot.test.js +0 -13
- package/build/esm/utils/string.test.d.ts +0 -2
- package/build/esm/utils/string.test.d.ts.map +0 -1
- package/build/esm/utils/string.test.js +0 -51
- package/build/esm/utils/timezones.test.d.ts +0 -2
- package/build/esm/utils/timezones.test.d.ts.map +0 -1
- package/build/esm/utils/timezones.test.js +0 -10
- package/build/esm/utils/typeguard.test.d.ts +0 -2
- package/build/esm/utils/typeguard.test.d.ts.map +0 -1
- package/build/esm/utils/typeguard.test.js +0 -53
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { getKeys } from './keys.js';
|
|
2
|
-
describe('Utils | object | keys', () => {
|
|
3
|
-
describe('getKeys()', () => {
|
|
4
|
-
it('gets keys with a strict type', () => {
|
|
5
|
-
const foo = Symbol('foo');
|
|
6
|
-
const bar = Symbol('bar');
|
|
7
|
-
const fizz = Symbol('fizz');
|
|
8
|
-
const keys = getKeys({ [foo]: 1, [bar]: 2, [fizz]: 3 });
|
|
9
|
-
// this would throw a compiler error if `keys[0]` was a `string`
|
|
10
|
-
keys[0] === foo;
|
|
11
|
-
});
|
|
12
|
-
});
|
|
13
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"promise.test.d.ts","sourceRoot":"","sources":["../../../src/utils/promise.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { delay, rejectIn } from './promise.js';
|
|
2
|
-
describe('Utils | promise', () => {
|
|
3
|
-
describe('delay()', () => {
|
|
4
|
-
it('delay for the provided time before resolving', async () => {
|
|
5
|
-
const timeout = 10;
|
|
6
|
-
const start = Date.now();
|
|
7
|
-
await delay(timeout);
|
|
8
|
-
expect(Date.now() - start).toBeGreaterThanOrEqual(timeout);
|
|
9
|
-
});
|
|
10
|
-
});
|
|
11
|
-
describe('rejectIn()', () => {
|
|
12
|
-
it('delay for the provided time before rejecting', async () => {
|
|
13
|
-
const timeout = 10;
|
|
14
|
-
const start = Date.now();
|
|
15
|
-
try {
|
|
16
|
-
await rejectIn(timeout);
|
|
17
|
-
}
|
|
18
|
-
catch (err) {
|
|
19
|
-
expect(Date.now() - start).toBeGreaterThanOrEqual(timeout);
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.test.d.ts","sourceRoot":"","sources":["../../../src/utils/protocol.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Channel, createChannel, typeFactory } from './protocol.js';
|
|
2
|
-
describe('Utils | protocol', () => {
|
|
3
|
-
describe('typeFactory()', () => {
|
|
4
|
-
it('should generate a prefixed type', () => {
|
|
5
|
-
expect(typeFactory('red', 'blue')('green')).toBe('red.blue.green');
|
|
6
|
-
});
|
|
7
|
-
});
|
|
8
|
-
describe('Channel', () => {
|
|
9
|
-
describe('build()', () => {
|
|
10
|
-
it('store original build function directly', () => {
|
|
11
|
-
const channel = new Channel(['foo', 'bar'], ({ foo, bar }) => `${foo}/fizz/buzz/${bar}`);
|
|
12
|
-
expect(channel.build({ foo: '123', bar: '456' })).toBe('123/fizz/buzz/456');
|
|
13
|
-
});
|
|
14
|
-
});
|
|
15
|
-
describe('buildMatcher()', () => {
|
|
16
|
-
it('store build a matcher using the provided argument names', () => {
|
|
17
|
-
const channel = new Channel(['foo', 'bar'], ({ foo, bar }) => `${foo}/fizz/buzz/${bar}`);
|
|
18
|
-
expect(channel.buildMatcher()).toBe(':foo/fizz/buzz/:bar');
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
describe('extend()', () => {
|
|
22
|
-
it('create a channel built to be suffixed to the output of an existing channel', () => {
|
|
23
|
-
const fooChannel = new Channel(['foo'], ({ foo }) => `foo/${foo}`);
|
|
24
|
-
const barChannel = fooChannel.extend(['bar'], ({ bar }) => `bar/${bar}`);
|
|
25
|
-
expect(barChannel.buildMatcher()).toBe('foo/:foo/bar/:bar');
|
|
26
|
-
expect(barChannel.build({ foo: '123', bar: '456' })).toBe('foo/123/bar/456');
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
describe('createChannel()', () => {
|
|
30
|
-
it('constructs a new Channel', () => {
|
|
31
|
-
const channel = createChannel(['foo'], ({ foo }) => `foo/${foo}`);
|
|
32
|
-
expect(channel).toBeInstanceOf(Channel);
|
|
33
|
-
expect(channel.buildMatcher()).toBe('foo/:foo');
|
|
34
|
-
expect(channel.build({ foo: '123' })).toBe('foo/123');
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slot.test.d.ts","sourceRoot":"","sources":["../../../src/utils/slot.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import * as SlotUtils from './slot.js';
|
|
2
|
-
describe('Utils | slot', () => {
|
|
3
|
-
describe('getValueWithSynonyms', () => {
|
|
4
|
-
it('extracts synonyms', () => {
|
|
5
|
-
expect(SlotUtils.getValueWithSynonyms('a, b, c, d')).toEqual(['a', ['b', 'c', 'd']]);
|
|
6
|
-
});
|
|
7
|
-
});
|
|
8
|
-
describe('mapSlotAnnotations', () => {
|
|
9
|
-
it('renames keys and maps', () => {
|
|
10
|
-
expect(SlotUtils.mapSlotAnnotations('test {{[name].key}} thing', () => ({ key: 'newKey', name: 'newName' }))).toEqual('test {{[newName].newKey}} thing');
|
|
11
|
-
});
|
|
12
|
-
});
|
|
13
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"string.test.d.ts","sourceRoot":"","sources":["../../../src/utils/string.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { arrayStringReplace, capitalizeAllWords, capitalizeFirstLetter, conditionalReplace, removeTrailingUnderscores, stripHTMLTags, } from './string.js';
|
|
2
|
-
describe('Utils | string', () => {
|
|
3
|
-
describe('capitalizeFirstLetter()', () => {
|
|
4
|
-
it('capitalizes the first letter', () => {
|
|
5
|
-
expect(capitalizeFirstLetter('')).toBe('');
|
|
6
|
-
expect(capitalizeFirstLetter('123')).toBe('123');
|
|
7
|
-
expect(capitalizeFirstLetter('abc')).toBe('Abc');
|
|
8
|
-
});
|
|
9
|
-
});
|
|
10
|
-
describe('capitalizeAllWords()', () => {
|
|
11
|
-
it('capitalizes all the space-delimited words', () => {
|
|
12
|
-
expect(capitalizeAllWords('')).toBe('');
|
|
13
|
-
expect(capitalizeAllWords('abc')).toBe('Abc');
|
|
14
|
-
expect(capitalizeAllWords('abc def')).toBe('Abc Def');
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
describe('arrayStringReplace()', () => {
|
|
18
|
-
it('replace a pattern for each item in an array', () => {
|
|
19
|
-
expect(arrayStringReplace('x', 'y', [])).toEqual([]);
|
|
20
|
-
expect(arrayStringReplace('x', 'y', ['foo'])).toEqual(['foo']);
|
|
21
|
-
expect(arrayStringReplace('x', 'y', ['xyz', 'foo', 'fox', 'bar'])).toEqual(['yyz', 'foo', 'foy', 'bar']);
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
describe('stripHTMLTags()', () => {
|
|
25
|
-
it('remove HTML tags from a string', () => {
|
|
26
|
-
expect(stripHTMLTags('')).toBe('');
|
|
27
|
-
expect(stripHTMLTags('<')).toBe('<');
|
|
28
|
-
expect(stripHTMLTags('<>')).toBe('<>');
|
|
29
|
-
expect(stripHTMLTags('<foo>')).toBe('');
|
|
30
|
-
expect(stripHTMLTags('a b c d')).toBe('a b c d');
|
|
31
|
-
expect(stripHTMLTags('a <foo> b <bar> c <fizz> d')).toBe('a b c d');
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
describe('removeTrailingUnderscores()', () => {
|
|
35
|
-
it('remove leading and trailing underscore characters', () => {
|
|
36
|
-
expect(removeTrailingUnderscores('')).toBe('');
|
|
37
|
-
expect(removeTrailingUnderscores('foo')).toBe('foo');
|
|
38
|
-
expect(removeTrailingUnderscores('__foo')).toBe('foo');
|
|
39
|
-
expect(removeTrailingUnderscores('foo__')).toBe('foo');
|
|
40
|
-
expect(removeTrailingUnderscores('__foo__')).toBe('foo');
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
describe('conditionalReplace()', () => {
|
|
44
|
-
it('do nothing with falsey value', () => {
|
|
45
|
-
expect(conditionalReplace('fizz', /i/)).toBe('fizz');
|
|
46
|
-
});
|
|
47
|
-
it('use truthy value as replacement value', () => {
|
|
48
|
-
expect(conditionalReplace('fizz', /i/, 'u')).toBe('fuzz');
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timezones.test.d.ts","sourceRoot":"","sources":["../../../src/utils/timezones.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { unique } from './array.js';
|
|
2
|
-
import { TIMEZONES } from './timezones.js';
|
|
3
|
-
describe('Utils | timezones', () => {
|
|
4
|
-
describe('TIMEZONES', () => {
|
|
5
|
-
it('a list of all timezones', () => {
|
|
6
|
-
expect(TIMEZONES.length).toBe(490);
|
|
7
|
-
expect(unique(TIMEZONES)).toEqual(TIMEZONES);
|
|
8
|
-
});
|
|
9
|
-
});
|
|
10
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typeguard.test.d.ts","sourceRoot":"","sources":["../../../src/utils/typeguard.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { createTypedTypeguardCreator, createTypeguardCreator } from './typeguard.js';
|
|
2
|
-
describe('Utils | typeguard', () => {
|
|
3
|
-
describe('createTypeguardCreator()', () => {
|
|
4
|
-
it('casts the guarded argument', () => {
|
|
5
|
-
const createTypeguard = createTypeguardCreator();
|
|
6
|
-
const input = 'foo';
|
|
7
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8
|
-
const assertTyped = (_arg) => undefined;
|
|
9
|
-
const typeguard = createTypeguard('foo');
|
|
10
|
-
if (typeguard(input)) {
|
|
11
|
-
assertTyped(input);
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
it('typeguard against a single value', () => {
|
|
15
|
-
const createTypeguard = createTypeguardCreator();
|
|
16
|
-
const typeguard = createTypeguard('foo');
|
|
17
|
-
expect(typeguard('foo')).toBe(true);
|
|
18
|
-
expect(typeguard('bar')).toBe(false);
|
|
19
|
-
});
|
|
20
|
-
it('typeguard against an array of values', () => {
|
|
21
|
-
const createTypeguard = createTypeguardCreator();
|
|
22
|
-
const typeguard = createTypeguard(['foo', 'bar']);
|
|
23
|
-
expect(typeguard('foo')).toBe(true);
|
|
24
|
-
expect(typeguard('bar')).toBe(true);
|
|
25
|
-
expect(typeguard('fizz')).toBe(false);
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
describe('createTypedTypeguardCreator()', () => {
|
|
29
|
-
it('casts the guarded argument', () => {
|
|
30
|
-
const createTypeguard = createTypedTypeguardCreator();
|
|
31
|
-
const input = { type: 'foo', id: 123 };
|
|
32
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
33
|
-
const assertTyped = (_arg) => undefined;
|
|
34
|
-
const typeguard = createTypeguard('foo');
|
|
35
|
-
if (typeguard(input)) {
|
|
36
|
-
assertTyped(input);
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
it('typeguard against a single value', () => {
|
|
40
|
-
const createTypeguard = createTypedTypeguardCreator();
|
|
41
|
-
const typeguard = createTypeguard('foo');
|
|
42
|
-
expect(typeguard({ type: 'foo', id: 1 })).toBe(true);
|
|
43
|
-
expect(typeguard({ type: 'bar', id: 2 })).toBe(false);
|
|
44
|
-
});
|
|
45
|
-
it('typeguard against an array of values', () => {
|
|
46
|
-
const createTypeguard = createTypedTypeguardCreator();
|
|
47
|
-
const typeguard = createTypeguard(['foo', 'bar']);
|
|
48
|
-
expect(typeguard({ type: 'foo', id: 1 })).toBe(true);
|
|
49
|
-
expect(typeguard({ type: 'bar', id: 2 })).toBe(true);
|
|
50
|
-
expect(typeguard({ type: 'fizz', id: 3 })).toBe(false);
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
});
|