@fluentui-react-native/framework-base 0.1.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.
Files changed (141) hide show
  1. package/CHANGELOG.json +20 -0
  2. package/CHANGELOG.md +13 -0
  3. package/README.md +20 -0
  4. package/babel.config.js +1 -0
  5. package/eslint.config.js +3 -0
  6. package/lib/immutable-merge/Merge.d.ts +78 -0
  7. package/lib/immutable-merge/Merge.d.ts.map +1 -0
  8. package/lib/immutable-merge/Merge.js +179 -0
  9. package/lib/immutable-merge/Merge.js.map +1 -0
  10. package/lib/immutable-merge/Merge.test.d.ts +2 -0
  11. package/lib/immutable-merge/Merge.test.d.ts.map +1 -0
  12. package/lib/immutable-merge/Merge.test.js +262 -0
  13. package/lib/immutable-merge/Merge.test.js.map +1 -0
  14. package/lib/index.d.ts +9 -0
  15. package/lib/index.d.ts.map +1 -0
  16. package/lib/index.js +7 -0
  17. package/lib/index.js.map +1 -0
  18. package/lib/memo-cache/getCacheEntry.d.ts +22 -0
  19. package/lib/memo-cache/getCacheEntry.d.ts.map +1 -0
  20. package/lib/memo-cache/getCacheEntry.js +49 -0
  21. package/lib/memo-cache/getCacheEntry.js.map +1 -0
  22. package/lib/memo-cache/getCacheEntry.test.d.ts +2 -0
  23. package/lib/memo-cache/getCacheEntry.test.d.ts.map +1 -0
  24. package/lib/memo-cache/getCacheEntry.test.js +95 -0
  25. package/lib/memo-cache/getCacheEntry.test.js.map +1 -0
  26. package/lib/memo-cache/getMemoCache.d.ts +11 -0
  27. package/lib/memo-cache/getMemoCache.d.ts.map +1 -0
  28. package/lib/memo-cache/getMemoCache.js +29 -0
  29. package/lib/memo-cache/getMemoCache.js.map +1 -0
  30. package/lib/memo-cache/getMemoCache.test.d.ts +2 -0
  31. package/lib/memo-cache/getMemoCache.test.d.ts.map +1 -0
  32. package/lib/memo-cache/getMemoCache.test.js +78 -0
  33. package/lib/memo-cache/getMemoCache.test.js.map +1 -0
  34. package/lib/memo-cache/index.d.ts +4 -0
  35. package/lib/memo-cache/index.d.ts.map +1 -0
  36. package/lib/memo-cache/index.js +3 -0
  37. package/lib/memo-cache/index.js.map +1 -0
  38. package/lib/memo-cache/memoize.d.ts +6 -0
  39. package/lib/memo-cache/memoize.d.ts.map +1 -0
  40. package/lib/memo-cache/memoize.js +17 -0
  41. package/lib/memo-cache/memoize.js.map +1 -0
  42. package/lib/memo-cache/memoize.test.d.ts +2 -0
  43. package/lib/memo-cache/memoize.test.d.ts.map +1 -0
  44. package/lib/memo-cache/memoize.test.js +45 -0
  45. package/lib/memo-cache/memoize.test.js.map +1 -0
  46. package/lib/merge-props/index.d.ts +4 -0
  47. package/lib/merge-props/index.d.ts.map +1 -0
  48. package/lib/merge-props/index.js +3 -0
  49. package/lib/merge-props/index.js.map +1 -0
  50. package/lib/merge-props/mergeProps.d.ts +6 -0
  51. package/lib/merge-props/mergeProps.d.ts.map +1 -0
  52. package/lib/merge-props/mergeProps.js +17 -0
  53. package/lib/merge-props/mergeProps.js.map +1 -0
  54. package/lib/merge-props/mergeStyles.d.ts +16 -0
  55. package/lib/merge-props/mergeStyles.d.ts.map +1 -0
  56. package/lib/merge-props/mergeStyles.js +32 -0
  57. package/lib/merge-props/mergeStyles.js.map +1 -0
  58. package/lib/merge-props/mergeStyles.test.d.ts +2 -0
  59. package/lib/merge-props/mergeStyles.test.d.ts.map +1 -0
  60. package/lib/merge-props/mergeStyles.test.js +94 -0
  61. package/lib/merge-props/mergeStyles.test.js.map +1 -0
  62. package/lib/merge-props/mergeStyles.types.d.ts +12 -0
  63. package/lib/merge-props/mergeStyles.types.d.ts.map +1 -0
  64. package/lib/merge-props/mergeStyles.types.js +2 -0
  65. package/lib/merge-props/mergeStyles.types.js.map +1 -0
  66. package/lib-commonjs/immutable-merge/Merge.d.ts +78 -0
  67. package/lib-commonjs/immutable-merge/Merge.d.ts.map +1 -0
  68. package/lib-commonjs/immutable-merge/Merge.js +186 -0
  69. package/lib-commonjs/immutable-merge/Merge.js.map +1 -0
  70. package/lib-commonjs/immutable-merge/Merge.test.d.ts +2 -0
  71. package/lib-commonjs/immutable-merge/Merge.test.d.ts.map +1 -0
  72. package/lib-commonjs/immutable-merge/Merge.test.js +264 -0
  73. package/lib-commonjs/immutable-merge/Merge.test.js.map +1 -0
  74. package/lib-commonjs/index.d.ts +9 -0
  75. package/lib-commonjs/index.d.ts.map +1 -0
  76. package/lib-commonjs/index.js +18 -0
  77. package/lib-commonjs/index.js.map +1 -0
  78. package/lib-commonjs/memo-cache/getCacheEntry.d.ts +22 -0
  79. package/lib-commonjs/memo-cache/getCacheEntry.d.ts.map +1 -0
  80. package/lib-commonjs/memo-cache/getCacheEntry.js +53 -0
  81. package/lib-commonjs/memo-cache/getCacheEntry.js.map +1 -0
  82. package/lib-commonjs/memo-cache/getCacheEntry.test.d.ts +2 -0
  83. package/lib-commonjs/memo-cache/getCacheEntry.test.d.ts.map +1 -0
  84. package/lib-commonjs/memo-cache/getCacheEntry.test.js +97 -0
  85. package/lib-commonjs/memo-cache/getCacheEntry.test.js.map +1 -0
  86. package/lib-commonjs/memo-cache/getMemoCache.d.ts +11 -0
  87. package/lib-commonjs/memo-cache/getMemoCache.d.ts.map +1 -0
  88. package/lib-commonjs/memo-cache/getMemoCache.js +33 -0
  89. package/lib-commonjs/memo-cache/getMemoCache.js.map +1 -0
  90. package/lib-commonjs/memo-cache/getMemoCache.test.d.ts +2 -0
  91. package/lib-commonjs/memo-cache/getMemoCache.test.d.ts.map +1 -0
  92. package/lib-commonjs/memo-cache/getMemoCache.test.js +80 -0
  93. package/lib-commonjs/memo-cache/getMemoCache.test.js.map +1 -0
  94. package/lib-commonjs/memo-cache/index.d.ts +4 -0
  95. package/lib-commonjs/memo-cache/index.d.ts.map +1 -0
  96. package/lib-commonjs/memo-cache/index.js +8 -0
  97. package/lib-commonjs/memo-cache/index.js.map +1 -0
  98. package/lib-commonjs/memo-cache/memoize.d.ts +6 -0
  99. package/lib-commonjs/memo-cache/memoize.d.ts.map +1 -0
  100. package/lib-commonjs/memo-cache/memoize.js +21 -0
  101. package/lib-commonjs/memo-cache/memoize.js.map +1 -0
  102. package/lib-commonjs/memo-cache/memoize.test.d.ts +2 -0
  103. package/lib-commonjs/memo-cache/memoize.test.d.ts.map +1 -0
  104. package/lib-commonjs/memo-cache/memoize.test.js +47 -0
  105. package/lib-commonjs/memo-cache/memoize.test.js.map +1 -0
  106. package/lib-commonjs/merge-props/index.d.ts +4 -0
  107. package/lib-commonjs/merge-props/index.d.ts.map +1 -0
  108. package/lib-commonjs/merge-props/index.js +8 -0
  109. package/lib-commonjs/merge-props/index.js.map +1 -0
  110. package/lib-commonjs/merge-props/mergeProps.d.ts +6 -0
  111. package/lib-commonjs/merge-props/mergeProps.d.ts.map +1 -0
  112. package/lib-commonjs/merge-props/mergeProps.js +21 -0
  113. package/lib-commonjs/merge-props/mergeProps.js.map +1 -0
  114. package/lib-commonjs/merge-props/mergeStyles.d.ts +16 -0
  115. package/lib-commonjs/merge-props/mergeStyles.d.ts.map +1 -0
  116. package/lib-commonjs/merge-props/mergeStyles.js +38 -0
  117. package/lib-commonjs/merge-props/mergeStyles.js.map +1 -0
  118. package/lib-commonjs/merge-props/mergeStyles.test.d.ts +2 -0
  119. package/lib-commonjs/merge-props/mergeStyles.test.d.ts.map +1 -0
  120. package/lib-commonjs/merge-props/mergeStyles.test.js +96 -0
  121. package/lib-commonjs/merge-props/mergeStyles.test.js.map +1 -0
  122. package/lib-commonjs/merge-props/mergeStyles.types.d.ts +12 -0
  123. package/lib-commonjs/merge-props/mergeStyles.types.d.ts.map +1 -0
  124. package/lib-commonjs/merge-props/mergeStyles.types.js +3 -0
  125. package/lib-commonjs/merge-props/mergeStyles.types.js.map +1 -0
  126. package/package.json +58 -0
  127. package/src/immutable-merge/Merge.test.ts +342 -0
  128. package/src/immutable-merge/Merge.ts +255 -0
  129. package/src/index.ts +20 -0
  130. package/src/memo-cache/getCacheEntry.test.ts +120 -0
  131. package/src/memo-cache/getCacheEntry.ts +67 -0
  132. package/src/memo-cache/getMemoCache.test.ts +91 -0
  133. package/src/memo-cache/getMemoCache.ts +37 -0
  134. package/src/memo-cache/index.ts +3 -0
  135. package/src/memo-cache/memoize.test.ts +48 -0
  136. package/src/memo-cache/memoize.ts +17 -0
  137. package/src/merge-props/index.ts +3 -0
  138. package/src/merge-props/mergeProps.ts +20 -0
  139. package/src/merge-props/mergeStyles.test.ts +124 -0
  140. package/src/merge-props/mergeStyles.ts +40 -0
  141. package/src/merge-props/mergeStyles.types.ts +9 -0
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Merge_1 = require("./Merge");
4
+ const sett1 = {
5
+ root: {
6
+ p2: 1,
7
+ nm: { nm1: 1 },
8
+ style: { s1: 'foo', s2: 2, nm: { nm1: 1 } },
9
+ },
10
+ fakeSlot: {
11
+ ps2: 2,
12
+ },
13
+ };
14
+ const sett2 = {
15
+ root: {
16
+ p1: 'sett2',
17
+ p2: 2,
18
+ nm: { nm2: 2 },
19
+ },
20
+ fakeSlot: {
21
+ style: { s1: 'sett2' },
22
+ },
23
+ };
24
+ const sett1plus2 = {
25
+ root: {
26
+ p1: 'sett2',
27
+ p2: 2,
28
+ nm: { nm2: 2 },
29
+ style: { s1: 'foo', s2: 2, nm: { nm1: 1 } },
30
+ },
31
+ fakeSlot: {
32
+ ps2: 2,
33
+ style: { s1: 'sett2' },
34
+ },
35
+ };
36
+ const sett3 = {
37
+ root: {
38
+ p1: 'sett3',
39
+ style: { s2: 3, nm: { nm2: 2 } },
40
+ },
41
+ };
42
+ const sett1plus3 = {
43
+ root: {
44
+ p1: 'sett3',
45
+ p2: 1,
46
+ nm: { nm1: 1 },
47
+ style: { s1: 'foo', s2: 3, nm: { nm2: 2 } },
48
+ },
49
+ fakeSlot: {
50
+ ps2: 2,
51
+ },
52
+ };
53
+ const sett1plus2plus3 = {
54
+ root: {
55
+ p1: 'sett3',
56
+ p2: 2,
57
+ nm: { nm2: 2 },
58
+ style: { s1: 'foo', s2: 3, nm: { nm2: 2 } },
59
+ },
60
+ fakeSlot: {
61
+ ps2: 2,
62
+ style: { s1: 'sett2' },
63
+ },
64
+ };
65
+ const mergeOptions = {
66
+ object: {
67
+ style: 0,
68
+ },
69
+ };
70
+ const deep1 = {
71
+ a: { b: { c: 1 } },
72
+ b: { c: { d: { d: 'foo' } } },
73
+ c: { e: 4 },
74
+ };
75
+ const deep2 = {
76
+ a: { b1: 3, b: { c: 2 } },
77
+ b: { c: { d2: 'bar' } },
78
+ c: { e2: { f: 'baz' } },
79
+ };
80
+ const deepMerged = {
81
+ a: { b1: 3, b: { c: 2 } },
82
+ b: { c: { d: { d: 'foo' }, d2: 'bar' } },
83
+ c: { e: 4, e2: { f: 'baz' } },
84
+ };
85
+ const singleToChange = {
86
+ a: { b: { c: { changeMe: { color: 'blue' } } } },
87
+ b: { d: { changeMe: { font: 'fixed' } } },
88
+ };
89
+ const singleWithChanges = {
90
+ a: { b: { c: { changeMe: { color: 'changed' } } } },
91
+ b: { d: { changeMe: { font: 'fixed' } } },
92
+ };
93
+ const _colorKey = 'color';
94
+ const changeMeHandler = (...objs) => {
95
+ // written always assuming only one entry
96
+ if (objs.length === 1) {
97
+ const firstObj = objs[0];
98
+ if (firstObj[_colorKey]) {
99
+ return { ...firstObj, color: 'changed' };
100
+ }
101
+ return firstObj;
102
+ }
103
+ return undefined;
104
+ };
105
+ const changeMeOption1 = {
106
+ a: {
107
+ b: {
108
+ c: {
109
+ changeMe: changeMeHandler,
110
+ },
111
+ },
112
+ },
113
+ };
114
+ const changeMeOption2 = {
115
+ object: {
116
+ object: {
117
+ object: {
118
+ changeMe: changeMeHandler,
119
+ },
120
+ changeMe: changeMeHandler,
121
+ },
122
+ },
123
+ };
124
+ describe('Immutable merge unit tests', () => {
125
+ test('merge one returns same object', () => {
126
+ const obj = {
127
+ a: 'a',
128
+ b: 2,
129
+ };
130
+ expect((0, Merge_1.immutableMerge)(obj, undefined)).toBe(obj);
131
+ expect((0, Merge_1.immutableMerge)(undefined, obj)).toBe(obj);
132
+ });
133
+ test('merge flat is like assign', () => {
134
+ const obj1 = { a: 'a', b: 1 };
135
+ const obj2 = { b: 2, c: true };
136
+ const merged = { a: 'a', b: 2, c: true };
137
+ expect((0, Merge_1.immutableMerge)(obj1, obj2)).toEqual(merged);
138
+ expect((0, Merge_1.immutableMergeCore)(0, obj1, obj2)).toEqual(merged);
139
+ expect((0, Merge_1.immutableMergeCore)(true, obj1, obj2)).toEqual(merged);
140
+ });
141
+ const dm1 = {
142
+ a: { b: { c: { foo: 'foo', bar: 'bar' } } },
143
+ d: { e: 1, f: { g: 'hello', h: 2 } },
144
+ };
145
+ const dm2 = {
146
+ a: { b: { c: { bar: 'bar2', baz: 'baz' } }, i: 'world' },
147
+ d: { j: 4 },
148
+ };
149
+ test('deep merge', () => {
150
+ expect((0, Merge_1.immutableMerge)(dm1, dm2)).toEqual({
151
+ a: { b: { c: { foo: 'foo', bar: 'bar2', baz: 'baz' } }, i: 'world' },
152
+ d: { e: 1, f: { g: 'hello', h: 2 }, j: 4 },
153
+ });
154
+ });
155
+ test('merge zero levels', () => {
156
+ expect((0, Merge_1.immutableMergeCore)(0, dm1, dm2)).toEqual(dm2);
157
+ });
158
+ test('merge one level deep', () => {
159
+ const result = {
160
+ a: dm2.a,
161
+ d: { ...dm1.d, ...dm2.d },
162
+ };
163
+ expect((0, Merge_1.immutableMergeCore)(1, dm1, dm2)).toEqual(result);
164
+ expect((0, Merge_1.immutableMergeCore)({ object: 0 }, dm1, dm2)).toEqual(result);
165
+ });
166
+ test('merge with empty object', () => {
167
+ const merged = (0, Merge_1.immutableMergeCore)(mergeOptions, sett1, {});
168
+ expect(merged).toBe(sett1);
169
+ const merged2 = (0, Merge_1.immutableMergeCore)(mergeOptions, {}, sett2);
170
+ expect(merged2).toBe(sett2);
171
+ });
172
+ test('merge sett1 and sett2', () => {
173
+ const merged = (0, Merge_1.immutableMergeCore)(mergeOptions, sett1, sett2);
174
+ expect(merged).toEqual(sett1plus2);
175
+ expect(merged.root.style).toBe(sett1.root.style);
176
+ expect(merged.fakeSlot.style).toBe(sett2.fakeSlot.style);
177
+ });
178
+ test('merge sett1 and sett3', () => {
179
+ const merged = (0, Merge_1.immutableMergeCore)(mergeOptions, sett1, sett3);
180
+ expect(merged).toEqual(sett1plus3);
181
+ expect(merged.fakeSlot).toBe(sett1.fakeSlot);
182
+ });
183
+ test('merge three', () => {
184
+ const merged = (0, Merge_1.immutableMergeCore)(mergeOptions, sett1, sett2, sett3);
185
+ expect(merged).toEqual(sett1plus2plus3);
186
+ });
187
+ test('deepMerge', () => {
188
+ const merged = (0, Merge_1.immutableMergeCore)(-1, deep1, deep2);
189
+ expect(merged).toEqual(deepMerged);
190
+ expect(merged.b.c.d).toBe(deep1.b.c.d);
191
+ expect(merged.a.b).not.toBe(deep2.a.b);
192
+ });
193
+ test('singleProcessNoChange', () => {
194
+ const merged = (0, Merge_1.processImmutable)({ object: true }, singleToChange);
195
+ expect(merged).toBe(singleToChange);
196
+ });
197
+ test('single process with change', () => {
198
+ const merged = (0, Merge_1.processImmutable)(changeMeOption1, singleToChange);
199
+ expect(merged).toEqual(singleWithChanges);
200
+ expect(merged).not.toBe(singleToChange);
201
+ expect(merged.b).toBe(singleToChange.b);
202
+ });
203
+ test('single process with change - alternative', () => {
204
+ const merged = (0, Merge_1.processImmutable)(changeMeOption2, singleToChange);
205
+ expect(merged).toEqual(singleWithChanges);
206
+ expect(merged).not.toBe(singleToChange);
207
+ expect(merged.b).toBe(singleToChange.b);
208
+ });
209
+ const withArray1 = {
210
+ baseArray: [1, 2, 3],
211
+ sub: { subArray: ['a', 'b', 'c'] },
212
+ };
213
+ const withArray2 = {
214
+ baseArray: [4, 5, 6],
215
+ sub: { subArray: ['d', 'e', 'f'] },
216
+ };
217
+ test('arrays overwrite each other', () => {
218
+ const merged = (0, Merge_1.immutableMergeCore)({ depth: -1 }, withArray1, withArray2);
219
+ expect(merged).toEqual(withArray2);
220
+ expect(merged).not.toBe(withArray2);
221
+ });
222
+ const withObj = {
223
+ a: { foo: 'bar' },
224
+ b: 2,
225
+ };
226
+ const withNonObj = {
227
+ a: 'hello',
228
+ b: 3,
229
+ };
230
+ test('last writer wins for objects and non-objects', () => {
231
+ const merged = (0, Merge_1.immutableMerge)(withObj, withNonObj);
232
+ expect(merged).toEqual(withNonObj);
233
+ const merged2 = (0, Merge_1.immutableMerge)(withNonObj, withObj);
234
+ expect(merged2).toEqual(withObj);
235
+ });
236
+ const arrayMerger = (...targets) => {
237
+ const arrays = targets.filter((t) => Array.isArray(t));
238
+ let result = [];
239
+ arrays.forEach((v) => (result = result.concat(...v)));
240
+ return result;
241
+ };
242
+ test('arrays can merge with handler', () => {
243
+ const merged = (0, Merge_1.immutableMergeCore)({
244
+ object: {
245
+ subArray: arrayMerger,
246
+ },
247
+ }, withArray1, withArray2);
248
+ expect(merged).toEqual({
249
+ baseArray: [4, 5, 6],
250
+ sub: { subArray: ['a', 'b', 'c', 'd', 'e', 'f'] },
251
+ });
252
+ });
253
+ test('arrays can merge deeply', () => {
254
+ const merged = (0, Merge_1.immutableMergeCore)({
255
+ object: true,
256
+ array: 'appendArray',
257
+ }, withArray1, withArray2);
258
+ expect(merged).toEqual({
259
+ baseArray: [1, 2, 3, 4, 5, 6],
260
+ sub: { subArray: ['a', 'b', 'c', 'd', 'e', 'f'] },
261
+ });
262
+ });
263
+ });
264
+ //# sourceMappingURL=Merge.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Merge.test.js","sourceRoot":"","sources":["../../src/immutable-merge/Merge.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export { immutableMerge, immutableMergeCore, processImmutable, filterToObjects } from './immutable-merge/Merge';
2
+ export type { BuiltinRecursionHandlers, CustomRecursionHandler, MergeOptions, ObjectBase, RecursionHandler, RecursionOption, } from './immutable-merge/Merge';
3
+ export type { GetMemoValue } from './memo-cache/getMemoCache';
4
+ export { getMemoCache } from './memo-cache/getMemoCache';
5
+ export { memoize } from './memo-cache/memoize';
6
+ export type { StyleProp } from './merge-props/mergeStyles.types';
7
+ export { mergeStyles } from './merge-props/mergeStyles';
8
+ export { mergeProps } from './merge-props/mergeProps';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAChH,YAAY,EACV,wBAAwB,EACxB,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,YAAY,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergeProps = exports.mergeStyles = exports.memoize = exports.getMemoCache = exports.filterToObjects = exports.processImmutable = exports.immutableMergeCore = exports.immutableMerge = void 0;
4
+ // immutable-merge exports
5
+ var Merge_1 = require("./immutable-merge/Merge");
6
+ Object.defineProperty(exports, "immutableMerge", { enumerable: true, get: function () { return Merge_1.immutableMerge; } });
7
+ Object.defineProperty(exports, "immutableMergeCore", { enumerable: true, get: function () { return Merge_1.immutableMergeCore; } });
8
+ Object.defineProperty(exports, "processImmutable", { enumerable: true, get: function () { return Merge_1.processImmutable; } });
9
+ Object.defineProperty(exports, "filterToObjects", { enumerable: true, get: function () { return Merge_1.filterToObjects; } });
10
+ var getMemoCache_1 = require("./memo-cache/getMemoCache");
11
+ Object.defineProperty(exports, "getMemoCache", { enumerable: true, get: function () { return getMemoCache_1.getMemoCache; } });
12
+ var memoize_1 = require("./memo-cache/memoize");
13
+ Object.defineProperty(exports, "memoize", { enumerable: true, get: function () { return memoize_1.memoize; } });
14
+ var mergeStyles_1 = require("./merge-props/mergeStyles");
15
+ Object.defineProperty(exports, "mergeStyles", { enumerable: true, get: function () { return mergeStyles_1.mergeStyles; } });
16
+ var mergeProps_1 = require("./merge-props/mergeProps");
17
+ Object.defineProperty(exports, "mergeProps", { enumerable: true, get: function () { return mergeProps_1.mergeProps; } });
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,0BAA0B;AAC1B,iDAAgH;AAAvG,uGAAA,cAAc,OAAA;AAAE,2GAAA,kBAAkB,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAAE,wGAAA,eAAe,OAAA;AAY9E,0DAAyD;AAAhD,4GAAA,YAAY,OAAA;AACrB,gDAA+C;AAAtC,kGAAA,OAAO,OAAA;AAIhB,yDAAwD;AAA/C,0GAAA,WAAW,OAAA;AACpB,uDAAsD;AAA7C,wGAAA,UAAU,OAAA"}
@@ -0,0 +1,22 @@
1
+ export type CacheEntry<T, TGet = any> = {
2
+ /** stores the cached value if any */
3
+ value?: T;
4
+ /** entry used for undefined and null values, these both collapse to the same type */
5
+ empty?: CacheEntry<TGet>;
6
+ /** entry used for the case where the array of args is null or length 0 */
7
+ noargs?: CacheEntry<TGet>;
8
+ /** all remaining non-object types are keyed as strings for lookups */
9
+ str?: {
10
+ [key: string]: CacheEntry<TGet>;
11
+ };
12
+ /** object types are keyed in a weak map on object identity */
13
+ obj?: WeakMap<object, TGet>;
14
+ };
15
+ /**
16
+ * Given a base entry, either traverse or build the cache tree that matches the provided args
17
+ *
18
+ * @param entry - entry to use as the base of the cache walk
19
+ * @param args - array of arguments to use to progress deeper into the cache
20
+ */
21
+ export declare function getCacheEntry<T, TGet = any>(entry: CacheEntry<T>, args: any[]): CacheEntry<TGet>;
22
+ //# sourceMappingURL=getCacheEntry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCacheEntry.d.ts","sourceRoot":"","sources":["../../src/memo-cache/getCacheEntry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,IAAI;IACtC,qCAAqC;IACrC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEV,qFAAqF;IACrF,KAAK,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAEzB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAE1B,sEAAsE;IACtE,GAAG,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IAE1C,8DAA8D;IAC9D,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC7B,CAAC;AAsCF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAOhG"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCacheEntry = void 0;
4
+ /**
5
+ * just wraps the common entry.foo = entry.foo || {} pattern
6
+ * @param entry - entry to ensure a key value for
7
+ * @param key - which key of that entry to ensure the value for
8
+ */
9
+ function ensureAndReturn(entry, key) {
10
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
11
+ throw new Error('Invalid key');
12
+ }
13
+ return (entry[key] = entry[key] || {});
14
+ }
15
+ /**
16
+ * Step one level deeper in the cache, based on the key value from the current location
17
+ *
18
+ * @param entry - base entry to work from
19
+ * @param val - value to use as the key for progressing to the next level of the cache
20
+ */
21
+ function jumpToCacheEntry(entry, val) {
22
+ if (val === undefined || val === null) {
23
+ // undefined or null just routes directly to the empty object. This avoids the issues of string collisions with 'null' or 'undefined'
24
+ // when using the string key map, it also avoids creating the WeakMap (since null is technically typoef object), particularly in cases
25
+ // where null is just being set on non-object types.
26
+ return ensureAndReturn(entry, 'empty');
27
+ }
28
+ if (typeof val === 'object' || typeof val === 'function') {
29
+ // objects and functions will be treated as key values in a WeakMap
30
+ const byObj = (entry.obj = entry.obj || new WeakMap());
31
+ return byObj.get(val) || byObj.set(val, {}).get(val);
32
+ }
33
+ // otherwise convert everything to a string and store it in the str object (using it as a map)
34
+ const key = val + '';
35
+ const byString = ensureAndReturn(entry, 'str');
36
+ return (byString[key] = byString[key] || {});
37
+ }
38
+ /**
39
+ * Given a base entry, either traverse or build the cache tree that matches the provided args
40
+ *
41
+ * @param entry - entry to use as the base of the cache walk
42
+ * @param args - array of arguments to use to progress deeper into the cache
43
+ */
44
+ function getCacheEntry(entry, args) {
45
+ // in the case where the args array exists and is > 0 length:
46
+ // - walk the cache from entry, like a linked list, jumping to the next entry by key, building it up as you go
47
+ // - otherwise if there are no args just use the noargs branch
48
+ return args && args.length > 0
49
+ ? args.reduce((previous, arg) => jumpToCacheEntry(previous, arg), entry)
50
+ : ensureAndReturn(entry, 'noargs');
51
+ }
52
+ exports.getCacheEntry = getCacheEntry;
53
+ //# sourceMappingURL=getCacheEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCacheEntry.js","sourceRoot":"","sources":["../../src/memo-cache/getCacheEntry.ts"],"names":[],"mappings":";;;AAiBA;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAAsB,EAAE,GAA0B;IACzE,IAAK,GAAc,KAAK,WAAW,IAAK,GAAc,KAAK,aAAa,IAAK,GAAc,KAAK,WAAW,EAAE;QAC3G,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;KAChC;IACD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,KAAsB,EAAE,GAAQ;IACxD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;QACrC,sIAAsI;QACtI,sIAAsI;QACtI,oDAAoD;QACpD,OAAO,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KACxC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;QACxD,mEAAmE;QACnE,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,IAAI,OAAO,EAA2B,CAAC,CAAC;QAChF,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACtD;IACD,8FAA8F;IAC9F,MAAM,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAgB,KAAoB,EAAE,IAAW;IAC5E,6DAA6D;IAC7D,8GAA8G;IAC9G,8DAA8D;IAC9D,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAC5B,CAAC,CAAE,IAAI,CAAC,MAAM,CAAC,CAAC,QAAyB,EAAE,GAAQ,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,KAAK,CAAsB;QACpH,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAPD,sCAOC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getCacheEntry.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCacheEntry.test.d.ts","sourceRoot":"","sources":["../../src/memo-cache/getCacheEntry.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const getCacheEntry_1 = require("./getCacheEntry");
4
+ function compareResults(base, args, argsNoMatch) {
5
+ const e1 = (0, getCacheEntry_1.getCacheEntry)(base, args);
6
+ expect((0, getCacheEntry_1.getCacheEntry)(base, args)).toBe(e1);
7
+ if (argsNoMatch) {
8
+ expect((0, getCacheEntry_1.getCacheEntry)(base, argsNoMatch)).not.toBe(e1);
9
+ }
10
+ }
11
+ describe('Memo cache unit tests', () => {
12
+ test('undefined args to return noargs', () => {
13
+ const base = {};
14
+ expect((0, getCacheEntry_1.getCacheEntry)(base, undefined)).toBe(base.noargs);
15
+ });
16
+ test('empty args array to return noargs entry', () => {
17
+ const base = {};
18
+ expect((0, getCacheEntry_1.getCacheEntry)(base, [])).toBe(base.noargs);
19
+ });
20
+ test('undefined goes to empty entry', () => {
21
+ const base = {};
22
+ expect((0, getCacheEntry_1.getCacheEntry)(base, [undefined])).toBe(base.empty);
23
+ });
24
+ test('null to go to empty entry', () => {
25
+ const base = {};
26
+ expect((0, getCacheEntry_1.getCacheEntry)(base, [null])).toBe(base.empty);
27
+ });
28
+ test('string gets keyed correctly', () => {
29
+ const base = {};
30
+ const key = 'foo';
31
+ expect((0, getCacheEntry_1.getCacheEntry)(base, [key])).toBe(base.str[key]);
32
+ });
33
+ test('number gets keyed correctly', () => {
34
+ const base = {};
35
+ const val = 235;
36
+ const key = val + '';
37
+ expect((0, getCacheEntry_1.getCacheEntry)(base, [val])).toBe(base.str[key]);
38
+ });
39
+ test('bool gets keyed correctly', () => {
40
+ const base = {};
41
+ const val = true;
42
+ const key = val + '';
43
+ expect((0, getCacheEntry_1.getCacheEntry)(base, [val])).toBe(base.str[key]);
44
+ });
45
+ test('false bool gets keyed correctly', () => {
46
+ const base = {};
47
+ const val = false;
48
+ const key = val + '';
49
+ expect((0, getCacheEntry_1.getCacheEntry)(base, [val])).toBe(base.str[key]);
50
+ });
51
+ test('object gets keyed correctly', () => {
52
+ const base = {};
53
+ const key = {};
54
+ expect((0, getCacheEntry_1.getCacheEntry)(base, [key])).toBe(base.obj.get(key));
55
+ });
56
+ test('function gets keyed correctly', () => {
57
+ const base = {};
58
+ const key = () => {
59
+ return 'hello world';
60
+ };
61
+ expect((0, getCacheEntry_1.getCacheEntry)(base, [key])).toBe(base.obj.get(key));
62
+ });
63
+ test('basic string retrieval', () => {
64
+ compareResults({}, ['hello', 'world'], ['hello world']);
65
+ });
66
+ test('mixed keys with strings', () => {
67
+ compareResults({}, ['hello', 1, true, undefined, 'world'], ['hello', 1, true, '', 'world']);
68
+ });
69
+ test('basic object matches', () => {
70
+ const obj = {};
71
+ compareResults({}, [obj]);
72
+ });
73
+ test('mixed object and string matches', () => {
74
+ const obj = {};
75
+ compareResults({}, [obj, 'hello', 1, 'world']);
76
+ });
77
+ test('mixed obj and strings with obj at end', () => {
78
+ const obj = {};
79
+ const obj2 = {};
80
+ compareResults({}, ['hello', 1, 'world', obj], ['hello', 1, 'world', obj2]);
81
+ });
82
+ test('hybrid sets', () => {
83
+ const obj = {};
84
+ const obj2 = {};
85
+ compareResults({}, ['hello', obj, 'world', 1, false, obj2, undefined]);
86
+ });
87
+ test('sub cache on object', () => {
88
+ const obj = {};
89
+ const args1 = ['hello', obj];
90
+ const base = {};
91
+ const subRoot = (0, getCacheEntry_1.getCacheEntry)(base, args1);
92
+ const args2 = ['world', base];
93
+ const target = (0, getCacheEntry_1.getCacheEntry)(subRoot, args2);
94
+ expect((0, getCacheEntry_1.getCacheEntry)(base, [...args1, ...args2])).toBe(target);
95
+ });
96
+ });
97
+ //# sourceMappingURL=getCacheEntry.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCacheEntry.test.js","sourceRoot":"","sources":["../../src/memo-cache/getCacheEntry.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export type ValueFactory<T> = () => T;
2
+ /** signature for the cache function */
3
+ export type GetMemoValue<T, TGet = any> = (factory: T | ValueFactory<T>, keys: any[]) => [T, GetMemoValue<TGet>];
4
+ /**
5
+ * Get a memo cache instance, this can either be completely self-contained or associated with a global key
6
+ *
7
+ * @param globalKey - optional object reference to use as a key for this cache. If specified it can be used
8
+ * to retrieve the same cache from the global call. If not specified the returned cache will be completely isolated.
9
+ */
10
+ export declare function getMemoCache<T = any>(globalKey?: object): GetMemoValue<T>;
11
+ //# sourceMappingURL=getMemoCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMemoCache.d.ts","sourceRoot":"","sources":["../../src/memo-cache/getMemoCache.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAEtC,uCAAuC;AACvC,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAqBjH;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,GAAG,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAGzE"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMemoCache = void 0;
4
+ const getCacheEntry_1 = require("./getCacheEntry");
5
+ /** base node used to remember references when a globalKey is set */
6
+ const _baseEntry = {};
7
+ /**
8
+ * Primary functional worker used to implement the caching pattern
9
+ *
10
+ * @param entry - entry to use as the base of the cache traversal
11
+ * @param factory - generally a function who's results will be cached, and returned via the set of keys
12
+ * @param keys - an ordered array of values of any type, used as keys to look up the entry
13
+ */
14
+ function getMemoValueWorker(entry, factory, keys) {
15
+ const foundEntry = (0, getCacheEntry_1.getCacheEntry)(entry, keys);
16
+ // check the key being set, not the value to disambiguate an undefined factory result/value from never having run the factory
17
+ if (!foundEntry.hasOwnProperty('value')) {
18
+ foundEntry.value = typeof factory === 'function' ? factory() : factory;
19
+ }
20
+ return [foundEntry.value, (fact, args) => getMemoValueWorker(foundEntry, fact, args)];
21
+ }
22
+ /**
23
+ * Get a memo cache instance, this can either be completely self-contained or associated with a global key
24
+ *
25
+ * @param globalKey - optional object reference to use as a key for this cache. If specified it can be used
26
+ * to retrieve the same cache from the global call. If not specified the returned cache will be completely isolated.
27
+ */
28
+ function getMemoCache(globalKey) {
29
+ const entry = globalKey ? (0, getCacheEntry_1.getCacheEntry)(_baseEntry, [globalKey]) : {};
30
+ return (fact, args) => getMemoValueWorker(entry, fact, args);
31
+ }
32
+ exports.getMemoCache = getMemoCache;
33
+ //# sourceMappingURL=getMemoCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMemoCache.js","sourceRoot":"","sources":["../../src/memo-cache/getMemoCache.ts"],"names":[],"mappings":";;;AACA,mDAAgD;AAOhD,oEAAoE;AACpE,MAAM,UAAU,GAAoB,EAAE,CAAC;AAEvC;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAgB,KAAsB,EAAE,OAA4B,EAAE,IAAW;IAC1G,MAAM,UAAU,GAAG,IAAA,6BAAa,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9C,6HAA6H;IAC7H,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;QACvC,UAAU,CAAC,KAAK,GAAG,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAE,OAA2B,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KAC7F;IACD,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,IAA+B,EAAE,IAAW,EAAE,EAAE,CAAC,kBAAkB,CAAO,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAChI,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAU,SAAkB;IACtD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,IAAA,6BAAa,EAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,OAAO,CAAC,IAAyB,EAAE,IAAW,EAAE,EAAE,CAAC,kBAAkB,CAAI,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9F,CAAC;AAHD,oCAGC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getMemoCache.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMemoCache.test.d.ts","sourceRoot":"","sources":["../../src/memo-cache/getMemoCache.test.ts"],"names":[],"mappings":""}