@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,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const getMemoCache_1 = require("./getMemoCache");
4
+ function getObjFactory() {
5
+ const obj = { id: 0 };
6
+ return () => ({
7
+ id: obj.id++,
8
+ });
9
+ }
10
+ describe('getMemoCache unit tests', () => {
11
+ test('memoValue with null function', () => {
12
+ const memoValue = (0, getMemoCache_1.getMemoCache)();
13
+ const [val] = memoValue(null, ['foo', 'bar']);
14
+ expect(val).toBeNull();
15
+ });
16
+ test('memoValue with undefined', () => {
17
+ const memoValue = (0, getMemoCache_1.getMemoCache)();
18
+ const [val] = memoValue(undefined, ['foo', 'bar']);
19
+ expect(val).toBeUndefined();
20
+ });
21
+ test('memoValue with string', () => {
22
+ const memoValue = (0, getMemoCache_1.getMemoCache)();
23
+ const [val] = memoValue('foo', ['bar', 'baz']);
24
+ expect(val).toEqual('foo');
25
+ });
26
+ test('memoValue with object', () => {
27
+ const memoValue = (0, getMemoCache_1.getMemoCache)();
28
+ const obj = { foo: 'hello', bar: 2, baz: 'you' };
29
+ const [val] = memoValue(obj, ['hello', obj]);
30
+ expect(val).toBe(obj);
31
+ });
32
+ test('memoValue executes function', () => {
33
+ const memoValue = (0, getMemoCache_1.getMemoCache)();
34
+ const fn = getObjFactory();
35
+ const v1 = fn();
36
+ const [v2] = memoValue(fn, ['bar', 'baz']);
37
+ expect(v1).not.toBe(v2);
38
+ expect(v1.id).not.toEqual(v2.id);
39
+ });
40
+ test('memo calls function only once', () => {
41
+ const memoValue = (0, getMemoCache_1.getMemoCache)();
42
+ const fn = getObjFactory();
43
+ const keys = ['hello', 'world'];
44
+ const [o1] = memoValue(fn, keys);
45
+ const [o2] = memoValue(fn, keys);
46
+ expect(o2).toBe(o1);
47
+ });
48
+ test('memo calls function only once for empty inputs', () => {
49
+ const memoValue = (0, getMemoCache_1.getMemoCache)();
50
+ const fn = getObjFactory();
51
+ const [o1] = memoValue(fn, undefined);
52
+ const [o2] = memoValue(fn, undefined);
53
+ expect(o2).toBe(o1);
54
+ });
55
+ test('sub caches are separate', () => {
56
+ const memoValue = (0, getMemoCache_1.getMemoCache)();
57
+ const base1 = {};
58
+ const base2 = {};
59
+ const [, getCache1] = memoValue(null, [base1]);
60
+ const [, getCache2] = memoValue(null, [base2]);
61
+ const objKey = {};
62
+ const fn = getObjFactory();
63
+ const [o1] = getCache1(fn, [objKey]);
64
+ const [o2] = getCache2(fn, [objKey]);
65
+ const [o3] = getCache2(fn, [objKey]);
66
+ expect(o1).not.toBe(o2);
67
+ expect(o3).toBe(o2);
68
+ });
69
+ test('sub caches work on branches', () => {
70
+ const memoValue = (0, getMemoCache_1.getMemoCache)();
71
+ const keys1 = [{}, 2, 'hello'];
72
+ const keys2 = [{}, true];
73
+ const fn = getObjFactory();
74
+ const [, getMemoValue] = memoValue(null, keys1);
75
+ const [val1] = getMemoValue(fn, keys2);
76
+ const [val2] = memoValue(fn, [...keys1, ...keys2]);
77
+ expect(val2).toBe(val1);
78
+ });
79
+ });
80
+ //# sourceMappingURL=getMemoCache.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMemoCache.test.js","sourceRoot":"","sources":["../../src/memo-cache/getMemoCache.test.ts"],"names":[],"mappings":";;AAAA,iDAA8C;AAM9C,SAAS,aAAa;IACpB,MAAM,GAAG,GAAY,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IAC/B,OAAO,GAAG,EAAE,CAAC,CAAC;QACZ,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;KACb,CAAC,CAAC;AACL,CAAC;AAED,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACxC,MAAM,SAAS,GAAG,IAAA,2BAAY,GAAE,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACpC,MAAM,SAAS,GAAG,IAAA,2BAAY,GAAE,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACjC,MAAM,SAAS,GAAG,IAAA,2BAAY,GAAE,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACjC,MAAM,SAAS,GAAG,IAAA,2BAAY,GAAE,CAAC;QACjC,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACvC,MAAM,SAAS,GAAG,IAAA,2BAAY,GAAE,CAAC;QACjC,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QAChB,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACzC,MAAM,SAAS,GAAG,IAAA,2BAAY,GAAE,CAAC;QACjC,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;QAC1D,MAAM,SAAS,GAAG,IAAA,2BAAY,GAAE,CAAC;QACjC,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3B,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACnC,MAAM,SAAS,GAAG,IAAA,2BAAY,GAAE,CAAC;QACjC,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3B,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACvC,MAAM,SAAS,GAAG,IAAA,2BAAY,GAAE,CAAC;QACjC,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACzB,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3B,MAAM,CAAC,EAAE,YAAY,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export type { GetMemoValue } from './getMemoCache';
2
+ export { getMemoCache } from './getMemoCache';
3
+ export { memoize } from './memoize';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memo-cache/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.memoize = exports.getMemoCache = void 0;
4
+ var getMemoCache_1 = require("./getMemoCache");
5
+ Object.defineProperty(exports, "getMemoCache", { enumerable: true, get: function () { return getMemoCache_1.getMemoCache; } });
6
+ var memoize_1 = require("./memoize");
7
+ Object.defineProperty(exports, "memoize", { enumerable: true, get: function () { return memoize_1.memoize; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memo-cache/index.ts"],"names":[],"mappings":";;;AACA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * This wraps a function to memoize the results using the standard javascript memoization pattern
3
+ * @param fn - function to memoize
4
+ */
5
+ export declare function memoize<T extends Function>(fn: T): T;
6
+ //# sourceMappingURL=memoize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoize.d.ts","sourceRoot":"","sources":["../../src/memo-cache/memoize.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CASpD"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.memoize = void 0;
4
+ const getMemoCache_1 = require("./getMemoCache");
5
+ /**
6
+ * This wraps a function to memoize the results using the standard javascript memoization pattern
7
+ * @param fn - function to memoize
8
+ */
9
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
10
+ function memoize(fn) {
11
+ // create a unique cache that will be captured in the closure
12
+ const cache = (0, getMemoCache_1.getMemoCache)();
13
+ // create the closure which wraps the calling function
14
+ const closure = (...args) => {
15
+ return cache(() => fn(...(args || [])), args)[0];
16
+ };
17
+ // now return that closure strongly typed as the function.
18
+ return closure;
19
+ }
20
+ exports.memoize = memoize;
21
+ //# sourceMappingURL=memoize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoize.js","sourceRoot":"","sources":["../../src/memo-cache/memoize.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAE9C;;;GAGG;AACH,sEAAsE;AACtE,SAAgB,OAAO,CAAqB,EAAK;IAC/C,6DAA6D;IAC7D,MAAM,KAAK,GAAG,IAAA,2BAAY,GAAO,CAAC;IAClC,sDAAsD;IACtD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;QACjC,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC;IACF,0DAA0D;IAC1D,OAAO,OAAuB,CAAC;AACjC,CAAC;AATD,0BASC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=memoize.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoize.test.d.ts","sourceRoot":"","sources":["../../src/memo-cache/memoize.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const memoize_1 = require("./memoize");
4
+ let _globalCalls = 0;
5
+ describe('Memoize unit tests', () => {
6
+ test('simple function no args', () => {
7
+ const noArgsFn = (0, memoize_1.memoize)(() => {
8
+ return ++_globalCalls;
9
+ });
10
+ const result1 = noArgsFn();
11
+ expect(noArgsFn()).toEqual(result1);
12
+ });
13
+ test('simple function 1 arg', () => {
14
+ const incrementFn = (0, memoize_1.memoize)((bump) => {
15
+ ++_globalCalls;
16
+ return bump + 1;
17
+ });
18
+ expect(incrementFn(3)).toEqual(4);
19
+ const calls = _globalCalls;
20
+ incrementFn(3);
21
+ expect(_globalCalls).toEqual(calls);
22
+ incrementFn(4);
23
+ expect(_globalCalls).toEqual(calls + 1);
24
+ incrementFn(4);
25
+ expect(_globalCalls).toEqual(calls + 1);
26
+ });
27
+ test('void function 2 args', () => {
28
+ const voidFn = (0, memoize_1.memoize)((a, b) => {
29
+ if (a) {
30
+ ++_globalCalls;
31
+ }
32
+ else if (b) {
33
+ ++_globalCalls;
34
+ }
35
+ else {
36
+ ++_globalCalls;
37
+ }
38
+ });
39
+ voidFn(3, 'hello');
40
+ const calls = _globalCalls;
41
+ voidFn(3, 'hello');
42
+ expect(_globalCalls).toEqual(calls);
43
+ voidFn(3, 'world');
44
+ expect(_globalCalls).toEqual(calls + 1);
45
+ });
46
+ });
47
+ //# sourceMappingURL=memoize.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoize.test.js","sourceRoot":"","sources":["../../src/memo-cache/memoize.test.ts"],"names":[],"mappings":";;AAAA,uCAAoC;AAEpC,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACnC,MAAM,QAAQ,GAAG,IAAA,iBAAO,EAAC,GAAG,EAAE;YAC5B,OAAO,EAAE,YAAY,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACjC,MAAM,WAAW,GAAG,IAAA,iBAAO,EAAC,CAAC,IAAY,EAAE,EAAE;YAC3C,EAAE,YAAY,CAAC;YACf,OAAO,IAAI,GAAG,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,YAAY,CAAC;QAC3B,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACxC,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAChC,MAAM,MAAM,GAAG,IAAA,iBAAO,EAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;YAC9C,IAAI,CAAC,EAAE;gBACL,EAAE,YAAY,CAAC;aAChB;iBAAM,IAAI,CAAC,EAAE;gBACZ,EAAE,YAAY,CAAC;aAChB;iBAAM;gBACL,EAAE,YAAY,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,YAAY,CAAC;QAC3B,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACnB,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACnB,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export type { StyleProp } from './mergeStyles.types';
2
+ export { mergeStyles } from './mergeStyles';
3
+ export { mergeProps } from './mergeProps';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/merge-props/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergeProps = exports.mergeStyles = void 0;
4
+ var mergeStyles_1 = require("./mergeStyles");
5
+ Object.defineProperty(exports, "mergeStyles", { enumerable: true, get: function () { return mergeStyles_1.mergeStyles; } });
6
+ var mergeProps_1 = require("./mergeProps");
7
+ Object.defineProperty(exports, "mergeProps", { enumerable: true, get: function () { return mergeProps_1.mergeProps; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/merge-props/index.ts"],"names":[],"mappings":";;;AACA,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Merge props together, flattening and merging styles as appropriate
3
+ * @param props - props to merge together
4
+ */
5
+ export declare function mergeProps<TProps>(...props: (TProps | undefined)[]): TProps;
6
+ //# sourceMappingURL=mergeProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeProps.d.ts","sourceRoot":"","sources":["../../src/merge-props/mergeProps.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,CAE3E"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergeProps = void 0;
4
+ const Merge_1 = require("../immutable-merge/Merge");
5
+ const mergeStyles_1 = require("./mergeStyles");
6
+ /**
7
+ * Props will not deeply merge with the exception of a style property. Also className needs to be handled specially.
8
+ */
9
+ const mergePropsOptions = {
10
+ className: (...names) => names.filter((v) => v && typeof v === 'string').join(' '),
11
+ style: mergeStyles_1.mergeStyles,
12
+ };
13
+ /**
14
+ * Merge props together, flattening and merging styles as appropriate
15
+ * @param props - props to merge together
16
+ */
17
+ function mergeProps(...props) {
18
+ return (0, Merge_1.immutableMergeCore)(mergePropsOptions, ...(0, Merge_1.filterToObjects)(props));
19
+ }
20
+ exports.mergeProps = mergeProps;
21
+ //# sourceMappingURL=mergeProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeProps.js","sourceRoot":"","sources":["../../src/merge-props/mergeProps.ts"],"names":[],"mappings":";;;AACA,oDAA+E;AAE/E,+CAA4C;AAE5C;;GAEG;AACH,MAAM,iBAAiB,GAAiB;IACtC,SAAS,EAAE,CAAC,GAAG,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACzF,KAAK,EAAE,yBAAW;CACnB,CAAC;AAEF;;;GAGG;AACH,SAAgB,UAAU,CAAS,GAAG,KAA6B;IACjE,OAAO,IAAA,0BAAkB,EAAC,iBAAiB,EAAE,GAAG,IAAA,uBAAe,EAAS,KAAK,CAAC,CAAC,CAAC;AAClF,CAAC;AAFD,gCAEC"}
@@ -0,0 +1,16 @@
1
+ import type { StyleProp } from './mergeStyles.types';
2
+ /**
3
+ * Take a react-native style, which may be a recursive array, and return as a flattened
4
+ * style. This is analagous to the flatten routine that is part of the style sheet API
5
+ *
6
+ * @param style - StyleProp<TStyle> to flatten, this can be a TStyle or an array
7
+ */
8
+ export declare function flattenStyle(style: StyleProp<object>): object;
9
+ /**
10
+ * Merge styles together into a single flat object and optionally finalize them, can also be used to finalize a single style
11
+ *
12
+ * @param styles - array of styles to merge together. The styles will be flattened as part of the process
13
+ */
14
+ export declare function mergeAndFlattenStyles(...styles: StyleProp<object>[]): object | undefined;
15
+ export declare function mergeStyles(...styles: StyleProp<object>[]): object | undefined;
16
+ //# sourceMappingURL=mergeStyles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeStyles.d.ts","sourceRoot":"","sources":["../../src/merge-props/mergeStyles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAE7D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,CAOxF;AAID,wBAAgB,WAAW,CAAC,GAAG,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,CAQ9E"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergeStyles = exports.mergeAndFlattenStyles = exports.flattenStyle = void 0;
4
+ const Merge_1 = require("../immutable-merge/Merge");
5
+ const getMemoCache_1 = require("../memo-cache/getMemoCache");
6
+ /**
7
+ * Take a react-native style, which may be a recursive array, and return as a flattened
8
+ * style. This is analagous to the flatten routine that is part of the style sheet API
9
+ *
10
+ * @param style - StyleProp<TStyle> to flatten, this can be a TStyle or an array
11
+ */
12
+ function flattenStyle(style) {
13
+ return Array.isArray(style) ? (0, Merge_1.immutableMerge)(...style.map((v) => flattenStyle(v))) : style || {};
14
+ }
15
+ exports.flattenStyle = flattenStyle;
16
+ /**
17
+ * Merge styles together into a single flat object and optionally finalize them, can also be used to finalize a single style
18
+ *
19
+ * @param styles - array of styles to merge together. The styles will be flattened as part of the process
20
+ */
21
+ function mergeAndFlattenStyles(...styles) {
22
+ // baseline merge and flatten the objects
23
+ return (0, Merge_1.immutableMerge)(...styles.map((styleProp) => {
24
+ return flattenStyle(styleProp);
25
+ }));
26
+ }
27
+ exports.mergeAndFlattenStyles = mergeAndFlattenStyles;
28
+ const _styleCache = (0, getMemoCache_1.getMemoCache)();
29
+ function mergeStyles(...styles) {
30
+ // filter the style set to just objects (which might be arrays or plain style objects)
31
+ const inputs = styles.filter((s) => typeof s === 'object');
32
+ // now memo the results if there is more than one element or if the one element is an array
33
+ return inputs.length > 1 || (inputs.length === 1 && Array.isArray(inputs[0]))
34
+ ? _styleCache(() => mergeAndFlattenStyles(undefined, ...inputs), inputs)[0]
35
+ : inputs[0] || {};
36
+ }
37
+ exports.mergeStyles = mergeStyles;
38
+ //# sourceMappingURL=mergeStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeStyles.js","sourceRoot":"","sources":["../../src/merge-props/mergeStyles.ts"],"names":[],"mappings":";;;AAAA,oDAA0D;AAC1D,6DAA0D;AAI1D;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAAwB;IACnD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,sBAAc,EAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;AACnG,CAAC;AAFD,oCAEC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,GAAG,MAA2B;IAClE,yCAAyC;IACzC,OAAO,IAAA,sBAAc,EACnB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,SAA4B,EAAE,EAAE;QAC7C,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAPD,sDAOC;AAED,MAAM,WAAW,GAAG,IAAA,2BAAY,GAAE,CAAC;AAEnC,SAAgB,WAAW,CAAC,GAAG,MAA2B;IACxD,sFAAsF;IACtF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAa,CAAC;IAEvE,2FAA2F;IAC3F,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AARD,kCAQC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mergeStyles.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeStyles.test.d.ts","sourceRoot":"","sources":["../../src/merge-props/mergeStyles.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mergeStyles_1 = require("./mergeStyles");
4
+ const s1 = [
5
+ { backgroundColor: 'blue' },
6
+ [{ color: 'red', borderWidth: 1 }, { fontFamily: 'segoe' }, [{ backgroundColor: 'bodyBackground' }]],
7
+ ];
8
+ const s1flatten = {
9
+ backgroundColor: 'bodyBackground',
10
+ color: 'red',
11
+ borderWidth: 1,
12
+ fontFamily: 'segoe',
13
+ };
14
+ const s2 = {
15
+ borderWidth: 2,
16
+ fontFamily: 'primary',
17
+ color: 'bodyText',
18
+ };
19
+ const sMerged = {
20
+ backgroundColor: 'bodyBackground',
21
+ borderWidth: 2,
22
+ fontFamily: 'primary',
23
+ color: 'bodyText',
24
+ };
25
+ const sSelector = {
26
+ borderWidth: 1,
27
+ ':hover': {
28
+ borderWidth: 2,
29
+ fontFamily: 'primary',
30
+ },
31
+ };
32
+ const sSelector2 = {
33
+ backgroundColor: 'white',
34
+ ':hover': {
35
+ backgroundColor: 'black',
36
+ borderWidth: 3,
37
+ },
38
+ };
39
+ const sArraySelector = [[sSelector]];
40
+ const sArraySelector2 = [sSelector2];
41
+ const sMergedSelectors = {
42
+ borderWidth: 1,
43
+ backgroundColor: 'white',
44
+ ':hover': {
45
+ borderWidth: 3,
46
+ fontFamily: 'primary',
47
+ backgroundColor: 'black',
48
+ },
49
+ };
50
+ describe('Style flatten and merge tests', () => {
51
+ test('flatten recursive arrays', () => {
52
+ const flattened = (0, mergeStyles_1.flattenStyle)(s1);
53
+ expect(flattened).toEqual(s1flatten);
54
+ expect(flattened).not.toBe(s1);
55
+ });
56
+ test('flatten flat style returns style', () => {
57
+ const flattened = (0, mergeStyles_1.flattenStyle)(s2);
58
+ expect(flattened).toBe(s2);
59
+ });
60
+ test('merge also flattens', () => {
61
+ const merged = (0, mergeStyles_1.mergeAndFlattenStyles)(undefined, undefined, s1, s2);
62
+ expect(merged).toEqual(sMerged);
63
+ });
64
+ test('merge with sub objects', () => {
65
+ const merged = (0, mergeStyles_1.mergeAndFlattenStyles)(undefined, undefined, sSelector, sSelector2);
66
+ expect(merged).toEqual(sMergedSelectors);
67
+ });
68
+ test('merge sub objects in arrays', () => {
69
+ const merged = (0, mergeStyles_1.mergeAndFlattenStyles)(undefined, undefined, sArraySelector, sArraySelector2);
70
+ expect(merged).toEqual(sMergedSelectors);
71
+ });
72
+ test('memo recursive arrays', () => {
73
+ const flattened = (0, mergeStyles_1.mergeStyles)(s1);
74
+ const flattened2 = (0, mergeStyles_1.mergeStyles)(s1);
75
+ expect(flattened).toEqual(s1flatten);
76
+ expect(flattened2).toBe(flattened);
77
+ });
78
+ test('memo flat style', () => {
79
+ const flattened = (0, mergeStyles_1.mergeStyles)(s2);
80
+ const flattened2 = (0, mergeStyles_1.mergeStyles)(s2);
81
+ expect(flattened).toBe(s2);
82
+ expect(flattened2).toBe(flattened);
83
+ });
84
+ test('memo and flatten multiple', () => {
85
+ const flattened = (0, mergeStyles_1.mergeStyles)(s1, s2);
86
+ const flattened2 = (0, mergeStyles_1.mergeStyles)(s1, s2);
87
+ expect(flattened).toEqual(sMerged);
88
+ expect(flattened2).toBe(flattened);
89
+ });
90
+ test('memo styles ignores undefined values', () => {
91
+ const result1 = (0, mergeStyles_1.mergeStyles)(s1, s2, undefined, s1flatten);
92
+ const result2 = (0, mergeStyles_1.mergeStyles)(s1, undefined, s2, s1flatten);
93
+ expect(result2).toBe(result1);
94
+ });
95
+ });
96
+ //# sourceMappingURL=mergeStyles.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeStyles.test.js","sourceRoot":"","sources":["../../src/merge-props/mergeStyles.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * This is a copy of the react-native style prop type, copied here to avoid RN dependencies for web clients
3
+ */
4
+ type Falsy = undefined | null | false;
5
+ type RecursiveArray<T> = (T | RecursiveArray<T>)[];
6
+ /** Keep a brand of 'T' so that calls to `StyleSheet.flatten` can take `RegisteredStyle<T>` and return `T`. */
7
+ type RegisteredStyle<T> = number & {
8
+ __registeredStyleBrand: T;
9
+ };
10
+ export type StyleProp<T> = T | RegisteredStyle<T> | RecursiveArray<T | RegisteredStyle<T> | Falsy> | Falsy;
11
+ export {};
12
+ //# sourceMappingURL=mergeStyles.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeStyles.types.d.ts","sourceRoot":"","sources":["../../src/merge-props/mergeStyles.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,KAAK,KAAK,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC;AACtC,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnD,8GAA8G;AAC9G,KAAK,eAAe,CAAC,CAAC,IAAI,MAAM,GAAG;IAAE,sBAAsB,EAAE,CAAC,CAAA;CAAE,CAAC;AAEjE,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=mergeStyles.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeStyles.types.js","sourceRoot":"","sources":["../../src/merge-props/mergeStyles.types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@fluentui-react-native/framework-base",
3
+ "version": "0.1.1",
4
+ "description": "Base types and utilities fluentui-react-native frameworks",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/microsoft/fluentui-react-native",
8
+ "directory": "packages/framework-base"
9
+ },
10
+ "main": "lib-commonjs/index.js",
11
+ "module": "lib/index.js",
12
+ "typings": "lib/index.d.ts",
13
+ "react-native": "src/index.ts",
14
+ "exports": {
15
+ ".": {
16
+ "import": "./lib/index.js",
17
+ "require": "./lib-commonjs/index.js",
18
+ "types": "./lib/index.d.ts"
19
+ },
20
+ "./immutable-merge": {
21
+ "import": "./lib/immutable-merge/Merge.js",
22
+ "require": "./lib-commonjs/immutable-merge/Merge.js",
23
+ "types": "./lib/immutable-merge/Merge.d.ts"
24
+ },
25
+ "./memo-cache": {
26
+ "import": "./lib/memo-cache/index.js",
27
+ "require": "./lib-commonjs/memo-cache/index.js",
28
+ "types": "./lib/memo-cache/index.d.ts"
29
+ },
30
+ "./merge-props": {
31
+ "import": "./lib/merge-props/index.js",
32
+ "require": "./lib-commonjs/merge-props/index.js",
33
+ "types": "./lib/merge-props/lib/index.d.ts"
34
+ }
35
+ },
36
+ "scripts": {
37
+ "build": "fluentui-scripts build",
38
+ "just": "fluentui-scripts",
39
+ "clean": "fluentui-scripts clean",
40
+ "depcheck": "fluentui-scripts depcheck",
41
+ "test": "fluentui-scripts jest",
42
+ "lint": "fluentui-scripts eslint",
43
+ "start": "fluentui-scripts dev",
44
+ "start-test": "fluentui-scripts jest-watch",
45
+ "update-snapshots": "fluentui-scripts jest -u",
46
+ "prettier": "fluentui-scripts prettier",
47
+ "prettier-fix": "fluentui-scripts prettier --fix true"
48
+ },
49
+ "keywords": [],
50
+ "author": "",
51
+ "license": "MIT",
52
+ "devDependencies": {
53
+ "@fluentui-react-native/eslint-config-rules": "0.1.1",
54
+ "@fluentui-react-native/scripts": "0.1.1",
55
+ "@types/jest": "^29.0.0",
56
+ "@types/node": "^10.3.5"
57
+ }
58
+ }