hyperscript-rxjs 1.3.15 → 1.3.16
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/hyperscript-rxjs.cjs +4114 -0
- package/dist/hyperscript-rxjs.d.ts +1438 -0
- package/package.json +21 -12
- package/src/array/advance.d.ts +0 -9
- package/src/array/advance.js +0 -13
- package/src/array/advance.test.js +0 -12
- package/src/array/arrayInsert.d.ts +0 -8
- package/src/array/arrayInsert.js +0 -13
- package/src/array/arrayInsert.test.js +0 -13
- package/src/array/arrayRemove.d.ts +0 -7
- package/src/array/arrayRemove.js +0 -15
- package/src/array/arrayRemove.test.js +0 -13
- package/src/array/findLastIndex.d.ts +0 -14
- package/src/array/findLastIndex.js +0 -20
- package/src/array/findLastIndex.test.js +0 -41
- package/src/array/index.d.ts +0 -9
- package/src/array/index.js +0 -9
- package/src/array/isRange.d.ts +0 -7
- package/src/array/isRange.js +0 -15
- package/src/array/isRange.test.js +0 -6
- package/src/array/rangeArray.d.ts +0 -7
- package/src/array/rangeArray.js +0 -10
- package/src/array/rangeArray.test.js +0 -11
- package/src/array/unwrapArgs.d.ts +0 -10
- package/src/array/unwrapArgs.js +0 -15
- package/src/array/unwrapArgs.test.js +0 -33
- package/src/array/zipArray.d.ts +0 -11
- package/src/array/zipArray.js +0 -24
- package/src/array/zipArray.test.js +0 -16
- package/src/comparers/Comparer.d.ts +0 -101
- package/src/comparers/Comparer.js +0 -149
- package/src/comparers/comparers.d.ts +0 -21
- package/src/comparers/comparers.js +0 -10
- package/src/comparers/differenceSet.d.ts +0 -20
- package/src/comparers/differenceSet.js +0 -35
- package/src/comparers/differenceSet.test.js +0 -11
- package/src/comparers/distinctArray.d.ts +0 -13
- package/src/comparers/distinctArray.js +0 -30
- package/src/comparers/distinctArray.test.js +0 -10
- package/src/comparers/findIndexInSet.d.ts +0 -20
- package/src/comparers/findIndexInSet.js +0 -27
- package/src/comparers/findIndexInSet.test.js +0 -8
- package/src/comparers/groupArrayBy.d.ts +0 -19
- package/src/comparers/groupArrayBy.js +0 -29
- package/src/comparers/groupArrayBy.test.js +0 -38
- package/src/comparers/groupSortedEntries.d.ts +0 -17
- package/src/comparers/groupSortedEntries.js +0 -38
- package/src/comparers/groupSortedEntries.test.js +0 -46
- package/src/comparers/index.d.ts +0 -14
- package/src/comparers/index.js +0 -14
- package/src/comparers/intersectSet.d.ts +0 -19
- package/src/comparers/intersectSet.js +0 -35
- package/src/comparers/intersectSet.test.js +0 -14
- package/src/comparers/isEqualset.d.ts +0 -22
- package/src/comparers/isEqualset.js +0 -33
- package/src/comparers/isEqualset.test.js +0 -22
- package/src/comparers/isSubset.d.ts +0 -21
- package/src/comparers/isSubset.js +0 -33
- package/src/comparers/isSubset.test.js +0 -21
- package/src/comparers/isSuperset.d.ts +0 -21
- package/src/comparers/isSuperset.js +0 -13
- package/src/comparers/isSuperset.test.js +0 -21
- package/src/comparers/sortedArrayToSet.d.ts +0 -20
- package/src/comparers/sortedArrayToSet.js +0 -35
- package/src/comparers/sortedArrayToSet.test.js +0 -11
- package/src/comparers/unionSet.d.ts +0 -21
- package/src/comparers/unionSet.js +0 -34
- package/src/comparers/unionSet.test.js +0 -11
- package/src/comparison/compareDate.d.ts +0 -8
- package/src/comparison/compareDate.js +0 -11
- package/src/comparison/compareEntries.d.ts +0 -13
- package/src/comparison/compareEntries.js +0 -13
- package/src/comparison/compareKey.d.ts +0 -11
- package/src/comparison/compareKey.js +0 -25
- package/src/comparison/compareKey.test.js +0 -21
- package/src/comparison/compareKeyPath.d.ts +0 -15
- package/src/comparison/compareKeyPath.js +0 -33
- package/src/comparison/compareKeyPath.test.js +0 -28
- package/src/comparison/compareNumber.d.ts +0 -11
- package/src/comparison/compareNumber.js +0 -27
- package/src/comparison/compareNumber.test.js +0 -21
- package/src/comparison/defaultCompare.d.ts +0 -8
- package/src/comparison/defaultCompare.js +0 -12
- package/src/comparison/defaultCompare.test.js +0 -24
- package/src/comparison/index.d.ts +0 -7
- package/src/comparison/index.js +0 -7
- package/src/comparison/infinity.test.js +0 -122
- package/src/comparison/typeof.test.js +0 -64
- package/src/comparison/types.d.ts +0 -5
- package/src/comparison/types.js +0 -11
- package/src/deep/Deep.d.ts +0 -58
- package/src/deep/Deep.js +0 -267
- package/src/deep/Deep.test.js +0 -130
- package/src/deep/deepCombineLatest.test.js +0 -36
- package/src/deep/deepMerge.test.js +0 -34
- package/src/deep/differenceDeep.test.js +0 -31
- package/src/deep/freshValueDeep.test.js +0 -17
- package/src/deep/index.d.ts +0 -1
- package/src/deep/index.js +0 -2
- package/src/deep/intersectDeep.test.js +0 -25
- package/src/deep/intersectEntries.d.ts +0 -13
- package/src/deep/intersectEntries.js +0 -37
- package/src/deep/intersectEntries.test.js +0 -20
- package/src/deep/objectToDeep.test.js +0 -31
- package/src/deep/replaceValueDeep.test.js +0 -21
- package/src/deep/unionDeep.test.js +0 -30
- package/src/deep/zipValueDeep.test.js +0 -21
- package/src/deep-rxjs/ObservableArray.d.ts +0 -55
- package/src/deep-rxjs/ObservableArray.js +0 -94
- package/src/deep-rxjs/ObservableArray.test.js +0 -117
- package/src/deep-rxjs/index.d.ts +0 -2
- package/src/deep-rxjs/index.js +0 -2
- package/src/deep-rxjs/isRxType.d.ts +0 -9
- package/src/deep-rxjs/isRxType.js +0 -15
- package/src/deep-rxjs/isRxType.test.js +0 -43
- package/src/hyperscript-rxjs/HyperscriptExtensions.d.ts +0 -20
- package/src/hyperscript-rxjs/checkbox.d.ts +0 -13
- package/src/hyperscript-rxjs/checkbox.js +0 -47
- package/src/hyperscript-rxjs/checkbox.test.js +0 -68
- package/src/hyperscript-rxjs/choice.d.ts +0 -13
- package/src/hyperscript-rxjs/choice.js +0 -24
- package/src/hyperscript-rxjs/choice.test.js +0 -108
- package/src/hyperscript-rxjs/collapse.d.ts +0 -14
- package/src/hyperscript-rxjs/collapse.js +0 -32
- package/src/hyperscript-rxjs/collapse.test.js +0 -67
- package/src/hyperscript-rxjs/displays/blockLevelFamily.d.ts +0 -5
- package/src/hyperscript-rxjs/displays/blockLevelFamily.js +0 -51
- package/src/hyperscript-rxjs/displays/getDisplay.d.ts +0 -7
- package/src/hyperscript-rxjs/displays/getDisplay.js +0 -51
- package/src/hyperscript-rxjs/displays/getDisplay.test.js +0 -56
- package/src/hyperscript-rxjs/displays/index.d.ts +0 -3
- package/src/hyperscript-rxjs/displays/index.js +0 -3
- package/src/hyperscript-rxjs/displays/inlineFamily.d.ts +0 -5
- package/src/hyperscript-rxjs/displays/inlineFamily.js +0 -73
- package/src/hyperscript-rxjs/flip.d.ts +0 -15
- package/src/hyperscript-rxjs/flip.js +0 -29
- package/src/hyperscript-rxjs/flip.test.js +0 -85
- package/src/hyperscript-rxjs/fragment.d.ts +0 -10
- package/src/hyperscript-rxjs/fragment.js +0 -22
- package/src/hyperscript-rxjs/fragment.test.js +0 -70
- package/src/hyperscript-rxjs/hyperscript.d.ts +0 -15
- package/src/hyperscript-rxjs/hyperscript.js +0 -170
- package/src/hyperscript-rxjs/hyperscript.test.js +0 -75
- package/src/hyperscript-rxjs/index.d.ts +0 -19
- package/src/hyperscript-rxjs/index.js +0 -19
- package/src/hyperscript-rxjs/multiselect.d.ts +0 -18
- package/src/hyperscript-rxjs/multiselect.js +0 -41
- package/src/hyperscript-rxjs/multiselect.test.js +0 -121
- package/src/hyperscript-rxjs/numberbox.d.ts +0 -14
- package/src/hyperscript-rxjs/numberbox.js +0 -73
- package/src/hyperscript-rxjs/numberbox.test.js +0 -84
- package/src/hyperscript-rxjs/radio.d.ts +0 -15
- package/src/hyperscript-rxjs/radio.js +0 -53
- package/src/hyperscript-rxjs/radio.test.js +0 -59
- package/src/hyperscript-rxjs/select.d.ts +0 -28
- package/src/hyperscript-rxjs/select.js +0 -88
- package/src/hyperscript-rxjs/select.test.js +0 -101
- package/src/hyperscript-rxjs/tabControls/bindTabIndex.d.ts +0 -12
- package/src/hyperscript-rxjs/tabControls/bindTabIndex.js +0 -59
- package/src/hyperscript-rxjs/tabControls/index.d.ts +0 -8
- package/src/hyperscript-rxjs/tabControls/index.js +0 -10
- package/src/hyperscript-rxjs/tabControls/tabControl.d.ts +0 -19
- package/src/hyperscript-rxjs/tabControls/tabControl.js +0 -40
- package/src/hyperscript-rxjs/tabControls/tabControl.test.js +0 -98
- package/src/hyperscript-rxjs/tabControls/tabNavItem.d.ts +0 -9
- package/src/hyperscript-rxjs/tabControls/tabNavItem.js +0 -30
- package/src/hyperscript-rxjs/tabControls/tabPanel.d.ts +0 -9
- package/src/hyperscript-rxjs/tabControls/tabPanel.js +0 -21
- package/src/hyperscript-rxjs/tabControls/tabRoot.d.ts +0 -7
- package/src/hyperscript-rxjs/tabControls/tabRoot.js +0 -26
- package/src/hyperscript-rxjs/tags.d.ts +0 -193
- package/src/hyperscript-rxjs/tags.js +0 -751
- package/src/hyperscript-rxjs/tags.test.js +0 -75
- package/src/hyperscript-rxjs/textNode.d.ts +0 -11
- package/src/hyperscript-rxjs/textNode.js +0 -51
- package/src/hyperscript-rxjs/textNode.test.js +0 -56
- package/src/hyperscript-rxjs/textarea.d.ts +0 -17
- package/src/hyperscript-rxjs/textarea.js +0 -45
- package/src/hyperscript-rxjs/textarea.test.js +0 -52
- package/src/hyperscript-rxjs/textbox.d.ts +0 -15
- package/src/hyperscript-rxjs/textbox.js +0 -42
- package/src/hyperscript-rxjs/textbox.test.js +0 -52
- package/src/index.d.ts +0 -19
- package/src/index.js +0 -19
- package/src/nodes/attachSubscriptionToNode.d.ts +0 -13
- package/src/nodes/attachSubscriptionToNode.js +0 -25
- package/src/nodes/attachSubscriptionToNode.test.js +0 -73
- package/src/nodes/index.d.ts +0 -6
- package/src/nodes/index.js +0 -6
- package/src/nodes/normalizeChildNodes.d.ts +0 -9
- package/src/nodes/normalizeChildNodes.js +0 -15
- package/src/nodes/normalizeChildNodes.test.js +0 -55
- package/src/nodes/parseHyperscriptArgs.d.ts +0 -10
- package/src/nodes/parseHyperscriptArgs.js +0 -57
- package/src/nodes/parseHyperscriptArgs.test.js +0 -85
- package/src/nodes/pipeEvent.d.ts +0 -15
- package/src/nodes/pipeEvent.js +0 -49
- package/src/nodes/pipeEvent.test.js +0 -97
- package/src/nodes/subscribeEvent.d.ts +0 -15
- package/src/nodes/subscribeEvent.js +0 -56
- package/src/nodes/subscribeEvent.test.js +0 -88
- package/src/object/index.d.ts +0 -10
- package/src/object/index.js +0 -11
- package/src/object/intersectObject.d.ts +0 -12
- package/src/object/intersectObject.js +0 -23
- package/src/object/intersectObject.test.js +0 -69
- package/src/object/isEmptyObject.d.ts +0 -7
- package/src/object/isEmptyObject.js +0 -13
- package/src/object/isEmptyObject.test.js +0 -33
- package/src/object/isPlainObject.d.ts +0 -11
- package/src/object/isPlainObject.js +0 -18
- package/src/object/nestedCombineLatest.d.ts +0 -11
- package/src/object/nestedCombineLatest.js +0 -18
- package/src/object/nestedCombineLatest.test.js +0 -25
- package/src/object/nestedMerge.d.ts +0 -11
- package/src/object/nestedMerge.js +0 -11
- package/src/object/nestedMerge.test.js +0 -61
- package/src/object/pickBehaviorSubject.d.ts +0 -13
- package/src/object/pickBehaviorSubject.js +0 -81
- package/src/object/pickBehaviorSubject.test.js +0 -88
- package/src/object/pluckProperty.d.ts +0 -13
- package/src/object/pluckProperty.js +0 -24
- package/src/object/pluckProperty.test.js +0 -37
- package/src/object/restore.d.ts +0 -12
- package/src/object/restore.js +0 -69
- package/src/object/restore.test.js +0 -124
- package/src/object/splitObjectByObservable.d.ts +0 -12
- package/src/object/splitObjectByObservable.js +0 -41
- package/src/object/splitObjectByObservable.test.js +0 -78
- package/src/props/getNestedProperty.d.ts +0 -12
- package/src/props/getNestedProperty.js +0 -31
- package/src/props/getNestedProperty.test.js +0 -72
- package/src/props/index.d.ts +0 -7
- package/src/props/index.js +0 -7
- package/src/props/parsePropName.d.ts +0 -13
- package/src/props/parsePropName.js +0 -45
- package/src/props/parsePropName.test.js +0 -67
- package/src/props/setProp.d.ts +0 -16
- package/src/props/setProp.js +0 -42
- package/src/props/setProp.test.js +0 -59
- package/src/props/setProps.d.ts +0 -14
- package/src/props/setProps.js +0 -47
- package/src/props/setProps.test.js +0 -97
- package/src/props/subscribeProp.d.ts +0 -16
- package/src/props/subscribeProp.js +0 -47
- package/src/props/subscribeProp.test.js +0 -81
- package/src/ramda/compose.d.ts +0 -10
- package/src/ramda/compose.js +0 -36
- package/src/ramda/compose.test.js +0 -73
- package/src/ramda/cond.d.ts +0 -12
- package/src/ramda/cond.js +0 -29
- package/src/ramda/cond.test.js +0 -88
- package/src/ramda/fold.d.ts +0 -13
- package/src/ramda/fold.js +0 -20
- package/src/ramda/fold.test.js +0 -51
- package/src/ramda/index.d.ts +0 -6
- package/src/ramda/index.js +0 -6
- package/src/ramda/pipe.d.ts +0 -13
- package/src/ramda/pipe.js +0 -27
- package/src/ramda/pipe.test.js +0 -77
- package/src/ramda/unfold.d.ts +0 -11
- package/src/ramda/unfold.js +0 -20
- package/src/ramda/unfold.test.js +0 -29
- package/src/unquoted-json/ajax.test.js +0 -1074
- package/src/unquoted-json/index.d.ts +0 -13
- package/src/unquoted-json/index.js +0 -12
- package/src/unquoted-json/queryStringify.d.ts +0 -8
- package/src/unquoted-json/queryStringify.js +0 -70
- package/src/unquoted-json/queryStringify.test.js +0 -110
- package/src/unquoted-json/stringifyKey.d.ts +0 -7
- package/src/unquoted-json/stringifyKey.js +0 -16
- package/src/unquoted-json/stringifyKey.test.js +0 -51
- package/src/unquoted-json/stringifyStringValue.d.ts +0 -7
- package/src/unquoted-json/stringifyStringValue.js +0 -17
- package/src/unquoted-json/stringifyStringValue.test.js +0 -52
- package/src/unquoted-json/unquotedJsonStringify.d.ts +0 -7
- package/src/unquoted-json/unquotedJsonStringify.js +0 -39
- package/src/unquoted-json/unquotedJsonStringify.test.js +0 -52
package/src/ramda/pipe.js
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* 数据优先的管道处理工具(从左向右执行)
|
3
|
-
* 适合一次性数据处理流程
|
4
|
-
* @param {*} initialValue - 初始值
|
5
|
-
* @param {...Function} fns - 要应用的函数管道(从左向右执行)
|
6
|
-
* @returns {*} 经过管道处理后的结果
|
7
|
-
* @throws {TypeError} 当参数包含非函数时抛出错误
|
8
|
-
*/
|
9
|
-
export const pipe = (initialValue, ...fns) => {
|
10
|
-
// 无函数时直接返回初始值
|
11
|
-
if (fns.length === 0) return initialValue;
|
12
|
-
|
13
|
-
// 类型检查(遇到第一个错误就抛出)
|
14
|
-
const firstNonFunctionIndex = fns.findIndex(fn => typeof fn !== 'function');
|
15
|
-
if (firstNonFunctionIndex !== -1) {
|
16
|
-
const invalidFn = fns[firstNonFunctionIndex];
|
17
|
-
const errorType =
|
18
|
-
invalidFn === null ? 'null' :
|
19
|
-
invalidFn === undefined ? 'undefined' :
|
20
|
-
typeof invalidFn;
|
21
|
-
throw new TypeError(
|
22
|
-
`所有管道函数必须是函数,但第 ${firstNonFunctionIndex} 个参数是: ${errorType}`
|
23
|
-
);
|
24
|
-
}
|
25
|
-
|
26
|
-
return fns.reduce((acc, fn) => fn(acc), initialValue);
|
27
|
-
};
|
package/src/ramda/pipe.test.js
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
import { pipe } from './pipe';
|
2
|
-
|
3
|
-
describe('pipe function', () => {
|
4
|
-
describe('基础功能', () => {
|
5
|
-
test('空函数列表时返回初始值', () => {
|
6
|
-
expect(pipe(42)).toBe(42);
|
7
|
-
expect(pipe('hello')).toBe('hello');
|
8
|
-
expect(pipe(null)).toBeNull();
|
9
|
-
expect(pipe(undefined)).toBeUndefined();
|
10
|
-
});
|
11
|
-
|
12
|
-
test('从左向右正确执行函数管道', () => {
|
13
|
-
const add1 = x => x + 1;
|
14
|
-
const square = x => x * x;
|
15
|
-
const double = x => x * 2;
|
16
|
-
|
17
|
-
const result = pipe(3, double, square, add1);
|
18
|
-
expect(result).toBe(37); // ((3*2)^2)+1 = 37
|
19
|
-
});
|
20
|
-
|
21
|
-
test('处理单函数情况', () => {
|
22
|
-
const mockFn = jest.fn(x => x.toUpperCase());
|
23
|
-
const result = pipe('test', mockFn);
|
24
|
-
|
25
|
-
expect(result).toBe('TEST');
|
26
|
-
expect(mockFn).toHaveBeenCalledWith('test');
|
27
|
-
});
|
28
|
-
});
|
29
|
-
|
30
|
-
describe('类型检查', () => {
|
31
|
-
test('检测第一个非函数参数并报错', () => {
|
32
|
-
const errorCases = [
|
33
|
-
{ input: [42], expected: '第 0 个参数是: number' },
|
34
|
-
{ input: [x => x, null], expected: '第 1 个参数是: null' },
|
35
|
-
{ input: [undefined, x => x], expected: '第 0 个参数是: undefined' },
|
36
|
-
{ input: ['text', x => x], expected: '第 0 个参数是: string' },
|
37
|
-
{ input: [{}, x => x], expected: '第 0 个参数是: object' },
|
38
|
-
{ input: [[], x => x], expected: '第 0 个参数是: object' }
|
39
|
-
];
|
40
|
-
|
41
|
-
errorCases.forEach(({ input, expected }) => {
|
42
|
-
expect(() => pipe('initial', ...input)).toThrow(TypeError);
|
43
|
-
expect(() => pipe('initial', ...input)).toThrow(expected);
|
44
|
-
});
|
45
|
-
});
|
46
|
-
|
47
|
-
test('混合类型参数中检测第一个错误', () => {
|
48
|
-
const add1 = x => x + 1;
|
49
|
-
expect(() => pipe(1, add1, 'text', 42, null))
|
50
|
-
.toThrow('第 1 个参数是: string');
|
51
|
-
});
|
52
|
-
});
|
53
|
-
|
54
|
-
describe('边界情况', () => {
|
55
|
-
test('处理undefined中间值', () => {
|
56
|
-
const noop = () => undefined;
|
57
|
-
const toString = x => String(x);
|
58
|
-
|
59
|
-
const result = pipe(123, noop, toString);
|
60
|
-
expect(result).toBe('undefined');
|
61
|
-
});
|
62
|
-
|
63
|
-
test('处理null中间值', () => {
|
64
|
-
const returnNull = () => null;
|
65
|
-
const defaultToZero = x => x ?? 0;
|
66
|
-
|
67
|
-
const result = pipe(123, returnNull, defaultToZero);
|
68
|
-
expect(result).toBe(0);
|
69
|
-
});
|
70
|
-
|
71
|
-
test('空函数参数列表', () => {
|
72
|
-
expect(pipe(42)).toBe(42);
|
73
|
-
expect(pipe(null)).toBeNull();
|
74
|
-
expect(pipe(undefined)).toBeUndefined();
|
75
|
-
});
|
76
|
-
});
|
77
|
-
});
|
package/src/ramda/unfold.d.ts
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* 通过不断调用 fn 生成值,直到 fn 返回 falsy。
|
3
|
-
* @public
|
4
|
-
* @param fn - 生成函数,接收当前 seed,返回 [value, nextSeed] 或 falsy。
|
5
|
-
* @param seed - 初始种子值。
|
6
|
-
* @returns 由 fn 生成的所有 value 组成的数组。
|
7
|
-
*/
|
8
|
-
export function unfold<T, S>(
|
9
|
-
fn: (seed: S) => [T, S] | false | null | undefined,
|
10
|
-
seed: S
|
11
|
-
): T[];
|
package/src/ramda/unfold.js
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* 通过不断调用 fn 生成值,直到 fn 返回 falsy。
|
3
|
-
*
|
4
|
-
* @public
|
5
|
-
* @template T, S
|
6
|
-
* @param {(seed: S) => [T, S] | false | null | undefined} fn - 生成函数,接收当前 seed,返回 [value, nextSeed] 或 falsy。
|
7
|
-
* @param {S} seed - 初始种子值。
|
8
|
-
* @returns {Array<T>} 由 fn 生成的所有 value 组成的数组。
|
9
|
-
* @this *
|
10
|
-
*/
|
11
|
-
export function unfold(fn, seed) {
|
12
|
-
let result = [];
|
13
|
-
|
14
|
-
let resultSeedPair = fn.call(this, seed);
|
15
|
-
while (resultSeedPair && resultSeedPair.length) {
|
16
|
-
result[result.length] = resultSeedPair[0];
|
17
|
-
resultSeedPair = fn.call(this, resultSeedPair[1]);
|
18
|
-
}
|
19
|
-
return result;
|
20
|
-
}
|
package/src/ramda/unfold.test.js
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
import { unfold } from './unfold.js'
|
2
|
-
|
3
|
-
describe('unfold', function () {
|
4
|
-
test('unfolds simple functions with a starting point to create a list', function () {
|
5
|
-
let fn = function (n) { if (n > 0) { return [n, n - 1]; } }
|
6
|
-
let seed = 10
|
7
|
-
let y = unfold(fn, seed)
|
8
|
-
let res = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
|
9
|
-
expect(y).toEqual(res);
|
10
|
-
});
|
11
|
-
|
12
|
-
test('is cool!', function () {
|
13
|
-
let fib = function (n) {
|
14
|
-
let count = 0;
|
15
|
-
return function (pair) {
|
16
|
-
count += 1;
|
17
|
-
if (count <= n) {
|
18
|
-
return [pair[0], [pair[1], pair[0] + pair[1]]];
|
19
|
-
}
|
20
|
-
};
|
21
|
-
};
|
22
|
-
let fn = fib(10)
|
23
|
-
let seed = [0, 1]
|
24
|
-
let y = unfold(fn, seed)
|
25
|
-
let res = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
|
26
|
-
expect(y).toEqual(res);
|
27
|
-
});
|
28
|
-
|
29
|
-
});
|