tscommons-esm-models 0.0.2

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 (55) hide show
  1. package/dist/classes/first-class-cache.d.mts +5 -0
  2. package/dist/classes/first-class-cache.mjs +7 -0
  3. package/dist/classes/first-class-cache.mjs.map +1 -0
  4. package/dist/classes/generic-field-model-cache.d.mts +16 -0
  5. package/dist/classes/generic-field-model-cache.mjs +95 -0
  6. package/dist/classes/generic-field-model-cache.mjs.map +1 -0
  7. package/dist/classes/generic-second-class-field-model-cache.d.mts +19 -0
  8. package/dist/classes/generic-second-class-field-model-cache.mjs +133 -0
  9. package/dist/classes/generic-second-class-field-model-cache.mjs.map +1 -0
  10. package/dist/classes/second-class-cache.d.mts +6 -0
  11. package/dist/classes/second-class-cache.mjs +7 -0
  12. package/dist/classes/second-class-cache.mjs.map +1 -0
  13. package/dist/classes/uniquely-identified-cache.d.mts +35 -0
  14. package/dist/classes/uniquely-identified-cache.mjs +146 -0
  15. package/dist/classes/uniquely-identified-cache.mjs.map +1 -0
  16. package/dist/enums/ecommons-move-direction.d.mts +13 -0
  17. package/dist/enums/ecommons-move-direction.mjs +69 -0
  18. package/dist/enums/ecommons-move-direction.mjs.map +1 -0
  19. package/dist/index.d.mts +18 -0
  20. package/dist/index.mjs +18 -0
  21. package/dist/index.mjs.map +1 -0
  22. package/dist/interfaces/icommons-first-class.d.mts +5 -0
  23. package/dist/interfaces/icommons-first-class.mjs +10 -0
  24. package/dist/interfaces/icommons-first-class.mjs.map +1 -0
  25. package/dist/interfaces/icommons-hierarchy.d.mts +7 -0
  26. package/dist/interfaces/icommons-hierarchy.mjs +12 -0
  27. package/dist/interfaces/icommons-hierarchy.mjs.map +1 -0
  28. package/dist/interfaces/icommons-m2m-link.d.mts +5 -0
  29. package/dist/interfaces/icommons-m2m-link.mjs +12 -0
  30. package/dist/interfaces/icommons-m2m-link.mjs.map +1 -0
  31. package/dist/interfaces/icommons-model.d.mts +5 -0
  32. package/dist/interfaces/icommons-model.mjs +19 -0
  33. package/dist/interfaces/icommons-model.mjs.map +1 -0
  34. package/dist/interfaces/icommons-multi-parent-second-class.d.mts +4 -0
  35. package/dist/interfaces/icommons-multi-parent-second-class.mjs +12 -0
  36. package/dist/interfaces/icommons-multi-parent-second-class.mjs.map +1 -0
  37. package/dist/interfaces/icommons-orderable.d.mts +3 -0
  38. package/dist/interfaces/icommons-orderable.mjs +3 -0
  39. package/dist/interfaces/icommons-orderable.mjs.map +1 -0
  40. package/dist/interfaces/icommons-ordered.d.mts +5 -0
  41. package/dist/interfaces/icommons-ordered.mjs +10 -0
  42. package/dist/interfaces/icommons-ordered.mjs.map +1 -0
  43. package/dist/interfaces/icommons-orientated-ordered.d.mts +6 -0
  44. package/dist/interfaces/icommons-orientated-ordered.mjs +10 -0
  45. package/dist/interfaces/icommons-orientated-ordered.mjs.map +1 -0
  46. package/dist/interfaces/icommons-relation.d.mts +7 -0
  47. package/dist/interfaces/icommons-relation.mjs +7 -0
  48. package/dist/interfaces/icommons-relation.mjs.map +1 -0
  49. package/dist/interfaces/icommons-second-class.d.mts +4 -0
  50. package/dist/interfaces/icommons-second-class.mjs +10 -0
  51. package/dist/interfaces/icommons-second-class.mjs.map +1 -0
  52. package/dist/interfaces/icommons-uniquely-identified.d.mts +10 -0
  53. package/dist/interfaces/icommons-uniquely-identified.mjs +23 -0
  54. package/dist/interfaces/icommons-uniquely-identified.mjs.map +1 -0
  55. package/package.json +30 -0
