@furystack/repository 10.1.11 → 11.0.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 (51) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +74 -36
  3. package/esm/data-set-setting.d.ts +30 -44
  4. package/esm/data-set-setting.d.ts.map +1 -1
  5. package/esm/data-set.d.ts +17 -68
  6. package/esm/data-set.d.ts.map +1 -1
  7. package/esm/data-set.js +18 -69
  8. package/esm/data-set.js.map +1 -1
  9. package/esm/data-set.spec.d.ts +2 -0
  10. package/esm/data-set.spec.d.ts.map +1 -0
  11. package/esm/data-set.spec.js +348 -0
  12. package/esm/data-set.spec.js.map +1 -0
  13. package/esm/define-data-set.d.ts +71 -0
  14. package/esm/define-data-set.d.ts.map +1 -0
  15. package/esm/define-data-set.js +65 -0
  16. package/esm/define-data-set.js.map +1 -0
  17. package/esm/define-data-set.spec.d.ts +2 -0
  18. package/esm/define-data-set.spec.d.ts.map +1 -0
  19. package/esm/define-data-set.spec.js +134 -0
  20. package/esm/define-data-set.spec.js.map +1 -0
  21. package/esm/helpers.d.ts +12 -29
  22. package/esm/helpers.d.ts.map +1 -1
  23. package/esm/helpers.js +8 -28
  24. package/esm/helpers.js.map +1 -1
  25. package/esm/index.d.ts +2 -2
  26. package/esm/index.d.ts.map +1 -1
  27. package/esm/index.js +2 -2
  28. package/esm/index.js.map +1 -1
  29. package/package.json +5 -5
  30. package/src/data-set-setting.ts +32 -46
  31. package/src/data-set.spec.ts +397 -0
  32. package/src/data-set.ts +28 -72
  33. package/src/define-data-set.spec.ts +145 -0
  34. package/src/define-data-set.ts +122 -0
  35. package/src/helpers.ts +14 -33
  36. package/src/index.ts +2 -2
  37. package/esm/dataset.spec.d.ts +0 -2
  38. package/esm/dataset.spec.d.ts.map +0 -1
  39. package/esm/dataset.spec.js +0 -552
  40. package/esm/dataset.spec.js.map +0 -1
  41. package/esm/repository.d.ts +0 -15
  42. package/esm/repository.d.ts.map +0 -1
  43. package/esm/repository.js +0 -50
  44. package/esm/repository.js.map +0 -1
  45. package/esm/repository.spec.d.ts +0 -2
  46. package/esm/repository.spec.d.ts.map +0 -1
  47. package/esm/repository.spec.js +0 -18
  48. package/esm/repository.spec.js.map +0 -1
  49. package/src/dataset.spec.ts +0 -641
  50. package/src/repository.spec.ts +0 -19
  51. package/src/repository.ts +0 -50
package/esm/repository.js DELETED
@@ -1,50 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { StoreManager } from '@furystack/core';
11
- import { Injectable, Injected } from '@furystack/inject';
12
- import { DataSet } from './data-set.js';
13
- /**
14
- * Collection of authorized physical stores
15
- */
16
- let Repository = class Repository {
17
- [Symbol.dispose]() {
18
- this.dataSets.forEach((ds) => ds[Symbol.dispose]());
19
- this.dataSets.clear();
20
- }
21
- dataSets = new Map();
22
- getDataSetFor(model, primaryKey) {
23
- const instance = this.dataSets.get(model);
24
- if (!instance) {
25
- throw Error(`No DataSet found for '${model.toString()}'`);
26
- }
27
- if (instance.primaryKey !== primaryKey) {
28
- throw Error('Primary key mismatch');
29
- }
30
- return instance;
31
- }
32
- createDataSet(model, primaryKey, settings) {
33
- const physicalStore = (settings && settings.physicalStore) || this.storeManager.getStoreFor(model, primaryKey);
34
- const instance = new DataSet({
35
- ...settings,
36
- physicalStore,
37
- });
38
- this.dataSets.set(model, instance);
39
- return this;
40
- }
41
- };
42
- __decorate([
43
- Injected(StoreManager),
44
- __metadata("design:type", StoreManager)
45
- ], Repository.prototype, "storeManager", void 0);
46
- Repository = __decorate([
47
- Injectable({ lifetime: 'singleton' })
48
- ], Repository);
49
- export { Repository };
50
- //# sourceMappingURL=repository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC;;GAEG;AAEI,IAAM,UAAU,GAAhB,MAAM,UAAU;IACd,CAAC,MAAM,CAAC,OAAO,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC;IAEO,QAAQ,GAAgC,IAAI,GAAG,EAAE,CAAA;IAElD,aAAa,CAClB,KAAuB,EACvB,UAAuB;QAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,KAAK,CAAC,yBAAyB,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;QAC3D,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACvC,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACrC,CAAC;QAED,OAAO,QAAyD,CAAA;IAClE,CAAC;IACM,aAAa,CAClB,KAAuB,EACvB,UAAuB,EACvB,QAAmD;QAEnD,MAAM,aAAa,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;QAC9G,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC;YAC3B,GAAG,QAAQ;YACX,aAAa;SACd,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAClC,OAAO,IAAI,CAAA;IACb,CAAC;CAIF,CAAA;AAD0B;IADxB,QAAQ,CAAC,YAAY,CAAC;8BACgB,YAAY;gDAAA;AArCxC,UAAU;IADtB,UAAU,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;GACzB,UAAU,CAsCtB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=repository.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository.spec.d.ts","sourceRoot":"","sources":["../src/repository.spec.ts"],"names":[],"mappings":""}
@@ -1,18 +0,0 @@
1
- import { InMemoryStore, addStore } from '@furystack/core';
2
- import { TestClass } from '@furystack/core/create-physical-store-tests';
3
- import { Injector } from '@furystack/inject';
4
- import { usingAsync } from '@furystack/utils';
5
- import { describe, expect, it } from 'vitest';
6
- import { DataSet } from './data-set.js';
7
- import { getDataSetFor, getRepository } from './helpers.js';
8
- describe('Repository', () => {
9
- it('Should retrieve a dataSet', async () => {
10
- await usingAsync(new Injector(), async (i) => {
11
- addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
12
- getRepository(i).createDataSet(TestClass, 'id', {});
13
- const dataSet = getDataSetFor(i, TestClass, 'id');
14
- expect(dataSet).toBeInstanceOf(DataSet);
15
- });
16
- });
17
- });
18
- //# sourceMappingURL=repository.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository.spec.js","sourceRoot":"","sources":["../src/repository.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE3D,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,UAAU,CAAC,IAAI,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC3C,QAAQ,CAAC,CAAC,EAAE,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YACtE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;YAEnD,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;YACjD,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}