repluggable-core 1.302.77 → 1.302.79

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 (74) hide show
  1. package/dist/debug/src/API.d.ts +9 -1
  2. package/dist/debug/src/extensionSlot.d.ts +13 -2
  3. package/dist/es/src/API.d.ts +9 -1
  4. package/dist/es/src/API.d.ts.map +1 -1
  5. package/dist/es/src/IterableWeakMap.d.ts.map +1 -1
  6. package/dist/es/src/IterableWeakMap.js.map +1 -1
  7. package/dist/es/src/appHost.d.ts.map +1 -1
  8. package/dist/es/src/appHost.js +11 -2
  9. package/dist/es/src/appHost.js.map +1 -1
  10. package/dist/es/src/extensionSlot.d.ts +13 -2
  11. package/dist/es/src/extensionSlot.d.ts.map +1 -1
  12. package/dist/es/src/extensionSlot.js +21 -9
  13. package/dist/es/src/extensionSlot.js.map +1 -1
  14. package/dist/es/src/index.d.ts +1 -1
  15. package/dist/es/src/index.d.ts.map +1 -1
  16. package/dist/es/src/index.js.map +1 -1
  17. package/dist/es/src/throttledStore.d.ts.map +1 -1
  18. package/dist/es/src/throttledStore.js.map +1 -1
  19. package/dist/es/test/appHost.spec.js +71 -0
  20. package/dist/es/test/appHost.spec.js.map +1 -1
  21. package/dist/es/test/createSignalItemsDataStructure.d.ts +16 -0
  22. package/dist/es/test/createSignalItemsDataStructure.d.ts.map +1 -0
  23. package/dist/es/test/createSignalItemsDataStructure.js +54 -0
  24. package/dist/es/test/createSignalItemsDataStructure.js.map +1 -0
  25. package/dist/es/test/extensionSlot.spec.d.ts +2 -0
  26. package/dist/es/test/extensionSlot.spec.d.ts.map +1 -0
  27. package/dist/es/test/extensionSlot.spec.js +136 -0
  28. package/dist/es/test/extensionSlot.spec.js.map +1 -0
  29. package/dist/es/testKit/index.d.ts +1 -0
  30. package/dist/es/testKit/index.d.ts.map +1 -1
  31. package/dist/es/testKit/index.js +1 -0
  32. package/dist/es/testKit/index.js.map +1 -1
  33. package/dist/src/API.d.ts +9 -1
  34. package/dist/src/API.d.ts.map +1 -1
  35. package/dist/src/IterableWeakMap.d.ts.map +1 -1
  36. package/dist/src/IterableWeakMap.js.map +1 -1
  37. package/dist/src/appHost.d.ts.map +1 -1
  38. package/dist/src/appHost.js +11 -2
  39. package/dist/src/appHost.js.map +1 -1
  40. package/dist/src/extensionSlot.d.ts +13 -2
  41. package/dist/src/extensionSlot.d.ts.map +1 -1
  42. package/dist/src/extensionSlot.js +21 -9
  43. package/dist/src/extensionSlot.js.map +1 -1
  44. package/dist/src/index.d.ts +1 -1
  45. package/dist/src/index.d.ts.map +1 -1
  46. package/dist/src/index.js.map +1 -1
  47. package/dist/src/throttledStore.d.ts.map +1 -1
  48. package/dist/src/throttledStore.js.map +1 -1
  49. package/dist/test/appHost.spec.js +71 -0
  50. package/dist/test/appHost.spec.js.map +1 -1
  51. package/dist/test/createSignalItemsDataStructure.d.ts +16 -0
  52. package/dist/test/createSignalItemsDataStructure.d.ts.map +1 -0
  53. package/dist/test/createSignalItemsDataStructure.js +58 -0
  54. package/dist/test/createSignalItemsDataStructure.js.map +1 -0
  55. package/dist/test/extensionSlot.spec.d.ts +2 -0
  56. package/dist/test/extensionSlot.spec.d.ts.map +1 -0
  57. package/dist/test/extensionSlot.spec.js +138 -0
  58. package/dist/test/extensionSlot.spec.js.map +1 -0
  59. package/dist/testKit/index.d.ts +1 -0
  60. package/dist/testKit/index.d.ts.map +1 -1
  61. package/dist/testKit/index.js +3 -1
  62. package/dist/testKit/index.js.map +1 -1
  63. package/package.json +3 -2
  64. package/src/API.ts +12 -4
  65. package/src/IterableWeakMap.ts +3 -5
  66. package/src/__internal.ts +1 -1
  67. package/src/appHost.ts +10 -2
  68. package/src/extensionSlot.ts +36 -10
  69. package/src/index.ts +3 -5
  70. package/src/throttledStore.ts +9 -15
  71. package/test/appHost.spec.ts +89 -0
  72. package/test/createSignalItemsDataStructure.ts +65 -0
  73. package/test/extensionSlot.spec.ts +176 -0
  74. package/testKit/index.ts +7 -7
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.mockObservable = exports.addMockShell = exports.createAppHostAndWaitForLoading = exports.createAppHostWithPacts = exports.getPackagesDependencies = exports.createAppHost = exports.withThrowOnError = exports.withConsoleErrors = exports.emptyLoggerOptions = exports.createShellLogger = void 0;
29
+ exports.mockObservable = exports.addMockShell = exports.createAppHostAndWaitForLoading = exports.createAppHostWithPacts = exports.getPackagesDependencies = exports.createAppHost = exports.createSignalItemsDataStructure = exports.withThrowOnError = exports.withConsoleErrors = exports.emptyLoggerOptions = exports.createShellLogger = void 0;
30
30
  const lodash_1 = __importDefault(require("lodash"));