@@ -0,0 +1,5 @@
1
+ import { ICommonsFirstClass } from '../interfaces/icommons-first-class.mjs';
2
+ import { CommonsGenericFieldModelCache } from './generic-field-model-cache.mjs';
3
+ export declare class CommonsFirstClassCache<ModelT extends ICommonsFirstClass> extends CommonsGenericFieldModelCache<ModelT, number> {
4
+ constructor(getRemote: (id: number) => Promise<ModelT | undefined>, listRemoteIds?: () => Promise<number[]>, listRemotes?: () => Promise<ModelT[]>, maxAgeInMillis?: number);
5
+ }
@@ -0,0 +1,7 @@
1
+ import { CommonsGenericFieldModelCache } from './generic-field-model-cache.mjs';
2
+ export class CommonsFirstClassCache extends CommonsGenericFieldModelCache {
3
+ constructor(getRemote, listRemoteIds, listRemotes, maxAgeInMillis) {
4
+ super('id', getRemote, listRemoteIds, listRemotes, maxAgeInMillis);
5
+ }
6
+ }
7
+ //# sourceMappingURL=first-class-cache.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-class-cache.mjs","sourceRoot":"","sources":["../../src/classes/first-class-cache.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF,MAAM,OAAO,sBAEX,SAAQ,6BAGT;IACA,YACE,SAAoD,EACpD,aAAuC,EACvC,WAAqC,EACrC,cAAuB;QAExB,KAAK,CACH,IAAI,EACJ,SAAS,EACT,aAAa,EACb,WAAW,EACX,cAAc,CACf,CAAC;IACH,CAAC;CACD"}
@@ -0,0 +1,16 @@
1
+ import { TPropertyObject } from 'tscommons-esm-core';
2
+ export declare abstract class CommonsGenericFieldModelCache<ModelT extends TPropertyObject, IdT> {
3
+ private idField;
4
+ private getRemote;
5
+ private listRemoteIds?;
6
+ private listRemotes?;
7
+ private getCache;
8
+ private listCache;
9
+ constructor(idField: string, getRemote: (id: IdT) => Promise<ModelT | undefined>, listRemoteIds?: (() => Promise<IdT[]>) | undefined, listRemotes?: (() => Promise<ModelT[]>) | undefined, maxAgeInMillis?: number);
10
+ get(id: IdT): Promise<ModelT | undefined>;
11
+ getFromCacheOnly(id: IdT): ModelT | undefined;
12
+ appendToCacheOnly(data: ModelT, resetListIfNew?: boolean): void;
13
+ list(allowExpiredRefresh?: boolean): Promise<ModelT[]>;
14
+ clear(id: IdT): void;
15
+ wipe(): void;
16
+ }
@@ -0,0 +1,95 @@
1
+ import { CommonsCache } from 'tscommons-esm-core';
2
+ export class CommonsGenericFieldModelCache {
3
+ idField;
4
+ getRemote;
5
+ listRemoteIds;
6
+ listRemotes;
7
+ getCache;
8
+ listCache;
9
+ constructor(idField, getRemote, listRemoteIds, listRemotes, maxAgeInMillis) {
10
+ this.idField = idField;
11
+ this.getRemote = getRemote;
12
+ this.listRemoteIds = listRemoteIds;
13
+ this.listRemotes = listRemotes;
14
+ if (!this.listRemoteIds && !this.listRemotes)
15
+ throw new Error('Either listRemoteIds or listRemotes must be specified');
16
+ // This cache is linked to the Model IDs, so generation of new ids is not applicable.
17
+ this.getCache = new CommonsCache(() => {
18
+ throw new Error('NA');
19
+ }, maxAgeInMillis);
20
+ this.listCache = new CommonsCache(() => {
21
+ throw new Error('NA');
22
+ }, maxAgeInMillis);
23
+ }
24
+ async get(id) {
25
+ const match = this.getCache.getById(id);
26
+ if (match)
27
+ return match;
28
+ const remote = await this.getRemote(id);
29
+ this.listCache.deleteForId(1);
30
+ if (remote)
31
+ this.getCache.storeForId(id, remote);
32
+ return remote;
33
+ }
34
+ getFromCacheOnly(id) {
35
+ return this.getCache.getById(id);
36
+ }
37
+ // Note, this may interfere with sorting
38
+ appendToCacheOnly(data, resetListIfNew = false) {
39
+ if (!this.getCache.has(data[this.idField]) || !this.listCache.getById(1) || !this.listCache.getById(1).includes(data[this.idField])) {
40
+ // new entry
41
+ if (resetListIfNew) {
42
+ this.listCache.deleteForId(1);
43
+ }
44
+ else {
45
+ const existing = this.listCache.getById(1);
46
+ if (existing)
47
+ existing.push(data[this.idField]);
48
+ }
49
+ }
50
+ this.getCache.storeForId(data[this.idField], data);
51
+ }
52
+ async list(allowExpiredRefresh = true) {
53
+ let ids = this.listCache.getById(1);
54
+ if (!ids) {
55
+ if (this.listRemotes) {
56
+ const remotes = await this.listRemotes();
57
+ this.getCache.wipe();
58
+ for (const remote of remotes) {
59
+ this.getCache.storeForId(remote[this.idField], remote);
60
+ }
61
+ ids = remotes
62
+ .map((remote) => remote[this.idField]);
63
+ }
64
+ if (this.listRemoteIds) {
65
+ ids = await this.listRemoteIds();
66
+ }
67
+ this.listCache.storeForId(1, ids);
68
+ }
69
+ const promises = ids
70
+ .map((id) => this.get(id));
71
+ const items = await Promise.all(promises);
72
+ // undefineds shouldn't occur. If they do, the list ID might be invalid or expired
73
+ const rebuild = [];
74
+ for (const item of items) {
75
+ if (!item) {
76
+ this.listCache.wipe();
77
+ if (allowExpiredRefresh)
78
+ return await this.list(false);
79
+ }
80
+ else {
81
+ rebuild.push(item);
82
+ }
83
+ }
84
+ return rebuild;
85
+ }
86
+ clear(id) {
87
+ this.getCache.deleteForId(id);
88
+ this.listCache.deleteForId(1);
89
+ }
90
+ wipe() {
91
+ this.getCache.wipe();
92
+ this.listCache.deleteForId(1); // same as wipe as there's only '1' entry
93
+ }
94
+ }
95
+ //# sourceMappingURL=generic-field-model-cache.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic-field-model-cache.mjs","sourceRoot":"","sources":["../../src/classes/generic-field-model-cache.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { TPropertyObject } from 'tscommons-esm-core';
2
+ import { ICommonsFirstClass } from '../interfaces/icommons-first-class.mjs';
3
+ export declare abstract class CommonsGenericSecondClassFieldModelCache<ModelT extends TPropertyObject, ParentT extends ICommonsFirstClass, IdT> {
4
+ private idField;
5
+ private getRemote;
6
+ private listRemoteIds?;
7
+ private listRemotes?;
8
+ private maxAgeInMillis?;
9
+ private caches;
10
+ constructor(idField: string, getRemote: (parent: ParentT, id: IdT) => Promise<ModelT | undefined>, listRemoteIds?: ((parent: ParentT) => Promise<IdT[]>) | undefined, listRemotes?: ((parent: ParentT) => Promise<ModelT[]>) | undefined, maxAgeInMillis?: number | undefined);
11
+ private ensureCacheForParent;
12
+ get(parent: ParentT, id: IdT): Promise<ModelT | undefined>;
13
+ getFromCacheOnly(parent: ParentT, id: IdT): ModelT | undefined;
14
+ appendToCacheOnly(parent: ParentT, data: ModelT, resetListIfNew?: boolean): void;
15
+ list(parent: ParentT, allowExpiredRefresh?: boolean): Promise<ModelT[]>;
16
+ clear(parent: ParentT, id: IdT): void;
17
+ wipe(parent: ParentT): void;
18
+ wipeAll(): void;
19
+ }
@@ -0,0 +1,133 @@
1
+ import { CommonsCache } from 'tscommons-esm-core';
2
+ var EPopulated;
3
+ (function (EPopulated) {
4
+ EPopulated["NO"] = "no";
5
+ EPopulated["PARTIAL"] = "partial";
6
+ EPopulated["FULL"] = "full";
7
+ })(EPopulated || (EPopulated = {}));
8
+ export class CommonsGenericSecondClassFieldModelCache {
9
+ idField;
10
+ getRemote;
11
+ listRemoteIds;
12
+ listRemotes;
13
+ maxAgeInMillis;
14
+ caches;
15
+ constructor(idField, getRemote, listRemoteIds, listRemotes, maxAgeInMillis) {
16
+ this.idField = idField;
17
+ this.getRemote = getRemote;
18
+ this.listRemoteIds = listRemoteIds;
19
+ this.listRemotes = listRemotes;
20
+ this.maxAgeInMillis = maxAgeInMillis;
21
+ if (!this.listRemoteIds && !this.listRemotes)
22
+ throw new Error('Either listRemoteIds or listRemotes must be specified');
23
+ this.caches = new Map();
24
+ }
25
+ ensureCacheForParent(parent) {
26
+ const existing = this.caches.get(parent.id);
27
+ if (existing)
28
+ return existing;
29
+ // This cache is linked to the Model IDs, so generation of new ids is not applicable.
30
+ this.caches.set(parent.id, {
31
+ cache: new CommonsCache(() => {
32
+ throw new Error('NA');
33
+ }, this.maxAgeInMillis),
34
+ ids: [],
35
+ populated: EPopulated.NO
36
+ });
37
+ return this.ensureCacheForParent(parent);
38
+ }
39
+ async get(parent, id) {
40
+ const cache = this.ensureCacheForParent(parent);
41
+ const match = cache.cache.getById(id);
42
+ if (match)
43
+ return match;
44
+ const remote = await this.getRemote(parent, id);
45
+ if (remote)
46
+ cache.cache.storeForId(id, remote);
47
+ // if no original cache match, then the list is probably out of date, so can't be FULL
48
+ cache.populated = EPopulated.PARTIAL;
49
+ return remote;
50
+ }
51
+ getFromCacheOnly(parent, id) {
52
+ const cache = this.ensureCacheForParent(parent);
53
+ return cache.cache.getById(id);
54
+ }
55
+ // Note, this may interfere with sorting
56
+ appendToCacheOnly(parent, data, resetListIfNew = false) {
57
+ const cache = this.ensureCacheForParent(parent);
58
+ if (!cache.cache.has(data[this.idField]) || !cache.ids.includes(data[this.idField])) {
59
+ // new entry
60
+ if (resetListIfNew) {
61
+ cache.ids = [];
62
+ cache.populated = EPopulated.PARTIAL;
63
+ }
64
+ else {
65
+ cache.ids.push(data[this.idField]);
66
+ // leave FULL or PARTIAL as existing
67
+ }
68
+ }
69
+ else {
70
+ // allow the list of IDs to be kept if the entry already exists
71
+ }
72
+ cache.cache.storeForId(data[this.idField], data);
73
+ }
74
+ async list(parent, allowExpiredRefresh = true) {
75
+ const cache = this.ensureCacheForParent(parent);
76
+ if (cache.populated === EPopulated.FULL) {
77
+ const items = cache.ids
78
+ .map((id) => cache.cache.getById(id));
79
+ // undefineds shouldn't occur. If they do, the list ID might be invalid or expired
80
+ const rebuild = [];
81
+ for (const item of items) {
82
+ if (!item) {
83
+ cache.ids = [];
84
+ cache.populated = EPopulated.NO;
85
+ if (allowExpiredRefresh)
86
+ return await this.list(parent, allowExpiredRefresh);
87
+ return [];
88
+ }
89
+ else {
90
+ rebuild.push(item);
91
+ }
92
+ }
93
+ return rebuild;
94
+ }
95
+ if (this.listRemotes) {
96
+ const remotes = await this.listRemotes(parent);
97
+ const ids = remotes
98
+ .map((remote) => remote[this.idField]);
99
+ cache.cache.wipe();
100
+ for (const remote of remotes) {
101
+ cache.cache.storeForId(remote[this.idField], remote);
102
+ }
103
+ cache.ids = [...ids];
104
+ cache.populated = EPopulated.FULL;
105
+ return this.list(parent, false);
106
+ }
107
+ if (this.listRemoteIds) {
108
+ const ids = await this.listRemoteIds(parent);
109
+ const promises = ids
110
+ .map((id) => this.get(parent, id));
111
+ const items = await Promise.all(promises);
112
+ cache.ids = items
113
+ .filter((item) => item !== undefined)
114
+ .map((item) => item[this.idField]);
115
+ cache.populated = EPopulated.FULL;
116
+ return this.list(parent, false);
117
+ }
118
+ throw new Error('Cannot get here');
119
+ }
120
+ clear(parent, id) {
121
+ const cache = this.ensureCacheForParent(parent);
122
+ cache.cache.deleteForId(id);
123
+ cache.populated = EPopulated.PARTIAL;
124
+ // PARTIAL means no need to splice the id, as list only accepts FULL
125
+ }
126
+ wipe(parent) {
127
+ this.caches.delete(parent.id);
128
+ }
129
+ wipeAll() {
130
+ this.caches.clear();
131
+ }
132
+ }
133
+ //# sourceMappingURL=generic-second-class-field-model-cache.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic-second-class-field-model-cache.mjs","sourceRoot":"","sources":["../../src/classes/generic-second-class-field-model-cache.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { ICommonsFirstClass } from '../interfaces/icommons-first-class.mjs';
2
+ import { ICommonsSecondClass } from '../interfaces/icommons-second-class.mjs';
3
+ import { CommonsGenericSecondClassFieldModelCache } from './generic-second-class-field-model-cache.mjs';
4
+ export declare class CommonsSecondClassCache<ModelT extends ICommonsSecondClass<ParentT>, ParentT extends ICommonsFirstClass> extends CommonsGenericSecondClassFieldModelCache<ModelT, ParentT, number> {
5
+ constructor(getRemote: (parent: ParentT, id: number) => Promise<ModelT | undefined>, listRemoteIds?: (parent: ParentT) => Promise<number[]>, listRemotes?: (parent: ParentT) => Promise<ModelT[]>, maxAgeInMillis?: number);
6
+ }
@@ -0,0 +1,7 @@
1
+ import { CommonsGenericSecondClassFieldModelCache } from './generic-second-class-field-model-cache.mjs';
2
+ export class CommonsSecondClassCache extends CommonsGenericSecondClassFieldModelCache {
3
+ constructor(getRemote, listRemoteIds, listRemotes, maxAgeInMillis) {
4
+ super('id', getRemote, listRemoteIds, listRemotes, maxAgeInMillis);
5
+ }
6
+ }
7
+ //# sourceMappingURL=second-class-cache.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"second-class-cache.mjs","sourceRoot":"","sources":["../../src/classes/second-class-cache.mts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wCAAwC,EAAE,MAAM,8CAA8C,CAAC;AAExG,MAAM,OAAO,uBAGX,SAAQ,wCAIT;IACA,YACE,SAAqE,EACrE,aAAsD,EACtD,WAAoD,EACpD,cAAuB;QAExB,KAAK,CACH,IAAI,EACJ,SAAS,EACT,aAAa,EACb,WAAW,EACX,cAAc,CACf,CAAC;IACH,CAAC;CACD"}
@@ -0,0 +1,35 @@
1
+ import { ICommonsUniquelyIdentified } from '../interfaces/icommons-uniquely-identified.mjs';
2
+ import { ICommonsFirstClass } from '../interfaces/icommons-first-class.mjs';
3
+ import { CommonsGenericFieldModelCache } from './generic-field-model-cache.mjs';
4
+ export declare class CommonsUniquelyIdentifiedCache<ModelT extends ICommonsUniquelyIdentified> extends CommonsGenericFieldModelCache<ModelT, string> {
5
+ constructor(getRemote: (id: string) => Promise<ModelT | undefined>, maxAgeInMillis?: number);
6
+ }
7
+ export declare class CommonsUniquelyIdentifiedFirstClassCache<ModelT extends ICommonsFirstClass & ICommonsUniquelyIdentified> {
8
+ private idCache;
9
+ private uidCache;
10
+ constructor(getRemoteById: (id: number) => Promise<ModelT | undefined>, getRemoteByUid: (uid: string) => Promise<ModelT | undefined>, listRemoteIds?: () => Promise<number[]>, listRemotes?: () => Promise<ModelT[]>, maxAgeInMillis?: number);
11
+ getById(id: number): Promise<ModelT | undefined>;
12
+ getByUid(uid: string): Promise<ModelT | undefined>;
13
+ getFromCacheOnlyById(id: number): ModelT | undefined;
14
+ getFromCacheOnlyByUid(uid: string): ModelT | undefined;
15
+ appendToCacheOnly(data: ModelT, resetListIfNew?: boolean): void;
16
+ list(): Promise<ModelT[]>;
17
+ clearById(id: number): void;
18
+ clearByUid(uid: string): void;
19
+ wipe(): void;
20
+ }
21
+ export declare class CommonsUniquelyIdentifiedSecondClassCache<ModelT extends ICommonsFirstClass & ICommonsUniquelyIdentified, ParentT extends ICommonsFirstClass> {
22
+ private idCache;
23
+ private uidCache;
24
+ constructor(getRemoteById: (parent: ParentT, id: number) => Promise<ModelT | undefined>, getRemoteByUid: (uid: string) => Promise<ModelT | undefined>, listRemoteIds?: (parent: ParentT) => Promise<number[]>, listRemotes?: (parent: ParentT) => Promise<ModelT[]>, maxAgeInMillis?: number);
25
+ getById(parent: ParentT, id: number): Promise<ModelT | undefined>;
26
+ getByUid(uid: string): Promise<ModelT | undefined>;
27
+ getFromCacheOnlyById(parent: ParentT, id: number): ModelT | undefined;
28
+ getFromCacheOnlyByUid(uid: string): ModelT | undefined;
29
+ appendToCacheOnly(parent: ParentT, data: ModelT, resetListIfNew?: boolean): void;
30
+ list(parent: ParentT): Promise<ModelT[]>;
31
+ clearById(parent: ParentT, id: number): void;
32
+ clearByUid(uid: string, parentField?: string): void;
33
+ wipe(parent: ParentT): void;
34
+ wipeAll(): void;
35
+ }
@@ -0,0 +1,146 @@
1
+ import { CommonsFirstClassCache } from './first-class-cache.mjs';
2
+ import { CommonsSecondClassCache } from './second-class-cache.mjs';
3
+ import { CommonsGenericFieldModelCache } from './generic-field-model-cache.mjs';
4
+ export class CommonsUniquelyIdentifiedCache extends CommonsGenericFieldModelCache {
5
+ constructor(getRemote, maxAgeInMillis) {
6
+ super('id', getRemote, () => {
7
+ throw new Error('listRemoteIds is not applicable for CommonsUniquelyIdentifiedCache');
8
+ }, () => {
9
+ throw new Error('listRemotes is not applicable for CommonsUniquelyIdentifiedCache');
10
+ }, maxAgeInMillis);
11
+ }
12
+ }
13
+ export class CommonsUniquelyIdentifiedFirstClassCache {
14
+ idCache;
15
+ uidCache;
16
+ constructor(getRemoteById, getRemoteByUid, listRemoteIds, listRemotes, maxAgeInMillis) {
17
+ this.idCache = new CommonsFirstClassCache(getRemoteById, listRemoteIds, listRemotes, maxAgeInMillis);
18
+ this.uidCache = new CommonsUniquelyIdentifiedCache(getRemoteByUid, maxAgeInMillis);
19
+ }
20
+ async getById(id) {
21
+ const item = await this.idCache.get(id);
22
+ // sync
23
+ if (item)
24
+ this.uidCache.appendToCacheOnly(item, false);
25
+ return item;
26
+ }
27
+ async getByUid(uid) {
28
+ const item = await this.uidCache.get(uid);
29
+ // sync
30
+ if (item)
31
+ this.idCache.appendToCacheOnly(item, false);
32
+ return item;
33
+ }
34
+ getFromCacheOnlyById(id) {
35
+ const item = this.idCache.getFromCacheOnly(id);
36
+ // sync
37
+ if (item)
38
+ this.uidCache.appendToCacheOnly(item, false);
39
+ return item;
40
+ }
41
+ getFromCacheOnlyByUid(uid) {
42
+ const item = this.uidCache.getFromCacheOnly(uid);
43
+ // sync
44
+ if (item)
45
+ this.idCache.appendToCacheOnly(item, false);
46
+ return item;
47
+ }
48
+ // Note, this may interfere with sorting
49
+ appendToCacheOnly(data, resetListIfNew = false) {
50
+ this.idCache.appendToCacheOnly(data, resetListIfNew);
51
+ this.uidCache.appendToCacheOnly(data, resetListIfNew);
52
+ }
53
+ async list() {
54
+ const items = await this.idCache.list();
55
+ // sync
56
+ for (const item of items)
57
+ this.uidCache.appendToCacheOnly(item, false);
58
+ return items;
59
+ }
60
+ clearById(id) {
61
+ const existing = this.idCache.getFromCacheOnly(id);
62
+ if (existing)
63
+ this.uidCache.clear(existing.uid);
64
+ this.idCache.clear(id);
65
+ }
66
+ clearByUid(uid) {
67
+ const existing = this.uidCache.getFromCacheOnly(uid);
68
+ if (existing)
69
+ this.idCache.clear(existing.id);
70
+ this.uidCache.clear(uid);
71
+ }
72
+ wipe() {
73
+ this.idCache.wipe();
74
+ this.uidCache.wipe();
75
+ }
76
+ }
77
+ export class CommonsUniquelyIdentifiedSecondClassCache {
78
+ idCache;
79
+ uidCache;
80
+ constructor(getRemoteById, getRemoteByUid, listRemoteIds, listRemotes, maxAgeInMillis) {
81
+ this.idCache = new CommonsSecondClassCache(getRemoteById, listRemoteIds, listRemotes, maxAgeInMillis);
82
+ this.uidCache = new CommonsUniquelyIdentifiedCache(getRemoteByUid, maxAgeInMillis);
83
+ }
84
+ async getById(parent, id) {
85
+ const item = await this.idCache.get(parent, id);
86
+ // sync
87
+ if (item)
88
+ this.uidCache.appendToCacheOnly(item, false);
89
+ return item;
90
+ }
91
+ async getByUid(uid) {
92
+ const item = await this.uidCache.get(uid);
93
+ // not safe to sync up
94
+ return item;
95
+ }
96
+ getFromCacheOnlyById(parent, id) {
97
+ const item = this.idCache.getFromCacheOnly(parent, id);
98
+ // sync
99
+ if (item)
100
+ this.uidCache.appendToCacheOnly(item, false);
101
+ return item;
102
+ }
103
+ getFromCacheOnlyByUid(uid) {
104
+ const item = this.uidCache.getFromCacheOnly(uid);
105
+ // not safe to sync up
106
+ return item;
107
+ }
108
+ // Note, this may interfere with sorting
109
+ appendToCacheOnly(parent, data, resetListIfNew = false) {
110
+ this.idCache.appendToCacheOnly(parent, data, resetListIfNew);
111
+ this.uidCache.appendToCacheOnly(data, resetListIfNew);
112
+ }
113
+ async list(parent) {
114
+ const items = await this.idCache.list(parent);
115
+ // sync
116
+ for (const item of items)
117
+ this.uidCache.appendToCacheOnly(item, false);
118
+ return items;
119
+ }
120
+ clearById(parent, id) {
121
+ const existing = this.idCache.getFromCacheOnly(parent, id);
122
+ if (existing)
123
+ this.uidCache.clear(existing.uid);
124
+ this.idCache.clear(parent, id);
125
+ }
126
+ clearByUid(uid, parentField) {
127
+ const existing = this.uidCache.getFromCacheOnly(uid);
128
+ if (existing && parentField) {
129
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
130
+ const parent = {
131
+ id: existing[parentField]
132
+ };
133
+ this.idCache.clear(parent, existing.id);
134
+ }
135
+ this.uidCache.clear(uid);
136
+ }
137
+ wipe(parent) {
138
+ this.idCache.wipe(parent);
139
+ this.uidCache.wipe();
140
+ }
141
+ wipeAll() {
142
+ this.idCache.wipeAll();
143
+ this.uidCache.wipe();
144
+ }
145
+ }
146
+ //# sourceMappingURL=uniquely-identified-cache.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniquely-identified-cache.mjs","sourceRoot":"","sources":["../../src/classes/uniquely-identified-cache.mts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF,MAAM,OAAO,8BAEX,SAAQ,6BAGT;IACA,YACE,SAAoD,EACpD,cAAuB;QAExB,KAAK,CACH,IAAI,EACJ,SAAS,EACT,GAAsB,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACvF,CAAC,EACD,GAAsB,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACrF,CAAC,EACD,cAAc,CACf,CAAC;IACH,CAAC;CACD;AAED,MAAM,OAAO,wCAAwC;IAG5C,OAAO,CAAiC;IACxC,QAAQ,CAAyC;IAEzD,YACE,aAAwD,EACxD,cAA0D,EAC1D,aAAuC,EACvC,WAAqC,EACrC,cAAuB;QAExB,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAsB,CACvC,aAAa,EACb,aAAa,EACb,WAAW,EACX,cAAc,CACf,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,8BAA8B,CAChD,cAAc,EACd,cAAc,CACf,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,EAAU;QAC9B,MAAM,IAAI,GAAqB,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE1D,OAAO;QACP,IAAI,IAAI;YAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEvD,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,GAAW;QAChC,MAAM,IAAI,GAAqB,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE5D,OAAO;QACP,IAAI,IAAI;YAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEtD,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,oBAAoB,CAAC,EAAU;QACrC,MAAM,IAAI,GAAqB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAEjE,OAAO;QACP,IAAI,IAAI;YAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEvD,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,qBAAqB,CAAC,GAAW;QACvC,MAAM,IAAI,GAAqB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAEnE,OAAO;QACP,IAAI,IAAI;YAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEtD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,wCAAwC;IACjC,iBAAiB,CACtB,IAAY,EACZ,iBAA0B,KAAK;QAEhC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,IAAI;QAChB,MAAM,KAAK,GAAa,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAElD,OAAO;QACP,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEvE,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,SAAS,CAAC,EAAU;QAC1B,MAAM,QAAQ,GAAqB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAErE,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEhD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAEM,UAAU,CAAC,GAAW;QAC5B,MAAM,QAAQ,GAAqB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAEvE,IAAI,QAAQ;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEM,IAAI;QACV,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;CACD;AAED,MAAM,OAAO,yCAAyC;IAI7C,OAAO,CAA2C;IAClD,QAAQ,CAAyC;IAEzD,YACE,aAAyE,EACzE,cAA0D,EAC1D,aAAsD,EACtD,WAAoD,EACpD,cAAuB;QAExB,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAuB,CACxC,aAAa,EACb,aAAa,EACb,WAAW,EACX,cAAc,CACf,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,8BAA8B,CAChD,cAAc,EACd,cAAc,CACf,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,MAAe,EACf,EAAU;QAEX,MAAM,IAAI,GAAqB,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAElE,OAAO;QACP,IAAI,IAAI;YAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEvD,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,GAAW;QAChC,MAAM,IAAI,GAAqB,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE5D,sBAAsB;QAEtB,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,oBAAoB,CACzB,MAAe,EACf,EAAU;QAEX,MAAM,IAAI,GAAqB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEzE,OAAO;QACP,IAAI,IAAI;YAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEvD,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,qBAAqB,CAAC,GAAW;QACvC,MAAM,IAAI,GAAqB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAEnE,sBAAsB;QAEtB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,wCAAwC;IACjC,iBAAiB,CACtB,MAAe,EACf,IAAY,EACZ,iBAA0B,KAAK;QAEhC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,MAAe;QAChC,MAAM,KAAK,GAAa,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAExD,OAAO;QACP,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEvE,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,SAAS,CAAC,MAAe,EAAE,EAAU;QAC3C,MAAM,QAAQ,GAAqB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE7E,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEhD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IAEM,UAAU,CACf,GAAW,EACX,WAAoB;QAErB,MAAM,QAAQ,GAAqB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAEvE,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;YAC7B,yEAAyE;YACzE,MAAM,MAAM,GAAY;gBACtB,EAAE,EAAE,QAAQ,CAAC,WAAW,CAAC;aACf,CAAC;YAEb,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEM,IAAI,CAAC,MAAe;QAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAEM,OAAO;QACb,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;CACD"}
@@ -0,0 +1,13 @@
1
+ export declare enum ECommonsMoveDirection {
2
+ UP = "up",
3
+ DOWN = "down",
4
+ TOP = "top",
5
+ BOTTOM = "bottom",
6
+ LEFT = "left",
7
+ RIGHT = "right"
8
+ }
9
+ export declare function toECommonsMoveDirection(type: string): ECommonsMoveDirection | undefined;
10
+ export declare function fromECommonsMoveDirection(type: ECommonsMoveDirection): string;
11
+ export declare function isECommonsMoveDirection(test: unknown): test is ECommonsMoveDirection;
12
+ export declare function keyToECommonsMoveDirection(key: string): ECommonsMoveDirection;
13
+ export declare const ECOMMONS_MOVE_DIRECTIONS: ECommonsMoveDirection[];
@@ -0,0 +1,69 @@
1
+ import { commonsTypeIsString } from 'tscommons-esm-core';
2
+ export var ECommonsMoveDirection;
3
+ (function (ECommonsMoveDirection) {
4
+ ECommonsMoveDirection["UP"] = "up";
5
+ ECommonsMoveDirection["DOWN"] = "down";
6
+ ECommonsMoveDirection["TOP"] = "top";
7
+ ECommonsMoveDirection["BOTTOM"] = "bottom";
8
+ ECommonsMoveDirection["LEFT"] = "left";
9
+ ECommonsMoveDirection["RIGHT"] = "right";
10
+ })(ECommonsMoveDirection || (ECommonsMoveDirection = {}));
11
+ export function toECommonsMoveDirection(type) {
12
+ switch (type) {
13
+ case ECommonsMoveDirection.UP.toString():
14
+ return ECommonsMoveDirection.UP;
15
+ case ECommonsMoveDirection.DOWN.toString():
16
+ return ECommonsMoveDirection.DOWN;
17
+ case ECommonsMoveDirection.TOP.toString():
18
+ return ECommonsMoveDirection.TOP;
19
+ case ECommonsMoveDirection.BOTTOM.toString():
20
+ return ECommonsMoveDirection.BOTTOM;
21
+ case ECommonsMoveDirection.LEFT.toString():
22
+ return ECommonsMoveDirection.LEFT;
23
+ case ECommonsMoveDirection.RIGHT.toString():
24
+ return ECommonsMoveDirection.RIGHT;
25
+ }
26
+ return undefined;
27
+ }
28
+ export function fromECommonsMoveDirection(type) {
29
+ switch (type) {
30
+ case ECommonsMoveDirection.UP:
31
+ return ECommonsMoveDirection.UP.toString();
32
+ case ECommonsMoveDirection.DOWN:
33
+ return ECommonsMoveDirection.DOWN.toString();
34
+ case ECommonsMoveDirection.TOP:
35
+ return ECommonsMoveDirection.TOP.toString();
36
+ case ECommonsMoveDirection.BOTTOM:
37
+ return ECommonsMoveDirection.BOTTOM.toString();
38
+ case ECommonsMoveDirection.LEFT:
39
+ return ECommonsMoveDirection.LEFT.toString();
40
+ case ECommonsMoveDirection.RIGHT:
41
+ return ECommonsMoveDirection.RIGHT.toString();
42
+ }
43
+ throw new Error('Unknown ECommonsMoveDirection');
44
+ }
45
+ export function isECommonsMoveDirection(test) {
46
+ if (!commonsTypeIsString(test))
47
+ return false;
48
+ return toECommonsMoveDirection(test) !== undefined;
49
+ }
50
+ export function keyToECommonsMoveDirection(key) {
51
+ switch (key) {
52
+ case 'UP':
53
+ return ECommonsMoveDirection.UP;
54
+ case 'DOWN':
55
+ return ECommonsMoveDirection.DOWN;
56
+ case 'TOP':
57
+ return ECommonsMoveDirection.TOP;
58
+ case 'BOTTOM':
59
+ return ECommonsMoveDirection.BOTTOM;
60
+ case 'LEFT':
61
+ return ECommonsMoveDirection.LEFT;
62
+ case 'RIGHT':
63
+ return ECommonsMoveDirection.RIGHT;
64
+ }
65
+ throw new Error(`Unable to obtain ECommonsMoveDirection for key: ${key}`);
66
+ }
67
+ export const ECOMMONS_MOVE_DIRECTIONS = Object.keys(ECommonsMoveDirection)
68
+ .map((e) => keyToECommonsMoveDirection(e));
69
+ //# sourceMappingURL=ecommons-move-direction.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecommons-move-direction.mjs","sourceRoot":"","sources":["../../src/enums/ecommons-move-direction.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { CommonsGenericSecondClassFieldModelCache } from './classes/generic-second-class-field-model-cache.mjs';
2
+ import { CommonsSecondClassCache } from './classes/second-class-cache.mjs';
3
+ import { CommonsGenericFieldModelCache } from './classes/generic-field-model-cache.mjs';
4
+ import { CommonsUniquelyIdentifiedCache, CommonsUniquelyIdentifiedFirstClassCache, CommonsUniquelyIdentifiedSecondClassCache } from './classes/uniquely-identified-cache.mjs';
5
+ import { CommonsFirstClassCache } from './classes/first-class-cache.mjs';
6
+ import { ECommonsMoveDirection, toECommonsMoveDirection, fromECommonsMoveDirection, isECommonsMoveDirection, keyToECommonsMoveDirection, ECOMMONS_MOVE_DIRECTIONS } from './enums/ecommons-move-direction.mjs';
7
+ import { ICommonsFirstClass, isICommonsFirstClass } from './interfaces/icommons-first-class.mjs';
8
+ import { ICommonsUniquelyIdentified, isICommonsUniquelyIdentified, ICommonsUniquelyIdentifiedBase62, isICommonsUniquelyIdentifiedBase62, ICommonsUniquelyIdentifiedBase62Long, isICommonsUniquelyIdentifiedBase62Long } from './interfaces/icommons-uniquely-identified.mjs';
9
+ import { ICommonsSecondClass, isICommonsSecondClass } from './interfaces/icommons-second-class.mjs';
10
+ import { ICommonsModel, isICommonsModel } from './interfaces/icommons-model.mjs';
11
+ import { ICommonsM2MLink, isICommonsM2MLink } from './interfaces/icommons-m2m-link.mjs';
12
+ import { ICommonsOrientatedOrdered, isICommonsOrientatedOrdered } from './interfaces/icommons-orientated-ordered.mjs';
13
+ import { ICommonsHierarchy, isICommonsHierarchy } from './interfaces/icommons-hierarchy.mjs';
14
+ import { ICommonsOrderable } from './interfaces/icommons-orderable.mjs';
15
+ import { ICommonsRelation, isICommonsRelation } from './interfaces/icommons-relation.mjs';
16
+ import { ICommonsOrdered, isICommonsOrdered } from './interfaces/icommons-ordered.mjs';
17
+ import { ICommonsMultiParentSecondClass, isICommonsMultiParentSecondClass } from './interfaces/icommons-multi-parent-second-class.mjs';
18
+ export { CommonsGenericSecondClassFieldModelCache, CommonsSecondClassCache, CommonsGenericFieldModelCache, CommonsUniquelyIdentifiedCache, CommonsUniquelyIdentifiedFirstClassCache, CommonsUniquelyIdentifiedSecondClassCache, CommonsFirstClassCache, ECommonsMoveDirection, toECommonsMoveDirection, fromECommonsMoveDirection, isECommonsMoveDirection, keyToECommonsMoveDirection, ECOMMONS_MOVE_DIRECTIONS, ICommonsFirstClass, isICommonsFirstClass, ICommonsUniquelyIdentified, isICommonsUniquelyIdentified, ICommonsUniquelyIdentifiedBase62, isICommonsUniquelyIdentifiedBase62, ICommonsUniquelyIdentifiedBase62Long, isICommonsUniquelyIdentifiedBase62Long, ICommonsSecondClass, isICommonsSecondClass, ICommonsModel, isICommonsModel, ICommonsM2MLink, isICommonsM2MLink, ICommonsOrientatedOrdered, isICommonsOrientatedOrdered, ICommonsHierarchy, isICommonsHierarchy, ICommonsOrderable, ICommonsRelation, isICommonsRelation, ICommonsOrdered, isICommonsOrdered, ICommonsMultiParentSecondClass, isICommonsMultiParentSecondClass };
package/dist/index.mjs ADDED
@@ -0,0 +1,18 @@
1
+ import { CommonsGenericSecondClassFieldModelCache } from './classes/generic-second-class-field-model-cache.mjs';
2
+ import { CommonsSecondClassCache } from './classes/second-class-cache.mjs';
3
+ import { CommonsGenericFieldModelCache } from './classes/generic-field-model-cache.mjs';
4
+ import { CommonsUniquelyIdentifiedCache, CommonsUniquelyIdentifiedFirstClassCache, CommonsUniquelyIdentifiedSecondClassCache } from './classes/uniquely-identified-cache.mjs';
5
+ import { CommonsFirstClassCache } from './classes/first-class-cache.mjs';
6
+ import { ECommonsMoveDirection, toECommonsMoveDirection, fromECommonsMoveDirection, isECommonsMoveDirection, keyToECommonsMoveDirection, ECOMMONS_MOVE_DIRECTIONS } from './enums/ecommons-move-direction.mjs';
7
+ import { isICommonsFirstClass } from './interfaces/icommons-first-class.mjs';
8
+ import { isICommonsUniquelyIdentified, isICommonsUniquelyIdentifiedBase62, isICommonsUniquelyIdentifiedBase62Long } from './interfaces/icommons-uniquely-identified.mjs';
9
+ import { isICommonsSecondClass } from './interfaces/icommons-second-class.mjs';
10
+ import { isICommonsModel } from './interfaces/icommons-model.mjs';
11
+ import { isICommonsM2MLink } from './interfaces/icommons-m2m-link.mjs';
12
+ import { isICommonsOrientatedOrdered } from './interfaces/icommons-orientated-ordered.mjs';
13
+ import { isICommonsHierarchy } from './interfaces/icommons-hierarchy.mjs';
14
+ import { isICommonsRelation } from './interfaces/icommons-relation.mjs';
15
+ import { isICommonsOrdered } from './interfaces/icommons-ordered.mjs';
16
+ import { isICommonsMultiParentSecondClass } from './interfaces/icommons-multi-parent-second-class.mjs';
17
+ export { CommonsGenericSecondClassFieldModelCache, CommonsSecondClassCache, CommonsGenericFieldModelCache, CommonsUniquelyIdentifiedCache, CommonsUniquelyIdentifiedFirstClassCache, CommonsUniquelyIdentifiedSecondClassCache, CommonsFirstClassCache, ECommonsMoveDirection, toECommonsMoveDirection, fromECommonsMoveDirection, isECommonsMoveDirection, keyToECommonsMoveDirection, ECOMMONS_MOVE_DIRECTIONS, isICommonsFirstClass, isICommonsUniquelyIdentified, isICommonsUniquelyIdentifiedBase62, isICommonsUniquelyIdentifiedBase62Long, isICommonsSecondClass, isICommonsModel, isICommonsM2MLink, isICommonsOrientatedOrdered, isICommonsHierarchy, isICommonsRelation, isICommonsOrdered, isICommonsMultiParentSecondClass };
18
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wCAAwC,EAAE,MAAM,sDAAsD,CAAC;AAChH,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,8BAA8B,EAAE,wCAAwC,EAAE,yCAAyC,EAAE,MAAM,yCAAyC,CAAC;AAC9K,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EACzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAsB,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AACjG,OAAO,EAEL,4BAA4B,EAE5B,kCAAkC,EAElC,sCAAsC,EACvC,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAuB,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpG,OAAO,EAAiB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAmB,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACxF,OAAO,EAA6B,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AACtH,OAAO,EAAqB,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE7F,OAAO,EAAoB,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC1F,OAAO,EAAmB,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAkC,gCAAgC,EAAE,MAAM,qDAAqD,CAAC;AACvI,OAAO,EACN,wCAAwC,EACxC,uBAAuB,EACvB,6BAA6B,EAC7B,8BAA8B,EAC9B,wCAAwC,EACxC,yCAAyC,EACzC,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EAExB,oBAAoB,EAEpB,4BAA4B,EAE5B,kCAAkC,EAElC,sCAAsC,EAEtC,qBAAqB,EAErB,eAAe,EAEf,iBAAiB,EAEjB,2BAA2B,EAE3B,mBAAmB,EAGnB,kBAAkB,EAElB,iBAAiB,EAEjB,gCAAgC,EAChC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ICommonsModel } from './icommons-model.mjs';
2
+ export interface ICommonsFirstClass extends ICommonsModel {
3
+ id: number;
4
+ }
5
+ export declare function isICommonsFirstClass(test: unknown): test is ICommonsFirstClass;
@@ -0,0 +1,10 @@
1
+ import { commonsTypeHasPropertyNumber } from 'tscommons-esm-core';
2
+ import { isICommonsModel } from './icommons-model.mjs';
3
+ export function isICommonsFirstClass(test) {
4
+ if (!isICommonsModel(test))
5
+ return false;
6
+ if (!commonsTypeHasPropertyNumber(test, 'id'))
7
+ return false;
8
+ return true;
9
+ }
10
+ //# sourceMappingURL=icommons-first-class.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icommons-first-class.mjs","sourceRoot":"","sources":["../../src/interfaces/icommons-first-class.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAiB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMtE,MAAM,UAAU,oBAAoB,CAAC,IAAa;IACjD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzC,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5D,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ICommonsFirstClass } from './icommons-first-class.mjs';
2
+ import { ICommonsSecondClass } from './icommons-second-class.mjs';
3
+ export interface ICommonsHierarchy<P extends ICommonsFirstClass> extends ICommonsSecondClass<P> {
4
+ ordered: number;
5
+ parent: number | undefined;
6
+ }
7
+ export declare function isICommonsHierarchy<P extends ICommonsFirstClass>(test: unknown, firstClassFieldName: string): test is ICommonsHierarchy<P>;
@@ -0,0 +1,12 @@
1
+ import { commonsTypeHasPropertyNumber, commonsTypeHasPropertyNumberOrUndefined } from 'tscommons-esm-core';
2
+ import { isICommonsSecondClass } from './icommons-second-class.mjs';
3
+ export function isICommonsHierarchy(test, firstClassFieldName) {
4
+ if (!isICommonsSecondClass(test, firstClassFieldName))
5
+ return false;
6
+ if (!commonsTypeHasPropertyNumber(test, 'ordered'))
7
+ return false;
8
+ if (!commonsTypeHasPropertyNumberOrUndefined(test, 'parent'))
9
+ return false;
10
+ return true;
11
+ }
12
+ //# sourceMappingURL=icommons-hierarchy.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icommons-hierarchy.mjs","sourceRoot":"","sources":["../../src/interfaces/icommons-hierarchy.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,uCAAuC,EACxC,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAuB,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAUzF,MAAM,UAAU,mBAAmB,CAEjC,IAAa,EAAE,mBAA2B;IAC3C,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,CAAC;QAAE,OAAO,KAAK,CAAC;IAEpE,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IACjE,IAAI,CAAC,uCAAuC,CAAC,IAAI,EAAE,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3E,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ICommonsFirstClass } from './icommons-first-class.mjs';
2
+ import { ICommonsModel } from './icommons-model.mjs';
3
+ export interface ICommonsM2MLink<_A extends ICommonsFirstClass, _B extends ICommonsFirstClass> extends ICommonsModel {
4
+ }
5
+ export declare function isICommonsM2MLink<A extends ICommonsFirstClass, B extends ICommonsFirstClass>(test: unknown, aFieldName: string, bFieldName: string): test is ICommonsM2MLink<A, B>;
@@ -0,0 +1,12 @@
1
+ import { commonsTypeHasPropertyNumber } from 'tscommons-esm-core';
2
+ import { isICommonsModel } from './icommons-model.mjs';
3
+ export function isICommonsM2MLink(test, aFieldName, bFieldName) {
4
+ if (!isICommonsModel(test))
5
+ return false;
6
+ if (!commonsTypeHasPropertyNumber(test, aFieldName))
7
+ return false;
8
+ if (!commonsTypeHasPropertyNumber(test, bFieldName))
9
+ return false;
10
+ return true;
11
+ }
12
+ //# sourceMappingURL=icommons-m2m-link.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icommons-m2m-link.mjs","sourceRoot":"","sources":["../../src/interfaces/icommons-m2m-link.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAGlE,OAAO,EAAiB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAUtE,MAAM,UAAU,iBAAiB,CAG/B,IAAa,EAAE,UAAkB,EAAE,UAAkB;IACtD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzC,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAElE,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { CommonsFixedDate, CommonsFixedDuration, TPrimative } from 'tscommons-esm-core';
2
+ export interface ICommonsModel {
3
+ [key: string]: TPrimative | string[] | Date | CommonsFixedDate | CommonsFixedDuration | undefined;
4
+ }
5
+ export declare function isICommonsModel(test: unknown): test is ICommonsModel;
@@ -0,0 +1,19 @@
1
+ import { CommonsFixedDate, commonsTypeIsDate, commonsTypeIsPrimative, commonsTypeIsPropertyObject, commonsTypeIsStringArray } from 'tscommons-esm-core';
2
+ export function isICommonsModel(test) {
3
+ if (!commonsTypeIsPropertyObject(test))
4
+ return false;
5
+ for (const key of Object.keys(test)) {
6
+ if (test[key] === undefined)
7
+ continue;
8
+ if (commonsTypeIsDate(test[key]))
9
+ continue;
10
+ if (commonsTypeIsStringArray(test[key]))
11
+ continue;
12
+ if (CommonsFixedDate.is(test[key]))
13
+ continue;
14
+ if (!commonsTypeIsPrimative(test[key]))
15
+ return false;
16
+ }
17
+ return true;
18
+ }
19
+ //# sourceMappingURL=icommons-model.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icommons-model.mjs","sourceRoot":"","sources":["../../src/interfaces/icommons-model.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEhB,iBAAiB,EACjB,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EAEzB,MAAM,oBAAoB,CAAC;AAM5B,MAAM,UAAU,eAAe,CAAC,IAAa;IAC5C,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAErD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,SAAS;QACtC,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,SAAS;QAC3C,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,SAAS;QAClD,IAAI,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,SAAS;QAE7C,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACtD,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ICommonsFirstClass } from './icommons-first-class.mjs';
2
+ export interface ICommonsMultiParentSecondClass extends ICommonsFirstClass {
3
+ }
4
+ export declare function isICommonsMultiParentSecondClass(test: unknown, firstClassFieldNames: string[]): test is ICommonsMultiParentSecondClass;
@@ -0,0 +1,12 @@
1
+ import { commonsTypeHasPropertyNumber } from 'tscommons-esm-core';
2
+ import { isICommonsFirstClass } from './icommons-first-class.mjs';
3
+ export function isICommonsMultiParentSecondClass(test, firstClassFieldNames) {
4
+ if (!isICommonsFirstClass(test))
5
+ return false;
6
+ for (const firstClassFieldName of firstClassFieldNames) {
7
+ if (!commonsTypeHasPropertyNumber(test, firstClassFieldName))
8
+ return false;
9
+ }
10
+ return true;
11
+ }
12
+ //# sourceMappingURL=icommons-multi-parent-second-class.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icommons-multi-parent-second-class.mjs","sourceRoot":"","sources":["../../src/interfaces/icommons-multi-parent-second-class.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAsB,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAOtF,MAAM,UAAU,gCAAgC,CAAC,IAAa,EAAE,oBAA8B;IAC7F,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAE9C,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,EAAE,CAAC;QACxD,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,mBAAmB,CAAC;YAAE,OAAO,KAAK,CAAC;IAC5E,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,3 @@
1
+ export interface ICommonsOrderable {
2
+ getOrderedField(): string;
3
+ }
@@ -0,0 +1,3 @@
1
+ // This is a true interface similar to Java as opposed to a pseudo-struct interface as per TypeScript
2
+ export {};
3
+ //# sourceMappingURL=icommons-orderable.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icommons-orderable.mjs","sourceRoot":"","sources":["../../src/interfaces/icommons-orderable.mts"],"names":[],"mappings":"AAAA,qGAAqG"}
@@ -0,0 +1,5 @@
1
+ import { ICommonsFirstClass } from './icommons-first-class.mjs';
2
+ export interface ICommonsOrdered extends ICommonsFirstClass {
3
+ ordered: number;
4
+ }
5
+ export declare function isICommonsOrdered(test: unknown): test is ICommonsOrdered;
@@ -0,0 +1,10 @@
1
+ import { commonsTypeHasPropertyNumber } from 'tscommons-esm-core';
2
+ import { isICommonsFirstClass } from './icommons-first-class.mjs';
3
+ export function isICommonsOrdered(test) {
4
+ if (!isICommonsFirstClass(test))
5
+ return false;
6
+ if (!commonsTypeHasPropertyNumber(test, 'ordered'))
7
+ return false;
8
+ return true;
9
+ }
10
+ //# sourceMappingURL=icommons-ordered.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icommons-ordered.mjs","sourceRoot":"","sources":["../../src/interfaces/icommons-ordered.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAsB,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAMtF,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC9C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAE9C,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAEjE,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { ICommonsFirstClass } from './icommons-first-class.mjs';
2
+ import { ICommonsSecondClass } from './icommons-second-class.mjs';
3
+ export interface ICommonsOrientatedOrdered<P extends ICommonsFirstClass> extends ICommonsSecondClass<P> {
4
+ ordered: number;
5
+ }
6
+ export declare function isICommonsOrientatedOrdered<P extends ICommonsFirstClass>(test: unknown, firstClassFieldName: string): test is ICommonsOrientatedOrdered<P>;
@@ -0,0 +1,10 @@
1
+ import { commonsTypeHasPropertyNumber } from 'tscommons-esm-core';
2
+ import { isICommonsSecondClass } from './icommons-second-class.mjs';
3
+ export function isICommonsOrientatedOrdered(test, firstClassFieldName) {
4
+ if (!isICommonsSecondClass(test, firstClassFieldName))
5
+ return false;
6
+ if (!commonsTypeHasPropertyNumber(test, 'ordered'))
7
+ return false;
8
+ return true;
9
+ }
10
+ //# sourceMappingURL=icommons-orientated-ordered.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icommons-orientated-ordered.mjs","sourceRoot":"","sources":["../../src/interfaces/icommons-orientated-ordered.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAGlE,OAAO,EAAuB,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAQzF,MAAM,UAAU,2BAA2B,CAEzC,IAAa,EAAE,mBAA2B;IAC3C,IAAI,CAAC,qBAAqB,CAAI,IAAI,EAAE,mBAAmB,CAAC;QAAE,OAAO,KAAK,CAAC;IAEvE,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAEjE,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ICommonsM2MLink } from './icommons-m2m-link.mjs';
2
+ import { ICommonsFirstClass } from './icommons-first-class.mjs';
3
+ export interface ICommonsRelation<A extends ICommonsFirstClass, B extends ICommonsFirstClass> extends ICommonsM2MLink<A, B> {
4
+ src: number;
5
+ dest: number;
6
+ }
7
+ export declare function isICommonsRelation<A extends ICommonsFirstClass, B extends ICommonsFirstClass>(test: unknown): test is ICommonsRelation<A, B>;
@@ -0,0 +1,7 @@
1
+ import { isICommonsM2MLink } from './icommons-m2m-link.mjs';
2
+ export function isICommonsRelation(test) {
3
+ if (!isICommonsM2MLink(test, 'src', 'dest'))
4
+ return false;
5
+ return true;
6
+ }
7
+ //# sourceMappingURL=icommons-relation.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icommons-relation.mjs","sourceRoot":"","sources":["../../src/interfaces/icommons-relation.mts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAW7E,MAAM,UAAU,kBAAkB,CAGhC,IAAa;IACd,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAE1D,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ICommonsFirstClass } from './icommons-first-class.mjs';
2
+ export interface ICommonsSecondClass<_P extends ICommonsFirstClass> extends ICommonsFirstClass {
3
+ }
4
+ export declare function isICommonsSecondClass<P extends ICommonsFirstClass>(test: unknown, firstClassFieldName: string): test is ICommonsSecondClass<P>;
@@ -0,0 +1,10 @@
1
+ import { commonsTypeHasPropertyNumber } from 'tscommons-esm-core';
2
+ import { isICommonsFirstClass } from './icommons-first-class.mjs';
3
+ export function isICommonsSecondClass(test, firstClassFieldName) {
4
+ if (!isICommonsFirstClass(test))
5
+ return false;
6
+ if (!commonsTypeHasPropertyNumber(test, firstClassFieldName))
7
+ return false;
8
+ return true;
9
+ }
10
+ //# sourceMappingURL=icommons-second-class.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icommons-second-class.mjs","sourceRoot":"","sources":["../../src/interfaces/icommons-second-class.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAsB,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAStF,MAAM,UAAU,qBAAqB,CAEnC,IAAa,EAAE,mBAA2B;IAC3C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAE9C,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,mBAAmB,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3E,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,10 @@
1
+ export interface ICommonsUniquelyIdentified {
2
+ uid: string;
3
+ }
4
+ export declare function isICommonsUniquelyIdentified(test: unknown): test is ICommonsUniquelyIdentified;
5
+ export interface ICommonsUniquelyIdentifiedBase62 extends ICommonsUniquelyIdentified {
6
+ }
7
+ export declare function isICommonsUniquelyIdentifiedBase62(test: unknown): test is ICommonsUniquelyIdentifiedBase62;
8
+ export interface ICommonsUniquelyIdentifiedBase62Long extends ICommonsUniquelyIdentified {
9
+ }
10
+ export declare function isICommonsUniquelyIdentifiedBase62Long(test: unknown): test is ICommonsUniquelyIdentifiedBase62Long;
@@ -0,0 +1,23 @@
1
+ import { commonsTypeIsPropertyObject, commonsTypeHasPropertyString, commonsBase62IsId, commonsBase62IsLongId } from 'tscommons-esm-core';
2
+ export function isICommonsUniquelyIdentified(test) {
3
+ if (!commonsTypeIsPropertyObject(test))
4
+ return false;
5
+ if (!commonsTypeHasPropertyString(test, 'uid'))
6
+ return false;
7
+ return true;
8
+ }
9
+ export function isICommonsUniquelyIdentifiedBase62(test) {
10
+ if (!isICommonsUniquelyIdentified(test))
11
+ return false;
12
+ if (!commonsBase62IsId(test.uid))
13
+ return false;
14
+ return true;
15
+ }
16
+ export function isICommonsUniquelyIdentifiedBase62Long(test) {
17
+ if (!isICommonsUniquelyIdentified(test))
18
+ return false;
19
+ if (!commonsBase62IsLongId(test.uid))
20
+ return false;
21
+ return true;
22
+ }
23
+ //# sourceMappingURL=icommons-uniquely-identified.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icommons-uniquely-identified.mjs","sourceRoot":"","sources":["../../src/interfaces/icommons-uniquely-identified.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAMzI,MAAM,UAAU,4BAA4B,CAAC,IAAa;IACzD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAErD,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7D,OAAO,IAAI,CAAC;AACb,CAAC;AAKD,MAAM,UAAU,kCAAkC,CAAC,IAAa;IAC/D,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAEtD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/C,OAAO,IAAI,CAAC;AACb,CAAC;AAKD,MAAM,UAAU,sCAAsC,CAAC,IAAa;IACnE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAEtD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAEnD,OAAO,IAAI,CAAC;AACb,CAAC"}
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "tscommons-esm-models",
3
+ "version": "0.0.2",
4
+ "description": "",
5
+ "scripts": {
6
+ "tsc": "./node_modules/typescript/bin/tsc",
7
+ "preprepare": "rm -rf ./dist; php ~/Dev/etim.php src/ && npm run tsc",
8
+ "publish-major": "rm -rf dist; npm run tsc && npx eslint . && npm run preprepare && npm version major && npm install && npm publish && git add . && git commit -m 'publish'",
9
+ "publish-minor": "rm -rf dist; npm run tsc && npx eslint . && npm run preprepare && npm version minor && npm install && npm publish && git add . && git commit -m 'publish'",
10
+ "publish-patch": "rm -rf dist; npm run tsc && npx eslint . && npm run preprepare && npm version patch && npm install && npm publish && git add . && git commit -m 'publish'"
11
+ },
12
+ "main": "dist/index.mjs",
13
+ "types": "dist/index.d.mjs",
14
+ "type": "module",
15
+ "author": "Pete Morris",
16
+ "license": "ISC",
17
+ "devDependencies": {
18
+ "@stylistic/eslint-plugin-ts": "^2.10.1",
19
+ "eslint-plugin-import": "^2.31.0",
20
+ "eslint-plugin-prefer-arrow-functions": "^3.4.1",
21
+ "typescript": "^5.6.3",
22
+ "typescript-eslint": "^8.14.0"
23
+ },
24
+ "files": [
25
+ "dist/**/*"
26
+ ],
27
+ "dependencies": {
28
+ "tscommons-esm-core": "^0.0.2"
29
+ }
30
+ }