@furystack/repository 7.0.9 → 7.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/data-set.d.ts.map +1 -1
- package/esm/data-set.js +17 -15
- package/esm/data-set.js.map +1 -1
- package/esm/dataset.spec.d.ts +2 -0
- package/esm/dataset.spec.d.ts.map +1 -0
- package/esm/dataset.spec.js +460 -0
- package/esm/dataset.spec.js.map +1 -0
- package/esm/repository.js +4 -4
- package/esm/repository.js.map +1 -1
- package/esm/repository.spec.d.ts +2 -0
- package/esm/repository.spec.d.ts.map +1 -0
- package/esm/repository.spec.js +20 -0
- package/esm/repository.spec.js.map +1 -0
- package/package.json +6 -6
- package/src/data-set.ts +4 -2
- package/src/dataset.spec.ts +3 -3
- package/src/repository.spec.ts +2 -2
package/esm/data-set.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-set.d.ts","sourceRoot":"","sources":["../src/data-set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE3G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD;;GAEG;AACH,qBAAa,OAAO,CAAC,CAAC,EAAE,WAAW,SAAS,MAAM,CAAC,EAAE,aAAa,GAAG,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,CACjG,YAAW,UAAU;aA+KO,QAAQ,EAAE,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC;IA7K7E,OAAO;IAMd;;OAEG;IACI,UAAU,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"data-set.d.ts","sourceRoot":"","sources":["../src/data-set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE3G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD;;GAEG;AACH,qBAAa,OAAO,CAAC,CAAC,EAAE,WAAW,SAAS,MAAM,CAAC,EAAE,aAAa,GAAG,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,CACjG,YAAW,UAAU;aA+KO,QAAQ,EAAE,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC;IA7K7E,OAAO;IAMd;;OAEG;IACI,UAAU,EAAE,WAAW,CAAA;IAE9B;;;;;OAKG;IACU,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAuB5F;;OAEG;IACH,SAAgB,aAAa;kBAAmC,QAAQ;gBAAU,CAAC;OAAK;IAExF;;;;;OAKG;IACU,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB9F;;OAEG;IACH,SAAgB,eAAe;kBAAmC,QAAQ;YAAM,CAAC,CAAC,MAAM,CAAC,CAAC;gBAAU,QAAQ,CAAC,CAAC;OAAK;IAEnH;;;;;OAKG;IACU,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAU/E;;;;;OAKG;IACU,IAAI,CAAC,OAAO,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,EAC9C,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAW5C;;;;;;OAMG;IACU,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAiBjF;;;;;OAKG;IACU,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB3E;;OAEG;IACH,SAAgB,eAAe;kBACnB,QAAQ;aACb,CAAC,CAAC,WAAW,CAAC;OACjB;gBAEwB,QAAQ,EAAE,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC;CAGrF"}
|
package/esm/data-set.js
CHANGED
|
@@ -4,11 +4,16 @@ import { ObservableValue } from '@furystack/utils';
|
|
|
4
4
|
* An authorized Repository Store instance
|
|
5
5
|
*/
|
|
6
6
|
export class DataSet {
|
|
7
|
+
settings;
|
|
7
8
|
dispose() {
|
|
8
9
|
this.onEntityAdded.dispose();
|
|
9
10
|
this.onEntityRemoved.dispose();
|
|
10
11
|
this.onEntityUpdated.dispose();
|
|
11
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Primary key of the contained entity
|
|
15
|
+
*/
|
|
16
|
+
primaryKey;
|
|
12
17
|
/**
|
|
13
18
|
* Adds an entity to the DataSet
|
|
14
19
|
* @param injector The injector from the context
|
|
@@ -31,6 +36,10 @@ export class DataSet {
|
|
|
31
36
|
createResult.created.map((entity) => this.onEntityAdded.setValue({ injector, entity }));
|
|
32
37
|
return createResult;
|
|
33
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Observable that will be updated after the entity has been persisted
|
|
41
|
+
*/
|
|
42
|
+
onEntityAdded = new ObservableValue();
|
|
34
43
|
/**
|
|
35
44
|
* Updates an entity in the store
|
|
36
45
|
* @param injector The injector from the context
|
|
@@ -59,6 +68,10 @@ export class DataSet {
|
|
|
59
68
|
await this.settings.physicalStore.update(id, parsed);
|
|
60
69
|
this.onEntityUpdated.setValue({ injector, change: parsed, id });
|
|
61
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Observable that will be updated right after an entity update
|
|
73
|
+
*/
|
|
74
|
+
onEntityUpdated = new ObservableValue();
|
|
62
75
|
/**
|
|
63
76
|
* Returns a Promise with the entity count
|
|
64
77
|
* @param injector The Injector from the context
|
|
@@ -138,24 +151,13 @@ export class DataSet {
|
|
|
138
151
|
await this.settings.physicalStore.remove(key);
|
|
139
152
|
this.onEntityRemoved.setValue({ injector, key });
|
|
140
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Callback that fires right after entity update
|
|
156
|
+
*/
|
|
157
|
+
onEntityRemoved = new ObservableValue();
|
|
141
158
|
constructor(settings) {
|
|
142
159
|
this.settings = settings;
|
|
143
|
-
/**
|
|
144
|
-
* Primary key of the contained entity
|
|
145
|
-
*/
|
|
146
160
|
this.primaryKey = this.settings.physicalStore.primaryKey;
|
|
147
|
-
/**
|
|
148
|
-
* Observable that will be updated after the entity has been persisted
|
|
149
|
-
*/
|
|
150
|
-
this.onEntityAdded = new ObservableValue();
|
|
151
|
-
/**
|
|
152
|
-
* Observable that will be updated right after an entity update
|
|
153
|
-
*/
|
|
154
|
-
this.onEntityUpdated = new ObservableValue();
|
|
155
|
-
/**
|
|
156
|
-
* Callback that fires right after entity update
|
|
157
|
-
*/
|
|
158
|
-
this.onEntityRemoved = new ObservableValue();
|
|
159
161
|
}
|
|
160
162
|
}
|
|
161
163
|
//# sourceMappingURL=data-set.js.map
|
package/esm/data-set.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-set.js","sourceRoot":"","sources":["../src/data-set.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD;;GAEG;AACH,MAAM,OAAO,OAAO;
|
|
1
|
+
{"version":3,"file":"data-set.js","sourceRoot":"","sources":["../src/data-set.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataset.spec.d.ts","sourceRoot":"","sources":["../src/dataset.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,460 @@
|
|
|
1
|
+
import { Injector } from '@furystack/inject';
|
|
2
|
+
import { using, usingAsync } from '@furystack/utils';
|
|
3
|
+
import { InMemoryStore, addStore } from '@furystack/core';
|
|
4
|
+
import { Repository } from './repository.js';
|
|
5
|
+
import { getDataSetFor, getRepository } from './helpers.js';
|
|
6
|
+
import { describe, it, expect, vi } from 'vitest';
|
|
7
|
+
class TestClass {
|
|
8
|
+
id = 1;
|
|
9
|
+
value = '';
|
|
10
|
+
}
|
|
11
|
+
describe('DataSet', () => {
|
|
12
|
+
describe('Construction', () => {
|
|
13
|
+
it('can be retrieved from an extension method with class', () => {
|
|
14
|
+
using(new Injector(), (i) => {
|
|
15
|
+
addStore(i, new InMemoryStore({
|
|
16
|
+
model: TestClass,
|
|
17
|
+
primaryKey: 'id',
|
|
18
|
+
}));
|
|
19
|
+
getRepository(i).createDataSet(TestClass, 'id');
|
|
20
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
21
|
+
expect(dataSet.settings.physicalStore.model).toBe(TestClass);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
it('can be retrieved from an extension method with string', () => {
|
|
25
|
+
using(new Injector(), (i) => {
|
|
26
|
+
addStore(i, new InMemoryStore({
|
|
27
|
+
model: TestClass,
|
|
28
|
+
primaryKey: 'id',
|
|
29
|
+
}));
|
|
30
|
+
getRepository(i).createDataSet(TestClass, 'id');
|
|
31
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
32
|
+
expect(dataSet.settings.physicalStore.model).toBe(TestClass);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
it('Should throw if dataset is not registered through extension', () => {
|
|
36
|
+
using(new Injector(), (i) => {
|
|
37
|
+
expect(() => getDataSetFor(i, TestClass, 'id')).toThrowError('');
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
it('Should throw if dataset is not registered through service', () => {
|
|
41
|
+
using(new Injector(), (i) => {
|
|
42
|
+
expect(() => i.getInstance(Repository).getDataSetFor(TestClass, 'id')).toThrowError('');
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe('Authorizers', () => {
|
|
47
|
+
describe('Add', () => {
|
|
48
|
+
it('should add an entity if no settings are provided', async () => {
|
|
49
|
+
await usingAsync(new Injector(), async (i) => {
|
|
50
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
51
|
+
getRepository(i).createDataSet(TestClass, 'id');
|
|
52
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
53
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
54
|
+
const result = await dataSet.get(i, 1);
|
|
55
|
+
expect(result && result.value).toBe('asd');
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
it('should call the add async authorizer and add the entity on pass', async () => {
|
|
59
|
+
await usingAsync(new Injector(), async (i) => {
|
|
60
|
+
const authorizeAdd = vi.fn(async () => ({ isAllowed: true }));
|
|
61
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
62
|
+
getRepository(i).createDataSet(TestClass, 'id', { authorizeAdd });
|
|
63
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
64
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
65
|
+
expect(authorizeAdd).toBeCalled();
|
|
66
|
+
const added = await dataSet.get(i, 1);
|
|
67
|
+
expect(added && added.value).toBe('asd');
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
it('should throw if the add authorizer returns a non-valid result and should not add a value to the store', async () => {
|
|
71
|
+
await usingAsync(new Injector(), async (i) => {
|
|
72
|
+
const authorizeAdd = vi.fn(async () => ({ isAllowed: false, message: '...' }));
|
|
73
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
74
|
+
getRepository(i).createDataSet(TestClass, 'id', { authorizeAdd });
|
|
75
|
+
const dataSet = await getDataSetFor(i, TestClass, 'id');
|
|
76
|
+
try {
|
|
77
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
78
|
+
throw Error('Should throw');
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
/** */
|
|
82
|
+
expect(authorizeAdd).toBeCalled();
|
|
83
|
+
const added = await dataSet.get(i, 1);
|
|
84
|
+
expect(added).toBeUndefined();
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
it('should modify an entity on add, if modifyOnAdd is provided', async () => {
|
|
89
|
+
await usingAsync(new Injector(), async (i) => {
|
|
90
|
+
const modifyOnAdd = vi.fn(async (options) => ({
|
|
91
|
+
...options.entity,
|
|
92
|
+
value: options.entity.value.toUpperCase(),
|
|
93
|
+
}));
|
|
94
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
95
|
+
getRepository(i).createDataSet(TestClass, 'id', { modifyOnAdd });
|
|
96
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
97
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
98
|
+
const result = await dataSet.get(i, 1);
|
|
99
|
+
expect(modifyOnAdd).toBeCalled();
|
|
100
|
+
expect(result && result.value).toBe('ASD');
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
it('should call the onEntityAdded callback if an entity has been added', async () => {
|
|
104
|
+
await usingAsync(new Injector(), async (i) => {
|
|
105
|
+
expect.assertions(1);
|
|
106
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
107
|
+
getRepository(i).createDataSet(TestClass, 'id', {});
|
|
108
|
+
getRepository(i)
|
|
109
|
+
.getDataSetFor(TestClass, 'id')
|
|
110
|
+
.onEntityAdded.subscribe(({ entity }) => {
|
|
111
|
+
expect(entity.value).toBe('asd');
|
|
112
|
+
});
|
|
113
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
114
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
describe('Update', () => {
|
|
119
|
+
it('should update an entity if no settings are provided', async () => {
|
|
120
|
+
await usingAsync(new Injector(), async (i) => {
|
|
121
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
122
|
+
getRepository(i).createDataSet(TestClass, 'id');
|
|
123
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
124
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
125
|
+
await dataSet.update(i, 1, { id: 1, value: 'asd2' });
|
|
126
|
+
const result = await dataSet.get(i, 1);
|
|
127
|
+
expect(result && result.value).toBe('asd2');
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
it('should call the authorizeUpdate authorizer and add the entity on pass', async () => {
|
|
131
|
+
await usingAsync(new Injector(), async (i) => {
|
|
132
|
+
const authorizeUpdate = vi.fn(async () => ({ isAllowed: true }));
|
|
133
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
134
|
+
getRepository(i).createDataSet(TestClass, 'id', { authorizeUpdate });
|
|
135
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
136
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
137
|
+
await dataSet.update(i, 1, { id: 1, value: 'asd2' });
|
|
138
|
+
expect(authorizeUpdate).toBeCalled();
|
|
139
|
+
const added = await dataSet.get(i, 1);
|
|
140
|
+
expect(added && added.value).toBe('asd2');
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
it('should throw if the authorizeUpdateEntity returns a non-valid result and should not update a value to the store', async () => {
|
|
144
|
+
await usingAsync(new Injector(), async (i) => {
|
|
145
|
+
const authorizeUpdateEntity = vi.fn(async () => ({ isAllowed: false, message: '...' }));
|
|
146
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
147
|
+
getRepository(i).createDataSet(TestClass, 'id', { authorizeUpdateEntity });
|
|
148
|
+
const dataSet = await getDataSetFor(i, TestClass, 'id');
|
|
149
|
+
try {
|
|
150
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
151
|
+
await dataSet.update(i, 1, { id: 1, value: 'asd2' });
|
|
152
|
+
throw Error('Should throw');
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
/** */
|
|
156
|
+
expect(authorizeUpdateEntity).toBeCalled();
|
|
157
|
+
const added = await dataSet.get(i, 1);
|
|
158
|
+
expect(added && added.value).toBe('asd');
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
it('should call the authorizeUpdateEntity authorizer and add the entity on pass', async () => {
|
|
163
|
+
await usingAsync(new Injector(), async (i) => {
|
|
164
|
+
const authorizeUpdateEntity = vi.fn(async () => ({ isAllowed: true }));
|
|
165
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
166
|
+
getRepository(i).createDataSet(TestClass, 'id', { authorizeUpdateEntity });
|
|
167
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
168
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
169
|
+
await dataSet.update(i, 1, { id: 1, value: 'asd2' });
|
|
170
|
+
expect(authorizeUpdateEntity).toBeCalled();
|
|
171
|
+
const added = await dataSet.get(i, 1);
|
|
172
|
+
expect(added && added.value).toBe('asd2');
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
it('should throw if the authorizeUpdate returns a non-valid result and should not update a value to the store', async () => {
|
|
176
|
+
await usingAsync(new Injector(), async (i) => {
|
|
177
|
+
const authorizeUpdate = vi.fn(async () => ({ isAllowed: false, message: '...' }));
|
|
178
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
179
|
+
getRepository(i).createDataSet(TestClass, 'id', { authorizeUpdate });
|
|
180
|
+
const dataSet = await getDataSetFor(i, TestClass, 'id');
|
|
181
|
+
try {
|
|
182
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
183
|
+
await dataSet.update(i, 1, { id: 1, value: 'asd2' });
|
|
184
|
+
throw Error('Should throw');
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
/** */
|
|
188
|
+
expect(authorizeUpdate).toBeCalled();
|
|
189
|
+
const added = await dataSet.get(i, 1);
|
|
190
|
+
expect(added && added.value).toBe('asd');
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
it('should modify an entity on update, if modifyOnAdd is provided', async () => {
|
|
195
|
+
await usingAsync(new Injector(), async (i) => {
|
|
196
|
+
const modifyOnUpdate = vi.fn(async (options) => ({
|
|
197
|
+
...options.entity,
|
|
198
|
+
value: options.entity.value?.toUpperCase(),
|
|
199
|
+
}));
|
|
200
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
201
|
+
getRepository(i).createDataSet(TestClass, 'id', { modifyOnUpdate });
|
|
202
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
203
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
204
|
+
await dataSet.update(i, 1, { id: 1, value: 'asd2' });
|
|
205
|
+
const result = await dataSet.get(i, 1);
|
|
206
|
+
expect(modifyOnUpdate).toBeCalled();
|
|
207
|
+
expect(result && result.value).toBe('ASD2');
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
it('should publish to the onEntityUpdated observable if an entity has been updated', async () => {
|
|
211
|
+
await usingAsync(new Injector(), async (i) => {
|
|
212
|
+
expect.assertions(1);
|
|
213
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
214
|
+
getRepository(i).createDataSet(TestClass, 'id');
|
|
215
|
+
getRepository(i)
|
|
216
|
+
.getDataSetFor(TestClass, 'id')
|
|
217
|
+
.onEntityUpdated.subscribe(({ change }) => {
|
|
218
|
+
expect(change).toEqual({ id: 1, value: 'asd2' });
|
|
219
|
+
});
|
|
220
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
221
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
222
|
+
await dataSet.update(i, 1, { id: 1, value: 'asd2' });
|
|
223
|
+
});
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
describe('Count', () => {
|
|
227
|
+
it('should return the count if no settings are provided', async () => {
|
|
228
|
+
await usingAsync(new Injector(), async (i) => {
|
|
229
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
230
|
+
getRepository(i).createDataSet(TestClass, 'id');
|
|
231
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
232
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
233
|
+
const result = await dataSet.count(i);
|
|
234
|
+
expect(result).toBe(1);
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
it('should return the count if authorizeGet returns valid result', async () => {
|
|
238
|
+
await usingAsync(new Injector(), async (i) => {
|
|
239
|
+
const authorizeGet = vi.fn(async () => ({ isAllowed: true, message: '' }));
|
|
240
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
241
|
+
getRepository(i).createDataSet(TestClass, 'id', { authorizeGet });
|
|
242
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
243
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
244
|
+
const result = await dataSet.count(i);
|
|
245
|
+
expect(result).toBe(1);
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
it('should throw if authorizeGet returns invalid result', async () => {
|
|
249
|
+
await usingAsync(new Injector(), async (i) => {
|
|
250
|
+
const authorizeGet = vi.fn(async () => ({ isAllowed: false, message: ':(' }));
|
|
251
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
252
|
+
getRepository(i).createDataSet(TestClass, 'id', { authorizeGet });
|
|
253
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
254
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
255
|
+
try {
|
|
256
|
+
await dataSet.count(i);
|
|
257
|
+
throw Error('Should throw');
|
|
258
|
+
}
|
|
259
|
+
catch (error) {
|
|
260
|
+
/** */
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
});
|
|
264
|
+
});
|
|
265
|
+
});
|
|
266
|
+
describe('filter', () => {
|
|
267
|
+
it('should return the unfiltered result if no settings are provided', async () => {
|
|
268
|
+
await usingAsync(new Injector(), async (i) => {
|
|
269
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
270
|
+
getRepository(i).createDataSet(TestClass, 'id');
|
|
271
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
272
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
273
|
+
const result = await dataSet.find(i, {});
|
|
274
|
+
expect(result.length).toBe(1);
|
|
275
|
+
});
|
|
276
|
+
});
|
|
277
|
+
it('should return the unfiltered result if authorizeGet returns valid result', async () => {
|
|
278
|
+
await usingAsync(new Injector(), async (i) => {
|
|
279
|
+
const authorizeGet = vi.fn(async () => ({ isAllowed: true, message: '' }));
|
|
280
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
281
|
+
getRepository(i).createDataSet(TestClass, 'id', { authorizeGet });
|
|
282
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
283
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
284
|
+
const result = await dataSet.find(i, {});
|
|
285
|
+
expect(result.length).toBe(1);
|
|
286
|
+
});
|
|
287
|
+
});
|
|
288
|
+
it('should throw if authorizeGet returns invalid result', async () => {
|
|
289
|
+
await usingAsync(new Injector(), async (i) => {
|
|
290
|
+
const authorizeGet = vi.fn(async () => ({ isAllowed: false, message: ':(' }));
|
|
291
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
292
|
+
getRepository(i).createDataSet(TestClass, 'id', { authorizeGet });
|
|
293
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
294
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
295
|
+
try {
|
|
296
|
+
await dataSet.find(i, {});
|
|
297
|
+
throw Error('Should throw');
|
|
298
|
+
}
|
|
299
|
+
catch (error) {
|
|
300
|
+
/** */
|
|
301
|
+
}
|
|
302
|
+
});
|
|
303
|
+
});
|
|
304
|
+
});
|
|
305
|
+
describe('get', () => {
|
|
306
|
+
it('should return the entity if no settings are provided', async () => {
|
|
307
|
+
await usingAsync(new Injector(), async (i) => {
|
|
308
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
309
|
+
getRepository(i).createDataSet(TestClass, 'id');
|
|
310
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
311
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
312
|
+
const result = await dataSet.get(i, 1);
|
|
313
|
+
expect(result && result.id).toBe(1);
|
|
314
|
+
});
|
|
315
|
+
});
|
|
316
|
+
it('should return the entity if authorizeGet returns valid result', async () => {
|
|
317
|
+
await usingAsync(new Injector(), async (i) => {
|
|
318
|
+
const authorizeGet = vi.fn(async () => ({ isAllowed: true, message: '' }));
|
|
319
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
320
|
+
getRepository(i).createDataSet(TestClass, 'id', { authorizeGet });
|
|
321
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
322
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
323
|
+
const result = await dataSet.get(i, 1);
|
|
324
|
+
expect(result && result.id).toBe(1);
|
|
325
|
+
});
|
|
326
|
+
});
|
|
327
|
+
it('should throw if authorizeGet returns invalid result', async () => {
|
|
328
|
+
await usingAsync(new Injector(), async (i) => {
|
|
329
|
+
const authorizeGet = vi.fn(async () => ({ isAllowed: false, message: ':(' }));
|
|
330
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
331
|
+
getRepository(i).createDataSet(TestClass, 'id', { authorizeGet });
|
|
332
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
333
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
334
|
+
try {
|
|
335
|
+
await dataSet.get(i, 1);
|
|
336
|
+
throw Error('Should throw');
|
|
337
|
+
}
|
|
338
|
+
catch (error) {
|
|
339
|
+
/** */
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
});
|
|
343
|
+
it('should return the entity if authorizeGetEntity returns valid result', async () => {
|
|
344
|
+
await usingAsync(new Injector(), async (i) => {
|
|
345
|
+
const authorizeGetEntity = vi.fn(async () => ({ isAllowed: true, message: '' }));
|
|
346
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
347
|
+
getRepository(i).createDataSet(TestClass, 'id', { authorizeGetEntity });
|
|
348
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
349
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
350
|
+
const result = await dataSet.get(i, 1);
|
|
351
|
+
expect(result && result.id).toBe(1);
|
|
352
|
+
});
|
|
353
|
+
});
|
|
354
|
+
it('should throw if authorizeGetEntity returns invalid result', async () => {
|
|
355
|
+
await usingAsync(new Injector(), async (i) => {
|
|
356
|
+
const authorizeGetEntity = vi.fn(async () => ({ isAllowed: false, message: ':(' }));
|
|
357
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
358
|
+
getRepository(i).createDataSet(TestClass, 'id', { authorizeGetEntity });
|
|
359
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
360
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
361
|
+
try {
|
|
362
|
+
await dataSet.get(i, 1);
|
|
363
|
+
throw Error('Should throw');
|
|
364
|
+
}
|
|
365
|
+
catch (error) {
|
|
366
|
+
/** */
|
|
367
|
+
}
|
|
368
|
+
});
|
|
369
|
+
});
|
|
370
|
+
});
|
|
371
|
+
describe('remove', () => {
|
|
372
|
+
it('should remove the entity if no settings are provided', async () => {
|
|
373
|
+
await usingAsync(new Injector(), async (i) => {
|
|
374
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
375
|
+
getRepository(i).createDataSet(TestClass, 'id');
|
|
376
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
377
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
378
|
+
await dataSet.remove(i, 1);
|
|
379
|
+
const countValue = await dataSet.count(i);
|
|
380
|
+
expect(countValue).toBe(0);
|
|
381
|
+
});
|
|
382
|
+
});
|
|
383
|
+
it('should remove the entity if authorizeRemove returns valid result', async () => {
|
|
384
|
+
await usingAsync(new Injector(), async (i) => {
|
|
385
|
+
const authorizeRemove = vi.fn(async () => ({ isAllowed: true, message: '' }));
|
|
386
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
387
|
+
getRepository(i).createDataSet(TestClass, 'id', { authorizeRemove });
|
|
388
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
389
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
390
|
+
await dataSet.remove(i, 1);
|
|
391
|
+
const count = await dataSet.count(i);
|
|
392
|
+
expect(count).toBe(0);
|
|
393
|
+
});
|
|
394
|
+
});
|
|
395
|
+
it('should throw if authorizeRemove returns invalid result', async () => {
|
|
396
|
+
await usingAsync(new Injector(), async (i) => {
|
|
397
|
+
const authorizeRemove = vi.fn(async () => ({ isAllowed: false, message: ':(' }));
|
|
398
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
399
|
+
getRepository(i).createDataSet(TestClass, 'id', { authorizeRemove });
|
|
400
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
401
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
402
|
+
try {
|
|
403
|
+
await dataSet.remove(i, 1);
|
|
404
|
+
throw Error('Should throw');
|
|
405
|
+
}
|
|
406
|
+
catch (error) {
|
|
407
|
+
/** */
|
|
408
|
+
}
|
|
409
|
+
const count = await dataSet.count(i);
|
|
410
|
+
expect(count).toBe(1);
|
|
411
|
+
});
|
|
412
|
+
});
|
|
413
|
+
it('should remove the entity if authroizeRemoveEntity returns valid result', async () => {
|
|
414
|
+
await usingAsync(new Injector(), async (i) => {
|
|
415
|
+
const authroizeRemoveEntity = vi.fn(async () => ({ isAllowed: true, message: '' }));
|
|
416
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
417
|
+
getRepository(i).createDataSet(TestClass, 'id', { authroizeRemoveEntity });
|
|
418
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
419
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
420
|
+
await dataSet.remove(i, 1);
|
|
421
|
+
const count = await dataSet.count(i);
|
|
422
|
+
expect(count).toBe(0);
|
|
423
|
+
});
|
|
424
|
+
});
|
|
425
|
+
it('should throw if authroizeRemoveEntity returns invalid result', async () => {
|
|
426
|
+
await usingAsync(new Injector(), async (i) => {
|
|
427
|
+
const authroizeRemoveEntity = vi.fn(async () => ({ isAllowed: false, message: ':(' }));
|
|
428
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
429
|
+
getRepository(i).createDataSet(TestClass, 'id', { authroizeRemoveEntity });
|
|
430
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
431
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
432
|
+
try {
|
|
433
|
+
await dataSet.remove(i, 1);
|
|
434
|
+
throw Error('Should throw');
|
|
435
|
+
}
|
|
436
|
+
catch (error) {
|
|
437
|
+
/** */
|
|
438
|
+
}
|
|
439
|
+
const count = await dataSet.count(i);
|
|
440
|
+
expect(count).toBe(1);
|
|
441
|
+
});
|
|
442
|
+
});
|
|
443
|
+
it('should publish to the onEntityRemoved observable if an entity has been removed', async () => {
|
|
444
|
+
await usingAsync(new Injector(), async (i) => {
|
|
445
|
+
expect.assertions(1);
|
|
446
|
+
addStore(i, new InMemoryStore({ model: TestClass, primaryKey: 'id' }));
|
|
447
|
+
getRepository(i).createDataSet(TestClass, 'id');
|
|
448
|
+
getRepository(i)
|
|
449
|
+
.getDataSetFor(TestClass, 'id')
|
|
450
|
+
.onEntityRemoved.subscribe(({ key }) => {
|
|
451
|
+
expect(key).toEqual(1);
|
|
452
|
+
});
|
|
453
|
+
const dataSet = getDataSetFor(i, TestClass, 'id');
|
|
454
|
+
await dataSet.add(i, { id: 1, value: 'asd' });
|
|
455
|
+
await dataSet.remove(i, 1);
|
|
456
|
+
});
|
|
457
|
+
});
|
|
458
|
+
});
|
|
459
|
+
});
|
|
460
|
+
//# sourceMappingURL=dataset.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataset.spec.js","sourceRoot":"","sources":["../src/dataset.spec.ts"],"names":[],"mappings":"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"}
|
package/esm/repository.js
CHANGED
|
@@ -13,14 +13,12 @@ import { DataSet } from './data-set.js';
|
|
|
13
13
|
/**
|
|
14
14
|
* Collection of authorized physical stores
|
|
15
15
|
*/
|
|
16
|
-
|
|
17
|
-
constructor() {
|
|
18
|
-
this.dataSets = new Map();
|
|
19
|
-
}
|
|
16
|
+
let Repository = class Repository {
|
|
20
17
|
dispose() {
|
|
21
18
|
this.dataSets.forEach((ds) => ds.dispose());
|
|
22
19
|
this.dataSets.clear();
|
|
23
20
|
}
|
|
21
|
+
dataSets = new Map();
|
|
24
22
|
getDataSetFor(model, primaryKey) {
|
|
25
23
|
const instance = this.dataSets.get(model);
|
|
26
24
|
if (!instance) {
|
|
@@ -40,6 +38,7 @@ export let Repository = class Repository {
|
|
|
40
38
|
this.dataSets.set(model, instance);
|
|
41
39
|
return this;
|
|
42
40
|
}
|
|
41
|
+
storeManager;
|
|
43
42
|
};
|
|
44
43
|
__decorate([
|
|
45
44
|
Injected(StoreManager),
|
|
@@ -48,4 +47,5 @@ __decorate([
|
|
|
48
47
|
Repository = __decorate([
|
|
49
48
|
Injectable({ lifetime: 'singleton' })
|
|
50
49
|
], Repository);
|
|
50
|
+
export { Repository };
|
|
51
51
|
//# sourceMappingURL=repository.js.map
|
package/esm/repository.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;AAGxD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC;;GAEG;AAEI,
|
|
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;AAGxD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC;;GAEG;AAEI,IAAM,UAAU,GAAhB,MAAM,UAAU;IACd,OAAO;QACZ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;QAC3C,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;YACb,MAAM,KAAK,CAAC,yBAAyB,KAAK,GAAG,CAAC,CAAA;SAC/C;QACD,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;YACtC,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;SACpC;QACD,OAAO,QAA6D,CAAA;IACtE,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;IAGgB,YAAY,CAAe;CAC7C,CAAA;AADkB;IADhB,QAAQ,CAAC,YAAY,CAAC;8BACS,YAAY;gDAAA;AApCjC,UAAU;IADtB,UAAU,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;GACzB,UAAU,CAqCtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.spec.d.ts","sourceRoot":"","sources":["../src/repository.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Injector } from '@furystack/inject';
|
|
2
|
+
import { using } from '@furystack/utils';
|
|
3
|
+
import { getDataSetFor, getRepository } from './helpers.js';
|
|
4
|
+
import { addStore, InMemoryStore } from '@furystack/core';
|
|
5
|
+
import { DataSet } from './data-set.js';
|
|
6
|
+
import { describe, it, expect } from 'vitest';
|
|
7
|
+
describe('Repository', () => {
|
|
8
|
+
it('Should retrieve a dataSet', () => {
|
|
9
|
+
using(new Injector(), (i) => {
|
|
10
|
+
class ExampleClass {
|
|
11
|
+
id;
|
|
12
|
+
}
|
|
13
|
+
addStore(i, new InMemoryStore({ model: ExampleClass, primaryKey: 'id' }));
|
|
14
|
+
getRepository(i).createDataSet(ExampleClass, 'id', {});
|
|
15
|
+
const dataSet = getDataSetFor(i, ExampleClass, 'id');
|
|
16
|
+
expect(dataSet).toBeInstanceOf(DataSet);
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=repository.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.spec.js","sourceRoot":"","sources":["../src/repository.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE7C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,KAAK,CAAC,IAAI,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YAC1B,MAAM,YAAY;gBAChB,EAAE,CAAS;aACZ;YACD,QAAQ,CAAC,CAAC,EAAE,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YACzE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;YAEtD,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;YACpD,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@furystack/repository",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.11",
|
|
4
4
|
"description": "Repository implementation for FuryStack",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -37,13 +37,13 @@
|
|
|
37
37
|
},
|
|
38
38
|
"homepage": "https://github.com/furystack/furystack",
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@furystack/core": "^12.0.
|
|
41
|
-
"@furystack/inject": "^8.
|
|
42
|
-
"@furystack/utils": "^4.0.
|
|
40
|
+
"@furystack/core": "^12.0.11",
|
|
41
|
+
"@furystack/inject": "^8.1.1",
|
|
42
|
+
"@furystack/utils": "^4.0.10"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"typescript": "^5.
|
|
46
|
-
"vitest": "^0.34.
|
|
45
|
+
"typescript": "^5.2.2",
|
|
46
|
+
"vitest": "^0.34.6"
|
|
47
47
|
},
|
|
48
48
|
"gitHead": "1045d854bfd8c475b7035471d130d401417a2321"
|
|
49
49
|
}
|
package/src/data-set.ts
CHANGED
|
@@ -20,7 +20,7 @@ export class DataSet<T, TPrimaryKey extends keyof T, TWritableData = WithOptiona
|
|
|
20
20
|
/**
|
|
21
21
|
* Primary key of the contained entity
|
|
22
22
|
*/
|
|
23
|
-
public primaryKey: TPrimaryKey
|
|
23
|
+
public primaryKey: TPrimaryKey
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* Adds an entity to the DataSet
|
|
@@ -184,5 +184,7 @@ export class DataSet<T, TPrimaryKey extends keyof T, TWritableData = WithOptiona
|
|
|
184
184
|
key: T[TPrimaryKey]
|
|
185
185
|
}>()
|
|
186
186
|
|
|
187
|
-
constructor(public readonly settings: DataSetSettings<T, TPrimaryKey, TWritableData>) {
|
|
187
|
+
constructor(public readonly settings: DataSetSettings<T, TPrimaryKey, TWritableData>) {
|
|
188
|
+
this.primaryKey = this.settings.physicalStore.primaryKey
|
|
189
|
+
}
|
|
188
190
|
}
|
package/src/dataset.spec.ts
CHANGED
|
@@ -2,9 +2,9 @@ import { Injector } from '@furystack/inject'
|
|
|
2
2
|
import { using, usingAsync } from '@furystack/utils'
|
|
3
3
|
import type { WithOptionalId } from '@furystack/core'
|
|
4
4
|
import { InMemoryStore, addStore } from '@furystack/core'
|
|
5
|
-
import { Repository } from './repository'
|
|
6
|
-
import type { AuthorizationResult, DataSetSettings } from './data-set-setting'
|
|
7
|
-
import { getDataSetFor, getRepository } from './helpers'
|
|
5
|
+
import { Repository } from './repository.js'
|
|
6
|
+
import type { AuthorizationResult, DataSetSettings } from './data-set-setting.js'
|
|
7
|
+
import { getDataSetFor, getRepository } from './helpers.js'
|
|
8
8
|
import { describe, it, expect, vi } from 'vitest'
|
|
9
9
|
|
|
10
10
|
class TestClass {
|
package/src/repository.spec.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Injector } from '@furystack/inject'
|
|
2
2
|
import { using } from '@furystack/utils'
|
|
3
|
-
import { getDataSetFor, getRepository } from './helpers'
|
|
3
|
+
import { getDataSetFor, getRepository } from './helpers.js'
|
|
4
4
|
import { addStore, InMemoryStore } from '@furystack/core'
|
|
5
|
-
import { DataSet } from './data-set'
|
|
5
|
+
import { DataSet } from './data-set.js'
|
|
6
6
|
import { describe, it, expect } from 'vitest'
|
|
7
7
|
|
|
8
8
|
describe('Repository', () => {
|