@declaro/data 2.0.0-beta.14 → 2.0.0-beta.140
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/{LICENSE → LICENSE.md} +1 -1
- package/README.md +0 -0
- package/dist/browser/index.js +26 -0
- package/dist/browser/index.js.map +93 -0
- package/dist/node/index.cjs +13372 -0
- package/dist/node/index.cjs.map +93 -0
- package/dist/node/index.js +13351 -0
- package/dist/node/index.js.map +93 -0
- package/dist/ts/application/model-controller.d.ts +60 -0
- package/dist/ts/application/model-controller.d.ts.map +1 -0
- package/dist/ts/application/model-controller.test.d.ts +2 -0
- package/dist/ts/application/model-controller.test.d.ts.map +1 -0
- package/dist/ts/application/read-only-model-controller.d.ts +24 -0
- package/dist/ts/application/read-only-model-controller.d.ts.map +1 -0
- package/dist/ts/application/read-only-model-controller.test.d.ts +2 -0
- package/dist/ts/application/read-only-model-controller.test.d.ts.map +1 -0
- package/dist/ts/domain/events/domain-event.d.ts +41 -0
- package/dist/ts/domain/events/domain-event.d.ts.map +1 -0
- package/dist/ts/domain/events/domain-event.test.d.ts +2 -0
- package/dist/ts/domain/events/domain-event.test.d.ts.map +1 -0
- package/dist/ts/domain/events/event-types.d.ts +37 -0
- package/dist/ts/domain/events/event-types.d.ts.map +1 -0
- package/dist/ts/domain/events/mutation-event.d.ts +41 -0
- package/dist/ts/domain/events/mutation-event.d.ts.map +1 -0
- package/dist/ts/domain/events/mutation-event.test.d.ts +2 -0
- package/dist/ts/domain/events/mutation-event.test.d.ts.map +1 -0
- package/dist/ts/domain/events/query-event.d.ts +8 -0
- package/dist/ts/domain/events/query-event.d.ts.map +1 -0
- package/dist/ts/domain/events/query-event.test.d.ts +2 -0
- package/dist/ts/domain/events/query-event.test.d.ts.map +1 -0
- package/dist/ts/domain/events/request-event.d.ts +26 -0
- package/dist/ts/domain/events/request-event.d.ts.map +1 -0
- package/dist/ts/domain/events/request-event.test.d.ts +2 -0
- package/dist/ts/domain/events/request-event.test.d.ts.map +1 -0
- package/dist/ts/domain/interfaces/repository.d.ts +110 -0
- package/dist/ts/domain/interfaces/repository.d.ts.map +1 -0
- package/dist/ts/domain/models/pagination.d.ts +28 -0
- package/dist/ts/domain/models/pagination.d.ts.map +1 -0
- package/dist/ts/domain/services/base-model-service.d.ts +23 -0
- package/dist/ts/domain/services/base-model-service.d.ts.map +1 -0
- package/dist/ts/domain/services/model-service-args.d.ts +9 -0
- package/dist/ts/domain/services/model-service-args.d.ts.map +1 -0
- package/dist/ts/domain/services/model-service.d.ts +99 -0
- package/dist/ts/domain/services/model-service.d.ts.map +1 -0
- package/dist/ts/domain/services/model-service.normalization.test.d.ts +2 -0
- package/dist/ts/domain/services/model-service.normalization.test.d.ts.map +1 -0
- package/dist/ts/domain/services/model-service.test.d.ts +2 -0
- package/dist/ts/domain/services/model-service.test.d.ts.map +1 -0
- package/dist/ts/domain/services/read-only-model-service.d.ts +90 -0
- package/dist/ts/domain/services/read-only-model-service.d.ts.map +1 -0
- package/dist/ts/domain/services/read-only-model-service.test.d.ts +2 -0
- package/dist/ts/domain/services/read-only-model-service.test.d.ts.map +1 -0
- package/dist/ts/index.d.ts +18 -0
- package/dist/ts/index.d.ts.map +1 -0
- package/dist/ts/shared/utils/schema-inference.d.ts +23 -0
- package/dist/ts/shared/utils/schema-inference.d.ts.map +1 -0
- package/dist/ts/shared/utils/schema-inheritance.d.ts +24 -0
- package/dist/ts/shared/utils/schema-inheritance.d.ts.map +1 -0
- package/dist/ts/shared/utils/schema-inheritance.test.d.ts +2 -0
- package/dist/ts/shared/utils/schema-inheritance.test.d.ts.map +1 -0
- package/dist/ts/shared/utils/test/animal-schema.d.ts +57 -0
- package/dist/ts/shared/utils/test/animal-schema.d.ts.map +1 -0
- package/dist/ts/shared/utils/test/animal-trait-schema.d.ts +55 -0
- package/dist/ts/shared/utils/test/animal-trait-schema.d.ts.map +1 -0
- package/dist/ts/shared/utils/test/elephant-schema.d.ts +30 -0
- package/dist/ts/shared/utils/test/elephant-schema.d.ts.map +1 -0
- package/dist/ts/shared/utils/test/elephant-trait-schema.d.ts +26 -0
- package/dist/ts/shared/utils/test/elephant-trait-schema.d.ts.map +1 -0
- package/dist/ts/test/mock/models/mock-book-models.d.ts +42 -0
- package/dist/ts/test/mock/models/mock-book-models.d.ts.map +1 -0
- package/dist/ts/test/mock/repositories/mock-memory-repository.assign.test.d.ts +2 -0
- package/dist/ts/test/mock/repositories/mock-memory-repository.assign.test.d.ts.map +1 -0
- package/dist/ts/test/mock/repositories/mock-memory-repository.basic.test.d.ts +2 -0
- package/dist/ts/test/mock/repositories/mock-memory-repository.basic.test.d.ts.map +1 -0
- package/dist/ts/test/mock/repositories/mock-memory-repository.bulk-upsert.test.d.ts +2 -0
- package/dist/ts/test/mock/repositories/mock-memory-repository.bulk-upsert.test.d.ts.map +1 -0
- package/dist/ts/test/mock/repositories/mock-memory-repository.count.test.d.ts +2 -0
- package/dist/ts/test/mock/repositories/mock-memory-repository.count.test.d.ts.map +1 -0
- package/dist/ts/test/mock/repositories/mock-memory-repository.d.ts +62 -0
- package/dist/ts/test/mock/repositories/mock-memory-repository.d.ts.map +1 -0
- package/dist/ts/test/mock/repositories/mock-memory-repository.search.test.d.ts +2 -0
- package/dist/ts/test/mock/repositories/mock-memory-repository.search.test.d.ts.map +1 -0
- package/dist/ts/test/mock/repositories/mock-memory-repository.trash.test.d.ts +2 -0
- package/dist/ts/test/mock/repositories/mock-memory-repository.trash.test.d.ts.map +1 -0
- package/dist/ts/test/mock/repositories/mock-memory-repository.upsert.test.d.ts +2 -0
- package/dist/ts/test/mock/repositories/mock-memory-repository.upsert.test.d.ts.map +1 -0
- package/package.json +46 -42
- package/src/application/model-controller.test.ts +694 -0
- package/src/application/model-controller.ts +186 -0
- package/src/application/read-only-model-controller.test.ts +335 -0
- package/src/application/read-only-model-controller.ts +79 -0
- package/src/domain/events/domain-event.test.ts +82 -0
- package/src/domain/events/domain-event.ts +69 -0
- package/src/domain/events/event-types.ts +37 -0
- package/src/domain/events/mutation-event.test.ts +390 -0
- package/src/domain/events/mutation-event.ts +53 -0
- package/src/domain/events/query-event.test.ts +228 -0
- package/src/domain/events/query-event.ts +14 -0
- package/src/domain/events/request-event.test.ts +38 -0
- package/src/domain/events/request-event.ts +47 -0
- package/src/domain/interfaces/repository.ts +136 -0
- package/src/domain/models/pagination.ts +28 -0
- package/src/domain/services/base-model-service.ts +54 -0
- package/src/domain/services/model-service-args.ts +9 -0
- package/src/domain/services/model-service.normalization.test.ts +704 -0
- package/src/domain/services/model-service.test.ts +1616 -0
- package/src/domain/services/model-service.ts +597 -0
- package/src/domain/services/read-only-model-service.test.ts +1130 -0
- package/src/domain/services/read-only-model-service.ts +211 -0
- package/src/index.ts +17 -4
- package/src/shared/utils/schema-inference.ts +26 -0
- package/src/shared/utils/schema-inheritance.test.ts +295 -0
- package/src/shared/utils/schema-inheritance.ts +28 -0
- package/src/shared/utils/test/animal-schema.ts +46 -0
- package/src/shared/utils/test/animal-trait-schema.ts +45 -0
- package/src/shared/utils/test/elephant-schema.ts +58 -0
- package/src/shared/utils/test/elephant-trait-schema.ts +53 -0
- package/src/test/mock/models/mock-book-models.ts +78 -0
- package/src/test/mock/repositories/mock-memory-repository.assign.test.ts +215 -0
- package/src/test/mock/repositories/mock-memory-repository.basic.test.ts +129 -0
- package/src/test/mock/repositories/mock-memory-repository.bulk-upsert.test.ts +159 -0
- package/src/test/mock/repositories/mock-memory-repository.count.test.ts +98 -0
- package/src/test/mock/repositories/mock-memory-repository.search.test.ts +265 -0
- package/src/test/mock/repositories/mock-memory-repository.trash.test.ts +736 -0
- package/src/test/mock/repositories/mock-memory-repository.ts +401 -0
- package/src/test/mock/repositories/mock-memory-repository.upsert.test.ts +108 -0
- package/dist/databaseConnection.d.ts +0 -24
- package/dist/datastoreAbstract.d.ts +0 -37
- package/dist/declaro-data.cjs +0 -1
- package/dist/declaro-data.mjs +0 -250
- package/dist/hydrateEntity.d.ts +0 -8
- package/dist/index.d.ts +0 -4
- package/dist/serverConnection.d.ts +0 -15
- package/dist/trackedStatus.d.ts +0 -15
- package/src/databaseConnection.ts +0 -137
- package/src/datastoreAbstract.ts +0 -190
- package/src/hydrateEntity.ts +0 -36
- package/src/placeholder.test.ts +0 -7
- package/src/serverConnection.ts +0 -74
- package/src/trackedStatus.ts +0 -35
- package/tsconfig.json +0 -10
- package/vite.config.ts +0 -23
package/src/serverConnection.ts
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import type { IDatastoreProviderWithFetch, BaseModel, BaseModelClass } from '@declaro/core'
|
|
2
|
-
import type { FetchFunc } from '@declaro/core'
|
|
3
|
-
import type { FilterQuery } from "@mikro-orm/core";
|
|
4
|
-
|
|
5
|
-
export class ServerConnection<T extends BaseModel<any>> implements IDatastoreProviderWithFetch<T> {
|
|
6
|
-
|
|
7
|
-
private fetch: FetchFunc;
|
|
8
|
-
private model: BaseModelClass<T>;
|
|
9
|
-
|
|
10
|
-
setup(model: BaseModelClass<T>) {
|
|
11
|
-
this.model = model;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
setFetch(fetch: FetchFunc) {
|
|
15
|
-
this.fetch = fetch;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
getAll(): Promise<any> {
|
|
19
|
-
return this.fetch(`/store/${this.model.name}/getAll`).then(r => {
|
|
20
|
-
return r.json().then((objs: any[]) => {
|
|
21
|
-
// turn results back into objects of the correct type
|
|
22
|
-
return objs.map(o => Object.assign(new this.model(), o));
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
getWhere(filter?: FilterQuery<any>) {
|
|
28
|
-
return this.fetch(`/store/${this.model.name}/getWhere/${JSON.stringify(filter)}`).then(r => {
|
|
29
|
-
return r.json().then((objs: any[]) => {
|
|
30
|
-
// turn results back into objects of the correct type
|
|
31
|
-
return objs.map(o => Object.assign(new this.model(), o));
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
get(id: string | number): Promise<any> {
|
|
37
|
-
return this.fetch(`/store/${this.model.name}/get/${id}`).then(r => {
|
|
38
|
-
return r.json();
|
|
39
|
-
})
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
upsert(model: T | T[]): Promise<any> {
|
|
43
|
-
return this._callStoreMethod('upsert', 'POST', model);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
remove(model: T | T[]): Promise<any> {
|
|
47
|
-
return this._callStoreMethod('remove', 'POST', model);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
_callStoreMethod(method: string, httpMethod: string, payload: any = null): Promise<any> {
|
|
51
|
-
let headers = {};
|
|
52
|
-
|
|
53
|
-
if (payload) {
|
|
54
|
-
headers['Content-Type'] = 'application/json;'
|
|
55
|
-
headers['Accept'] = 'application/json;'
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return this.fetch(
|
|
59
|
-
`/store/${this.model.name}/${method}`,
|
|
60
|
-
{
|
|
61
|
-
method: httpMethod,
|
|
62
|
-
body: payload ? JSON.stringify(payload) : null,
|
|
63
|
-
headers
|
|
64
|
-
}
|
|
65
|
-
).then(async r => {
|
|
66
|
-
const data = await r.json();
|
|
67
|
-
if (!r.ok) {
|
|
68
|
-
throw Error(data.message);
|
|
69
|
-
} else {
|
|
70
|
-
return data;
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
}
|
package/src/trackedStatus.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { IStore } from "@declaro/core";
|
|
2
|
-
|
|
3
|
-
export type RequestStatus = { requestId: string, error: boolean, message: string }
|
|
4
|
-
|
|
5
|
-
export class TrackedStatusStore implements IStore {
|
|
6
|
-
private value: { [key: string]: RequestStatus } = {};
|
|
7
|
-
private subscribers: Array<(value: { [key: string]: RequestStatus }) => void> = [];
|
|
8
|
-
|
|
9
|
-
subscribe(subscription: (value: { [key: string]: RequestStatus }) => void): (() => void) {
|
|
10
|
-
// Add the new subscriber to the subscribers array
|
|
11
|
-
this.subscribers.push(subscription);
|
|
12
|
-
|
|
13
|
-
// Immediately call the subscription with the current value
|
|
14
|
-
subscription(this.value);
|
|
15
|
-
|
|
16
|
-
// Return an unsubscribe function
|
|
17
|
-
return () => {
|
|
18
|
-
// Remove the subscriber from the subscribers array
|
|
19
|
-
this.subscribers = this.subscribers.filter(sub => sub !== subscription);
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
public push(status: RequestStatus) {
|
|
24
|
-
this.value = { ...this.value, [status.requestId]: status };
|
|
25
|
-
|
|
26
|
-
this.subscribers.forEach(sub => sub(this.value));
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
public remove(requestId: string) {
|
|
30
|
-
const { [requestId]: removedError, ...rest } = this.value;
|
|
31
|
-
this.value = rest;
|
|
32
|
-
|
|
33
|
-
this.subscribers.forEach(sub => sub(this.value));
|
|
34
|
-
}
|
|
35
|
-
}
|
package/tsconfig.json
DELETED
package/vite.config.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { resolve } from 'path'
|
|
2
|
-
import { defineConfig } from 'vitest/config'
|
|
3
|
-
import dts from 'vite-plugin-dts'
|
|
4
|
-
|
|
5
|
-
const extensions = {
|
|
6
|
-
es: 'mjs',
|
|
7
|
-
cjs: 'cjs',
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export default defineConfig({
|
|
11
|
-
build: {
|
|
12
|
-
lib: {
|
|
13
|
-
entry: resolve(__dirname, 'src/index.ts'),
|
|
14
|
-
name: 'DeclaroData',
|
|
15
|
-
formats: ['es', 'cjs'],
|
|
16
|
-
fileName: (format) => `declaro-data.${extensions[format]}`,
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
plugins: [dts()],
|
|
20
|
-
optimizeDeps: {
|
|
21
|
-
include: ['src/**/*'],
|
|
22
|
-
},
|
|
23
|
-
})
|