31
31
  const index_1 = require("../src/index");
32
32
  const loggers_1 = require("../src/loggers");
@@ -38,6 +38,8 @@ Object.defineProperty(exports, "withConsoleErrors", { enumerable: true, get: fun
38
38
  var withThrowOnError_1 = require("./withThrowOnError");
39
39
  Object.defineProperty(exports, "withThrowOnError", { enumerable: true, get: function () { return withThrowOnError_1.withThrowOnError; } });
40
40
  __exportStar(require("./mockPackage"), exports);
41
+ var createSignalItemsDataStructure_1 = require("../test/createSignalItemsDataStructure");
42
+ Object.defineProperty(exports, "createSignalItemsDataStructure", { enumerable: true, get: function () { return createSignalItemsDataStructure_1.createSignalItemsDataStructure; } });
41
43
  const createAppHost = (packages, options = emptyLoggerOptions_1.emptyLoggerOptions) => {
42
44
  return (0, index_1.createAppHost)(packages, options);
43
45
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../testKit/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../testKit/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "repluggable-core",
3
- "version": "1.302.77",
3
+ "version": "1.302.79",
4
4
  "license": "MIT",
5
5
  "description": "Allows composition of a React-with-Redux application entirely from a list of pluggable packages",
6
6
  "main": "dist/src/index.js",
@@ -20,7 +20,8 @@
20
20
  "build-es": "tsc --outDir dist/es --module esNext",
21
21
  "build-debug": "tsc --project tsconfig.debug.json",
22
22
  "test": "jest --coverage",
23
- "posttest": "tslint --project ."
23
+ "posttest": "tslint --project .",
24
+ "lintfix": "tslint --fix --project ."
24
25
  },
25
26
  "dependencies": {
26
27
  "lodash": "^4.17.20",
package/src/API.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as Redux from 'redux'
2
2
  import { ThrottledStore } from './throttledStore'
3
3
  import { INTERNAL_DONT_USE_SHELL_GET_APP_HOST } from './__internal'
4
-
4
+ import { CustomCreateExtensionSlot } from './extensionSlot'
5
5
 
6
6
  export interface AnySlotKey {
7
7
  readonly name: string
@@ -333,6 +333,14 @@ export interface APILayer {
333
333
  name: string
334
334
  }
335
335
 
336
+ interface AppHostPlugins {
337
+ extensionSlot?: {
338
+ customCreateExtensionSlot: CustomCreateExtensionSlot
339
+ }
340
+ }
341
+
342
+ export {CustomCreateExtensionSlot}
343
+
336
344
  export interface AppHostOptions {
337
345
  readonly logger?: HostLogger
338
346
  readonly monitoring: MonitoringOptions
@@ -343,6 +351,7 @@ export interface AppHostOptions {
343
351
  readonly enableReduxDevtoolsExtension?: boolean
344
352
  readonly experimentalCyclicMode?: boolean
345
353
  readonly shouldScopeReducers?: boolean
354
+ readonly plugins?: AppHostPlugins
346
355
  }
347
356
 
348
357
  export interface MemoizeMissHit {
@@ -526,9 +535,8 @@ export interface PrivateShell extends Shell {
526
535
  setDependencyAPIs(APIs: AnySlotKey[]): void
527
536
  setLifecycleState(enableStore: boolean, enableAPIs: boolean, initCompleted: boolean): void
528
537
  getBoundaryAspects(): ShellBoundaryAspect[]
529
- getHostOptions(): AppHostOptions,
530
- readonly [INTERNAL_DONT_USE_SHELL_GET_APP_HOST]: () => AppHost
531
-
538
+ getHostOptions(): AppHostOptions
539
+ [INTERNAL_DONT_USE_SHELL_GET_APP_HOST](): AppHost
532
540
  }
533
541
 
534
542
  export interface EntryPointsInfo {
@@ -81,7 +81,7 @@ export class IterableWeakMap<K extends object = object, V = any> implements Map<
81
81
 
82
82
  forEach(callbackfn: (value: V, key: K, map: this) => void, thisArg?: any): void {
83
83
  for (const [key, value] of this) {
84
- callbackfn(value, key, this )
84
+ callbackfn(value, key, this)
85
85
  }
86
86
  }
87
87
 
@@ -107,17 +107,15 @@ export class IterableWeakMap<K extends object = object, V = any> implements Map<
107
107
  return this[Symbol.iterator]() as unknown as ReturnType<Map<K, V>['entries']>
108
108
  }
109
109
 
110
- *keys(): ReturnType<Map<K, V>['keys']> {
110
+ *keys(): ReturnType<Map<K, V>['keys']> {
111
111
  for (const [key] of this) {
112
112
  yield key
113
113
  }
114
114
  }
115
115
 
116
- *values(): ReturnType<Map<K, V>['values']> {
116
+ *values(): ReturnType<Map<K, V>['values']> {
117
117
  for (const [_, value] of this) {
118
118
  yield value
119
119
  }
120
120
  }
121
121
  }
122
-
123
-
package/src/__internal.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * This symbol is only for internal use of repluggable mono-repo.
3
3
  */
4
- export const INTERNAL_DONT_USE_SHELL_GET_APP_HOST: unique symbol = Symbol.for('SHELL_GET_APP_HOST')
4
+ export const INTERNAL_DONT_USE_SHELL_GET_APP_HOST: unique symbol = Symbol.for('SHELL_GET_APP_HOST')
package/src/appHost.ts CHANGED
@@ -251,7 +251,10 @@ export function createAppHost(initialEntryPointsOrPackages: EntryPointOrPackage[
251
251
  const memoized = _.memoize(func, resolver)
252
252
 
253
253
  if (options.monitoring.debugMemoization) {
254
- Object.defineProperty(memoized, 'name', { value: `${func.name}_memoized`, writable: false })
254
+ Object.defineProperty(memoized, 'name', {
255
+ value: `${func.name}_memoized`,
256
+ writable: false
257
+ })
255
258
  }
256
259
 
257
260
  if (options.monitoring.disableMonitoring) {
@@ -560,7 +563,12 @@ miss: ${memoizedWithMissHit.miss}
560
563
  }
561
564
 
562
565
  function declareSlot<TItem>(key: SlotKey<TItem>, declaringShell?: Shell): ExtensionSlot<TItem> {
563
- const newSlot = registerSlotOrThrow(key, () => createExtensionSlot(key, host, declaringShell))
566
+ const newSlot = registerSlotOrThrow(key, () =>
567
+ createExtensionSlot(key, host, {
568
+ declaringShell,
569
+ customCreateExtensionSlot: options.plugins?.extensionSlot?.customCreateExtensionSlot
570
+ })
571
+ )
564
572
  return newSlot
565
573
  }
566
574
 
@@ -21,18 +21,44 @@ const alwaysTrue = () => true
21
21
 
22
22
  type Unsubscribe = () => void
23
23
 
24
+ interface ItemsDataStructure<T> {
25
+ get(): ExtensionItem<T>[]
26
+ add(item: ExtensionItem<T>): void
27
+ discardBy(predicate: (item: ExtensionItem<T>) => boolean): void
28
+ }
29
+
30
+ const itemsDataStructure = <T>(): ItemsDataStructure<T> => {
31
+ let items: ExtensionItem<T>[] = []
32
+ return {
33
+ get: () => items,
34
+ add: (item: ExtensionItem<T>) => {
35
+ items.push(item)
36
+ },
37
+ discardBy: (predicate: (item: ExtensionItem<T>) => boolean) => {
38
+ items = items.filter(predicate)
39
+ }
40
+ }
41
+ }
42
+
43
+ export type CustomCreateExtensionSlot = <T>() => ItemsDataStructure<T>
44
+
45
+ export interface CreateExtensionSlotOptions {
46
+ declaringShell?: Shell
47
+ customCreateExtensionSlot?: CustomCreateExtensionSlot
48
+ }
49
+
24
50
  export function createExtensionSlot<T>(
25
51
  key: SlotKey<T>,
26
52
  host: PrivateAppHost,
27
- declaringShell?: Shell
53
+ options?: CreateExtensionSlotOptions
28
54
  ): PrivateExtensionSlot<T> & AnyExtensionSlot {
29
- let items: ExtensionItem<T>[] = []
55
+ const items = options?.customCreateExtensionSlot ? options.customCreateExtensionSlot<T>() : itemsDataStructure<T>()
30
56
  let subscribers: (() => void)[] = []
31
57
  const slotUniqueId = _.uniqueId()
32
58
 
33
59
  return {
34
60
  host,
35
- declaringShell,
61
+ declaringShell: options?.declaringShell,
36
62
  name: key.name,
37
63
  contribute,
38
64
  getItems,
@@ -43,7 +69,7 @@ export function createExtensionSlot<T>(
43
69
  }
44
70
 
45
71
  function contribute(fromShell: Shell, item: T, condition?: ContributionPredicate): void {
46
- items.push({
72
+ items.add({
47
73
  shell: fromShell,
48
74
  contribution: item,
49
75
  condition: condition || alwaysTrue,
@@ -53,21 +79,21 @@ export function createExtensionSlot<T>(
53
79
  }
54
80
 
55
81
  function getItems(forceAll: boolean = false): ExtensionItem<T>[] {
56
- return forceAll ? items : items.filter(item => item.condition())
82
+ return forceAll ? items.get() : items.get().filter(item => item.condition())
57
83
  }
58
84
 
59
85
  function getSingleItem(): ExtensionItem<T> | undefined {
60
- return items.find(item => item.condition())
86
+ return items.get().find(item => item.condition())
61
87
  }
62
88
 
63
89
  function getItemByName(name: string): ExtensionItem<T> | undefined {
64
- return items.find(item => item.name === name && item.condition())
90
+ return items.get().find(item => item.name === name && item.condition())
65
91
  }
66
92
 
67
93
  function discardBy(predicate: ExtensionItemFilter<T>) {
68
- const originalContributionCount = items.length
69
- items = items.filter(v => !predicate(v))
70
- if (items.length !== originalContributionCount) {
94
+ const originalContributionCount = items.get().length
95
+ items.discardBy(v => !predicate(v))
96
+ if (items.get().length !== originalContributionCount) {
71
97
  subscribers.forEach(func => func())
72
98
  }
73
99
  }
package/src/index.ts CHANGED
@@ -13,6 +13,7 @@ export {
13
13
  AnySlotKey,
14
14
  SlotKey,
15
15
  ReactComponentContributor,
16
+ CustomCreateExtensionSlot,
16
17
  ReducersMapObjectContributor,
17
18
  EntryPointInterceptor,
18
19
  ShellLogger,
@@ -26,13 +27,11 @@ export {
26
27
  ScopedStore
27
28
  } from './API'
28
29
 
29
-
30
-
31
30
  export { ConsoleHostLogger } from './loggers'
32
31
 
33
32
  export { createAppHost, makeLazyEntryPoint, mainViewSlotKey, stateSlotKey } from './appHost'
34
33
 
35
- export {AppHostServicesProvider} from './appHostServices'
34
+ export { AppHostServicesProvider } from './appHostServices'
36
35
 
37
36
  export { InstalledShellsSelectors, ShellToggleSet } from './installedShellsState'
38
37
 
@@ -42,5 +41,4 @@ export { interceptAnyObject } from './interceptAnyObject'
42
41
  export { monitorAPI } from './monitorAPI'
43
42
  export { hot } from './hot'
44
43
 
45
-
46
- export {INTERNAL_DONT_USE_SHELL_GET_APP_HOST} from './__internal'
44
+ export { INTERNAL_DONT_USE_SHELL_GET_APP_HOST } from './__internal'
@@ -16,18 +16,17 @@ interface AnyShellAction extends AnyAction {
16
16
  __shellName?: string
17
17
  }
18
18
 
19
-
20
- function createTimeOutPublisher ( notify: () => void) {
21
- let id : undefined | NodeJS.Timeout = undefined
19
+ function createTimeOutPublisher(notify: () => void) {
20
+ let id: undefined | NodeJS.Timeout = undefined
22
21
  return () => {
23
22
  if (id === undefined) {
24
23
  id = setTimeout(() => {
25
24
  id = undefined
26
25
  notify()
27
- },0)
26
+ }, 0)
28
27
  }
29
28
  return () => {
30
- if(id === undefined) {
29
+ if (id === undefined) {
31
30
  return
32
31
  }
33
32
  clearTimeout(id)
@@ -36,8 +35,8 @@ function createTimeOutPublisher ( notify: () => void) {
36
35
  }
37
36
  }
38
37
 
39
- function createAnimationFramePublisher ( notify: () => void) {
40
- let id : undefined | number = undefined
38
+ function createAnimationFramePublisher(notify: () => void) {
39
+ let id: undefined | number = undefined
41
40
  return () => {
42
41
  if (id === undefined) {
43
42
  id = requestAnimationFrame(() => {
@@ -46,7 +45,7 @@ function createAnimationFramePublisher ( notify: () => void) {
46
45
  })
47
46
  }
48
47
  return () => {
49
- if(id === undefined) {
48
+ if (id === undefined) {
50
49
  return
51
50
  }
52
51
  cancelAnimationFrame(id)
@@ -55,9 +54,6 @@ function createAnimationFramePublisher ( notify: () => void) {
55
54
  }
56
55
  }
57
56
 
58
-
59
-
60
-
61
57
  type Subscriber = () => void
62
58
 
63
59
  export interface StateContribution<TState = {}, TAction extends AnyAction = AnyAction> {
@@ -252,10 +248,8 @@ export const createThrottledStore = (
252
248
  notifyAll()
253
249
  }
254
250
 
255
-
256
-
257
-
258
- const notifyAllOnPublish = typeof window === 'undefined' ? createTimeOutPublisher(scheduledNotifyAll) : createAnimationFramePublisher(scheduledNotifyAll)
251
+ const notifyAllOnPublish =
252
+ typeof window === 'undefined' ? createTimeOutPublisher(scheduledNotifyAll) : createAnimationFramePublisher(scheduledNotifyAll)
259
253
 
260
254
  let cancelRender = _.noop
261
255
 
@@ -32,6 +32,7 @@ import {
32
32
  import { AppHostAPI, AppHostServicesEntryPointName, AppHostServicesProvider } from '../src/appHostServices'
33
33
  import { ConsoleHostLogger } from '../src/loggers'
34
34
  import { createCircularEntryPoints, createDirectCircularEntryPoints } from './appHost.mock'
35
+ import { createSignalItemsDataStructure } from './createSignalItemsDataStructure'
35
36
 
36
37
  const testHostOptions: AppHostOptions = {
37
38
  monitoring: { disableMonitoring: true }
@@ -1792,4 +1793,92 @@ If the API is intended to be public, it should be declared as "public: true" in
1792
1793
  )
1793
1794
  })
1794
1795
  })
1796
+
1797
+ describe('Custom Items Data Structure via AppHost Options (plugins)', () => {
1798
+ it('should use customCreateExtensionSlot from appHostOptions when contributing and removing items', async () => {
1799
+ interface SlotItem {
1800
+ value: string
1801
+ }
1802
+ const slotKey: SlotKey<SlotItem> = { name: 'host_options_signal_slot' }
1803
+
1804
+ interface SlotContributionAPI {
1805
+ contributeItem(fromShell: Shell, item: SlotItem): void
1806
+ getItems(): SlotItem[]
1807
+ }
1808
+ const SlotContributionAPIKey: SlotKey<SlotContributionAPI> = {
1809
+ name: 'SLOT_CONTRIBUTION_API'
1810
+ }
1811
+
1812
+ const itemsSpy = jest.fn()
1813
+
1814
+ const { createDataStructure, effect } = createSignalItemsDataStructure()
1815
+
1816
+ const slotOwnerEntryPoint: EntryPoint = {
1817
+ name: 'SLOT_OWNER_ENTRY_POINT',
1818
+ declareAPIs() {
1819
+ return [SlotContributionAPIKey]
1820
+ },
1821
+ attach(shell: Shell) {
1822
+ const slot = shell.declareSlot(slotKey)
1823
+ shell.contributeAPI(SlotContributionAPIKey, () => ({
1824
+ contributeItem(fromShell: Shell, item: SlotItem) {
1825
+ slot.contribute(fromShell, item)
1826
+ },
1827
+ getItems() {
1828
+ return slot.getItems().map(item => item.contribution)
1829
+ }
1830
+ }))
1831
+ }
1832
+ }
1833
+
1834
+ const ContributorEntryPoint: EntryPoint = {
1835
+ name: 'CONTRIBUTOR_ENTRY_POINT',
1836
+ getDependencyAPIs() {
1837
+ return [SlotContributionAPIKey, ListenerAPI]
1838
+ },
1839
+ extend(shell: Shell) {
1840
+ const api = shell.getAPI(SlotContributionAPIKey)
1841
+ api.contributeItem(shell, { value: 'item1' })
1842
+ api.contributeItem(shell, { value: 'item2' })
1843
+ }
1844
+ }
1845
+
1846
+ const ListenerAPI: SlotKey<{}> = { name: 'LISTENER_API' }
1847
+
1848
+ const ListenerEntryPoint: EntryPoint = {
1849
+ name: 'LISTENER_ENTRY_POINT',
1850
+ declareAPIs() {
1851
+ return [ListenerAPI]
1852
+ },
1853
+ getDependencyAPIs() {
1854
+ return [SlotContributionAPIKey]
1855
+ },
1856
+ // move to attach to make sure
1857
+ attach(shell: Shell) {
1858
+ const slotContributionAPI = shell.getAPI(SlotContributionAPIKey)
1859
+ effect(() => {
1860
+ slotContributionAPI.getItems()
1861
+ itemsSpy()
1862
+ })
1863
+ // contribute an api to make sure that the contribution depends on it and happens after.
1864
+ shell.contributeAPI(ListenerAPI, () => ({}))
1865
+ }
1866
+ }
1867
+
1868
+ const host = createAppHost([slotOwnerEntryPoint, ContributorEntryPoint, ListenerEntryPoint], {
1869
+ monitoring: {},
1870
+ plugins: {
1871
+ extensionSlot: {
1872
+ customCreateExtensionSlot: createDataStructure
1873
+ }
1874
+ }
1875
+ })
1876
+
1877
+ // first was created and then two time
1878
+ expect(itemsSpy).toBeCalledTimes(3)
1879
+
1880
+ await host.removeShells([ContributorEntryPoint.name])
1881
+ expect(itemsSpy).toBeCalledTimes(4)
1882
+ })
1883
+ })
1795
1884
  })
@@ -0,0 +1,65 @@
1
+ import { ExtensionItem } from '../src/API'
2
+
3
+ // Naive signals implementation
4
+ interface Signal<T> {
5
+ get(): T
6
+ set(value: T): void
7
+ }
8
+
9
+ let currentEffect: (() => void) | null = null
10
+
11
+ const signal = <T>(initialValue: T): Signal<T> => {
12
+ let value = initialValue
13
+ const subscribers = new Set<() => void>()
14
+
15
+ return {
16
+ get: () => {
17
+ if (currentEffect) {
18
+ subscribers.add(currentEffect)
19
+ }
20
+ return value
21
+ },
22
+ set: (newValue: T) => {
23
+ value = newValue
24
+ subscribers.forEach(fn => fn())
25
+ }
26
+ }
27
+ }
28
+
29
+ const effect = (fn: () => void): (() => void) => {
30
+ const execute = () => {
31
+ currentEffect = execute
32
+ fn()
33
+ currentEffect = null
34
+ }
35
+ execute()
36
+ return () => {
37
+ currentEffect = null
38
+ }
39
+ }
40
+
41
+ export const createSignalItemsDataStructure = () => {
42
+ let signalToTrack: Signal<ExtensionItem<any>[]> | null = null
43
+ return {
44
+ createDataStructure: <U>() => {
45
+ const itemsSignal = signal<ExtensionItem<U>[]>([])
46
+ signalToTrack = itemsSignal
47
+ return {
48
+ get: () => itemsSignal.get(),
49
+ add: (item: ExtensionItem<U>) => {
50
+ itemsSignal.set([...itemsSignal.get(), item])
51
+ },
52
+ discardBy: (predicate: (item: ExtensionItem<U>) => boolean) => {
53
+ itemsSignal.set(itemsSignal.get().filter(predicate))
54
+ }
55
+ }
56
+ },
57
+ getSignalToTrack: () => {
58
+ if (!signalToTrack) {
59
+ throw new Error('Signal to track is not set')
60
+ }
61
+ return signalToTrack
62
+ },
63
+ effect
64
+ }
65
+ }