@rentman/rm-core 5.0.1 → 6.0.0
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/changelog.md +5 -0
- package/dist/rm-core.js +8567 -8302
- package/dist/rm-core.min.js +2 -2
- package/dist/types/classes/ApiResponseProcessor.d.ts +2 -2
- package/dist/types/classes/CollectionEntryService.d.ts +7 -6
- package/dist/types/classes/CollectionMatcherBase.d.ts +8 -13
- package/dist/types/classes/CollectionMatcherCachedCollectionProcessor.d.ts +31 -0
- package/dist/types/classes/CollectionResourceService.d.ts +4 -3
- package/dist/types/classes/ColumnSet.d.ts +1 -2
- package/dist/types/classes/ColumnSubsetCache.d.ts +4 -2
- package/dist/types/classes/KeyService.d.ts +2 -1
- package/dist/types/classes/{QueryLocalLinkedToParser.d.ts → QueryLinkedToParser.d.ts} +4 -5
- package/dist/types/classes/QueryLocallyMatchableParser.d.ts +19 -0
- package/dist/types/classes/QueryMatcher.d.ts +4 -0
- package/dist/types/classes/QueryParser.d.ts +1 -2
- package/dist/types/classes/QueryParserBase.d.ts +7 -7
- package/dist/types/classes/QueryParserIdUpdater.d.ts +16 -0
- package/dist/types/classes/QueryService.d.ts +2 -1
- package/dist/types/classes/RequestBuffer.d.ts +7 -7
- package/dist/types/classes/RequestBufferManager.d.ts +1 -0
- package/dist/types/classes/RequestColumnExpansion.d.ts +2 -2
- package/dist/types/classes/SocketMessageHandler.d.ts +14 -6
- package/dist/types/classes/cache/AbstractCache.d.ts +20 -19
- package/dist/types/classes/cache/CachedQueryHandlerBase.d.ts +73 -0
- package/dist/types/classes/cache/CollectionMatcherCachedQueryProcessor.d.ts +35 -0
- package/dist/types/classes/cache/ItemHandlerBase.d.ts +3 -5
- package/dist/types/classes/cache/server/ServerCache.d.ts +12 -13
- package/dist/types/classes/cache/server/ServerCachedQueryHandler.d.ts +34 -0
- package/dist/types/classes/cache/server/ServerItemHandler.d.ts +2 -1
- package/dist/types/classes/cache/transaction/TransactionCache.d.ts +22 -28
- package/dist/types/classes/cache/transaction/TransactionCachedQueryHandler.d.ts +23 -0
- package/dist/types/classes/cache/transaction/TransactionCollectionHandler.d.ts +15 -40
- package/dist/types/classes/cache/transaction/TransactionItemHandler.d.ts +2 -2
- package/dist/types/classes/index.d.ts +3 -3
- package/dist/types/core.d.ts +1 -2
- package/dist/types/factories/CollectionEntryFactory.d.ts +7 -4
- package/dist/types/factories/CollectionMatcherFactory.d.ts +14 -4
- package/dist/types/factories/CollectionResourceFactory.d.ts +10 -4
- package/dist/types/factories/ColumnSubsetCacheFactory.d.ts +3 -2
- package/dist/types/factories/QueryParserFactory.d.ts +1 -1
- package/dist/types/factories/index.d.ts +0 -1
- package/dist/types/interfaces/AbstractCacheDependencyInterface.d.ts +1 -2
- package/dist/types/interfaces/TransactionCollectionHandlerDependencyInterface.d.ts +1 -2
- package/dist/types/models/CollectionEntry.d.ts +7 -8
- package/dist/types/models/CollectionOptions.d.ts +18 -0
- package/dist/types/models/CollectionResource.d.ts +30 -21
- package/dist/types/models/index.d.ts +1 -2
- package/dist/types/types/ItemTypesCollection.d.ts +32 -32
- package/package.json +1 -1
- package/dist/types/classes/CollectionCache.d.ts +0 -38
- package/dist/types/classes/CollectionMatcher.d.ts +0 -9
- package/dist/types/classes/cache/CollectionHandlerBase.d.ts +0 -68
- package/dist/types/classes/cache/CollectionMatcherCacheProcessor.d.ts +0 -26
- package/dist/types/classes/cache/server/ServerCollectionHandler.d.ts +0 -44
- package/dist/types/factories/CollectionCacheFactory.d.ts +0 -8
- package/dist/types/models/CollectionEntryOptions.d.ts +0 -13
- package/dist/types/models/CollectionResourceOptions.d.ts +0 -21
|
@@ -1,15 +1,14 @@
|
|
|
1
|
+
import { ChangesDelta, InternalChangesDelta, TransactionCache, TransactionValidatorFactory } from '../..';
|
|
1
2
|
import { RmCore } from '../../../core';
|
|
2
|
-
import { ServerCacheDependencyInterface } from '../../../interfaces';
|
|
3
|
-
import {
|
|
4
|
-
import { ApiRequestColumnMap, EntryParent, EntryParentNull, FieldMap, ItemIdConversionMap, ItemType, PromiseInterface } from '../../../types';
|
|
3
|
+
import { ServerCacheDependencyInterface } from '../../../interfaces/ServerCacheDependencyInterface';
|
|
4
|
+
import { ItemEntry } from '../../../models';
|
|
5
|
+
import { ApiRequestColumn, ApiRequestColumnMap, CollectionQuery, CollectionResourceParentIdMap, EntryParent, EntryParentNull, FieldMap, ItemIdConversionMap, ItemType, PromiseInterface } from '../../../types';
|
|
5
6
|
import { ApiResponseProcessor } from '../../ApiResponseProcessor';
|
|
6
|
-
import { ChangesDelta } from '../../ChangesDelta';
|
|
7
7
|
import { ChangesDeltaResult } from '../../ChangesDeltaBase';
|
|
8
8
|
import { OnAfterCreateCallback } from '../../ChangesProcessor';
|
|
9
|
-
import { InternalChangesDelta } from '../../InternalChangesDelta';
|
|
10
9
|
import { AbstractCache } from '../AbstractCache';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
10
|
+
import { CachedQueryItem } from '../CachedQueryHandlerBase';
|
|
11
|
+
import { ServerCachedQueryHandler } from './ServerCachedQueryHandler';
|
|
13
12
|
import { ServerItemEntryChanges, ServerItemHandler } from './ServerItemHandler';
|
|
14
13
|
/**
|
|
15
14
|
* @description
|
|
@@ -19,18 +18,20 @@ import { ServerItemEntryChanges, ServerItemHandler } from './ServerItemHandler';
|
|
|
19
18
|
* It's basically a local representation of the database
|
|
20
19
|
*/
|
|
21
20
|
export declare class ServerCache extends AbstractCache {
|
|
22
|
-
|
|
21
|
+
dependencies: ServerCacheDependencyInterface;
|
|
23
22
|
readonly itemHandler: ServerItemHandler;
|
|
24
|
-
readonly
|
|
23
|
+
readonly cachedQueryHandler: ServerCachedQueryHandler;
|
|
25
24
|
parent: null;
|
|
26
25
|
constructor(dependencies: ServerCacheDependencyInterface, core: RmCore);
|
|
27
26
|
getServerCache(): ServerCache;
|
|
27
|
+
createChild(id?: string, validatorFactory?: TransactionValidatorFactory): TransactionCache;
|
|
28
|
+
expandCollectionResources<ItemTypeType extends ItemType>(itemType: ItemTypeType, collections: CollectionResourceParentIdMap<ItemTypeType>, newRequestColumns: ApiRequestColumn[]): PromiseInterface<CollectionResourceParentIdMap>;
|
|
28
29
|
processResponse(response: ApiResponseProcessor, requestColumnMap: ApiRequestColumnMap, isCalledAfterApiSave?: boolean, isCalledAfterSocketUpdate?: boolean, changesDelta?: ChangesDelta): PromiseInterface<ChangesDeltaResult>;
|
|
29
30
|
/**
|
|
30
31
|
* @description
|
|
31
32
|
* Applies the changes of the changesDelta created by the API call ({@link ChangesProcessor ChangesProcessor}/{@link SocketMessageHandler SocketMessageHandler}, or manually through a module function) on all caches
|
|
32
33
|
*/
|
|
33
|
-
applyChangesFromParent(internalChangesDelta: InternalChangesDelta, isCalledAfterApiSave?: boolean, isCalledAfterSocketUpdate?: boolean): void
|
|
34
|
+
applyChangesFromParent(internalChangesDelta: InternalChangesDelta, isCalledAfterApiSave?: boolean, isCalledAfterSocketUpdate?: boolean): PromiseInterface<void>;
|
|
34
35
|
/**
|
|
35
36
|
* @description
|
|
36
37
|
* Gets the fields required to set the parent
|
|
@@ -57,7 +58,7 @@ export declare class ServerCache extends AbstractCache {
|
|
|
57
58
|
entry: ItemEntry;
|
|
58
59
|
changes: ServerItemEntryChanges;
|
|
59
60
|
};
|
|
60
|
-
getCollectionChangesRecursively(
|
|
61
|
+
getCollectionChangesRecursively<ItemTypeType extends ItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery): CachedQueryItem<ItemTypeType> | undefined;
|
|
61
62
|
/**
|
|
62
63
|
* @description
|
|
63
64
|
* Invalidates the complete server cache, all items will be re-fetched whenever they are requested
|
|
@@ -77,7 +78,5 @@ export declare class ServerCache extends AbstractCache {
|
|
|
77
78
|
applyChangesDelta(changesDelta: ChangesDelta, isCalledAfterApiSave?: boolean, isCalledAfterSocketUpdate?: boolean): PromiseInterface<ChangesDeltaResult>;
|
|
78
79
|
getLocalItemEntry(itemEntryId: ItemEntry['id']): ItemEntry | undefined;
|
|
79
80
|
getLocalItemEntryByItemId(itemType: ItemType, itemId: ItemEntry['itemId']): ItemEntry | undefined;
|
|
80
|
-
getLocalCollectionEntryByQueryString(itemType: ItemType, queryString: string): CollectionEntry | undefined;
|
|
81
|
-
getLocalCollectionEntry(collectionEntryId: CollectionEntry['id']): CollectionEntry | undefined;
|
|
82
81
|
getChangesFromItemChanges<ItemTypeType extends ItemType = any>(changesObject: ServerItemEntryChanges<ItemTypeType>): FieldMap<ItemTypeType>;
|
|
83
82
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ColumnSubsetCacheFactory, RequestColumnExpansionFactory } from '../../../factories';
|
|
2
|
+
import { ApiRequestColumns, ApiRequestService, CollectionQuery, ColumnSubsetCache, ColumnUtil, ParentIdMap, PromiseInterface } from '../../../index';
|
|
3
|
+
import { ErrorHandlerInterface, PromiseLibraryInterface } from '../../../interfaces';
|
|
4
|
+
import { ItemEntry } from '../../../models';
|
|
5
|
+
import { CollectionOptions } from '../../../models/CollectionOptions';
|
|
6
|
+
import { ItemId, ItemType } from '../../../types';
|
|
7
|
+
import { CollectionEntryService } from '../../index';
|
|
8
|
+
import { RequestBufferManager } from '../../RequestBufferManager';
|
|
9
|
+
import { CachedQueryHandlerBase, CachedQueryItem } from '../CachedQueryHandlerBase';
|
|
10
|
+
import { ServerCache } from './ServerCache';
|
|
11
|
+
import { ServerItemHandler } from './ServerItemHandler';
|
|
12
|
+
export declare class ServerCachedQueryHandler extends CachedQueryHandlerBase {
|
|
13
|
+
private columnSubsetCacheFactory;
|
|
14
|
+
private requestBufferManager;
|
|
15
|
+
private apiRequestService;
|
|
16
|
+
private errorHandler;
|
|
17
|
+
private itemHandler;
|
|
18
|
+
protected transaction: ServerCache;
|
|
19
|
+
constructor(columnSubsetCacheFactory: ColumnSubsetCacheFactory, requestBufferManager: RequestBufferManager, requestColumnExpansionFactory: RequestColumnExpansionFactory, apiRequestService: ApiRequestService, collectionEntryService: CollectionEntryService, errorHandler: ErrorHandlerInterface, itemHandler: ServerItemHandler, promiseService: PromiseLibraryInterface, columnUtil: ColumnUtil, transaction: ServerCache);
|
|
20
|
+
__fetchCachedQueryItem<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<CachedQueryItem<ItemTypeType>>;
|
|
21
|
+
__fetchLinkedCachedQueryItems<ItemTypeType extends ItemType>(parentType: ItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<ParentIdMap<CachedQueryItem<ItemTypeType>>>;
|
|
22
|
+
__addItemEntriesToCachedQueries<ItemTypeType extends ItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>): void;
|
|
23
|
+
/**
|
|
24
|
+
* @description
|
|
25
|
+
* Expands the columns of the items in the cached query
|
|
26
|
+
*/
|
|
27
|
+
__expandCachedQuery<ItemTypeType extends ItemType = any>(cachedQuery: CachedQueryItem<ItemTypeType>, newColumns: ApiRequestColumns): PromiseInterface<CachedQueryItem<ItemTypeType>>;
|
|
28
|
+
/**
|
|
29
|
+
* @description
|
|
30
|
+
* Fetches the data for the passed ItemType/options, will do nothing if the requested CollectionEntry/columns are already cached.
|
|
31
|
+
* Will create a new {@link CollectionEntry CollectionEntry} if the CollectionEntry didn't exist yet
|
|
32
|
+
*/
|
|
33
|
+
__fetchItemEntriesByQueryData<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionOptions<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, collectionQuery: CollectionQuery): PromiseInterface<CachedQueryItem<ItemTypeType>>;
|
|
34
|
+
}
|
|
@@ -28,6 +28,7 @@ export declare class ServerItemHandler extends ItemHandlerBase {
|
|
|
28
28
|
copyTransactionItemEntryChanges(itemEntryChanges: TransactionItemEntryChanges, entry: ItemEntry): ServerItemEntryChanges;
|
|
29
29
|
fetchItemEntry<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
|
|
30
30
|
fetchItemEntriesByQuery<ItemTypeType extends ItemType>(itemType: ItemTypeType, query: ApiQuery, entryOptions: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
|
|
31
|
+
extendItemEntries<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemEntries: Array<ItemEntry<ItemTypeType>>, newColumns: ApiRequestColumns): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
|
|
31
32
|
fetchItemEntries<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
|
|
32
33
|
/**
|
|
33
34
|
* @description
|
|
@@ -35,7 +36,7 @@ export declare class ServerItemHandler extends ItemHandlerBase {
|
|
|
35
36
|
*
|
|
36
37
|
* @param columns should contain a derived column that refers to the parent
|
|
37
38
|
*/
|
|
38
|
-
fetchLinkedItemEntriesData(parentType: ItemType, parentIdArray: ItemId[], itemType: ItemType, query: ApiQuery, columns: ApiRequestColumns): PromiseInterface<RequestBufferResponse>;
|
|
39
|
+
fetchLinkedItemEntriesData(parentType: ItemType, parentIdArray: ItemId[], itemType: ItemType, query: ApiQuery | null, columns: ApiRequestColumns): PromiseInterface<RequestBufferResponse>;
|
|
39
40
|
/**
|
|
40
41
|
* @description
|
|
41
42
|
* General way to process an API response.
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
+
import { ChangesDelta, InternalChangesDelta, ServerCache, TransactionCollectionHandler, TransactionItemEntryChanges, TransactionItemHandler, TransactionValidatorFactory } from '../..';
|
|
1
2
|
import { RmCore } from '../../../core';
|
|
2
3
|
import { AbstractCacheDependencyInterface } from '../../../interfaces/AbstractCacheDependencyInterface';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { CollectionResource, ItemEntry, ItemEntryOptions, ItemResource } from '../../../models';
|
|
5
|
+
import { CollectionOptionsInterface } from '../../../models/CollectionOptions';
|
|
6
|
+
import { ApiQuery, ApiRequestColumn, ApiRequestColumns, CollectionDefinition, CollectionQuery, CollectionResourceParentIdMap, ConversionMap, CreateRequestParameterMap, DeregFunction, EntryParentNull, FieldChangeCallback, FieldMap, ItemId, ItemIdConversionMap, ItemOptionsInterface, ItemResourcesItemTypeMap, ItemType, ItemTypeMap, LinkCollectionDefinition, PromiseInterface } from '../../../types';
|
|
6
7
|
import { ChangesDeltaResult } from '../../ChangesDeltaBase';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
8
|
+
import { OnAfterCreateCallback } from '../../ChangesProcessor';
|
|
9
|
+
import { ModuleChangesCompilationResult } from '../../ModuleChangesCompilation';
|
|
9
10
|
import { AbstractCache } from '../AbstractCache';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
11
|
+
import { CachedQueryItem } from '../CachedQueryHandlerBase';
|
|
12
|
+
import { TransactionCachedQueryHandler } from './TransactionCachedQueryHandler';
|
|
13
|
+
import { TransactionCacheCallbackCondition, TransactionCacheCallbackType, TransactionEventHandler } from './TransactionEventHandler';
|
|
12
14
|
declare type ItemResourceLinks<ItemTypeType extends ItemType> = {
|
|
13
15
|
main: ItemResource<ItemTypeType>;
|
|
14
16
|
linked: ItemResourcesItemTypeMap;
|
|
@@ -59,7 +61,7 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
59
61
|
* @description
|
|
60
62
|
* Stores the 'root' {@link ItemEntry ItemEntry}, this {@link ItemEntry ItemEntry} can be used as request parent to store the whole transaction at once
|
|
61
63
|
*/
|
|
62
|
-
rootItem: ItemEntry
|
|
64
|
+
rootItem: ItemEntry | undefined;
|
|
63
65
|
/**
|
|
64
66
|
* @description
|
|
65
67
|
* Stores additional request parameters for when the transaction is stored to the server
|
|
@@ -84,6 +86,7 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
84
86
|
*/
|
|
85
87
|
readonly parent: AbstractCache;
|
|
86
88
|
readonly itemHandler: TransactionItemHandler;
|
|
89
|
+
readonly cachedQueryHandler: TransactionCachedQueryHandler;
|
|
87
90
|
readonly collectionHandler: TransactionCollectionHandler;
|
|
88
91
|
readonly eventHandler: TransactionEventHandler;
|
|
89
92
|
private readonly validator?;
|
|
@@ -94,7 +97,14 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
94
97
|
* For debugging purposes
|
|
95
98
|
*/
|
|
96
99
|
id?: string | undefined, validatorFactory?: TransactionValidatorFactory);
|
|
100
|
+
createChild(id?: string, validatorFactory?: TransactionValidatorFactory): TransactionCache;
|
|
97
101
|
destroy(): void;
|
|
102
|
+
expandCollectionResource(collectionResource: CollectionResource, newColumns: ApiRequestColumns): PromiseInterface<void>;
|
|
103
|
+
/**
|
|
104
|
+
* @description
|
|
105
|
+
* Expands the collection with the new request columns, assumes that all collections have the same itemType
|
|
106
|
+
*/
|
|
107
|
+
expandCollectionResources<ItemTypeType extends ItemType>(itemType: ItemTypeType, collections: CollectionResourceParentIdMap<ItemTypeType>, newColumns: ApiRequestColumn[]): PromiseInterface<CollectionResourceParentIdMap>;
|
|
98
108
|
registerFieldChangeCallback<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId: ItemId, callback: FieldChangeCallback<ItemTypeType>): DeregFunction;
|
|
99
109
|
createChangesDelta(): ChangesDelta;
|
|
100
110
|
getFirstErrorString(): undefined | string;
|
|
@@ -131,7 +141,7 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
131
141
|
* @param internalChangesDelta Changes to be applied
|
|
132
142
|
* @param isCalledAfterApiSave If 'isCalledAfterApiSave' is true local changes will always be overwritten (instead of only when there are no changes)
|
|
133
143
|
*/
|
|
134
|
-
applyChangesFromParent(internalChangesDelta: InternalChangesDelta, isCalledAfterApiSave?: boolean, isCalledAfterSocketUpdate?: boolean): void
|
|
144
|
+
applyChangesFromParent(internalChangesDelta: InternalChangesDelta, isCalledAfterApiSave?: boolean, isCalledAfterSocketUpdate?: boolean): PromiseInterface<void>;
|
|
135
145
|
/**
|
|
136
146
|
* @description
|
|
137
147
|
* Applies changes to this transaction and its children
|
|
@@ -159,7 +169,7 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
159
169
|
* Use {@link CollectionResource.getParent CollectionResource.getParent} instead of {@link TransactionCache.getParent TransactionCache.getParent} if you're getting the parent in the onRemove callback
|
|
160
170
|
*/
|
|
161
171
|
getParent<ItemTypeType extends ItemType = any>(itemEntry: ItemEntry<ItemTypeType>, fromInitial?: boolean, providedFields?: FieldMap<ItemTypeType>): EntryParentNull;
|
|
162
|
-
getCollectionChangesRecursively(
|
|
172
|
+
getCollectionChangesRecursively<ItemTypeType extends ItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery): CachedQueryItem<ItemTypeType> | undefined;
|
|
163
173
|
/**
|
|
164
174
|
* @description
|
|
165
175
|
* Traverses the transaction chain and returns the changes of the item on the first transaction
|
|
@@ -173,7 +183,7 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
173
183
|
* You should call this function when the resource is no longer needed
|
|
174
184
|
*
|
|
175
185
|
* @remark
|
|
176
|
-
* Does not remove
|
|
186
|
+
* Does not remove cached queries
|
|
177
187
|
*/
|
|
178
188
|
clearCollectionResource(resource: CollectionResource): void;
|
|
179
189
|
/**
|
|
@@ -210,11 +220,6 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
210
220
|
* Removes an {@link ItemEntry ItemEntry} from the {@link TransactionCache TransactionCache} which means that changes on this entry will no longer be tracked.
|
|
211
221
|
*/
|
|
212
222
|
clearItemEntry(itemEntry: ItemEntry<any>): void;
|
|
213
|
-
/**
|
|
214
|
-
* @description
|
|
215
|
-
* Removes a {@link CollectionEntry CollectionEntry} through a {@link CollectionResource CollectionResource} from the {@link TransactionCache TransactionCache} which means that changes on this collection will no longer be tracked.
|
|
216
|
-
*/
|
|
217
|
-
clearCollection(collectionResource: CollectionResource<any>): void;
|
|
218
223
|
/**
|
|
219
224
|
* @description
|
|
220
225
|
* Adds a callback that will fire before the transaction is saved, rejecting this callback will prevent the transaction from saving
|
|
@@ -303,16 +308,6 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
303
308
|
* Gets an ItemEntry from the cache by ItemId
|
|
304
309
|
*/
|
|
305
310
|
getLocalItemEntryByItemId(itemType: ItemType, itemId: ItemEntry['itemId']): ItemEntry | undefined;
|
|
306
|
-
/**
|
|
307
|
-
* @description
|
|
308
|
-
* Gets an CollectionEntry from the cache, doesn't do a API request, used for saving
|
|
309
|
-
*/
|
|
310
|
-
getLocalCollectionEntryByQueryString(itemType: ItemType, queryString: string): CollectionEntry | undefined;
|
|
311
|
-
/**
|
|
312
|
-
* @description
|
|
313
|
-
* Gets an CollectionEntry from the cache, doesn't do a API request, used for saving
|
|
314
|
-
*/
|
|
315
|
-
getLocalCollectionEntry(collectionEntryId: CollectionEntry['id']): CollectionEntry | undefined;
|
|
316
311
|
/**
|
|
317
312
|
* @description
|
|
318
313
|
* Returns the complete {@link InternalChangesDelta InternalChangesDelta} of the TransactionCache, this only takes into account the end result (initial is compared to changes), so changing something and reverting it
|
|
@@ -322,9 +317,8 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
322
317
|
createItemResource<ItemTypeType extends ItemType>(itemEntry: ItemEntry<ItemTypeType>, isRoot?: boolean, isNew?: boolean): ItemResource<ItemTypeType>;
|
|
323
318
|
createItemResources<ItemTypeType extends ItemType>(itemEntries: Array<ItemEntry<ItemTypeType>>): Array<ItemResource<ItemTypeType>>;
|
|
324
319
|
processLinkedItems<ItemTypeType extends ItemType>(linkedEntries: ItemTypeMap<ItemEntry[]>): ItemResourcesItemTypeMap<ItemResource<ItemTypeType>>;
|
|
325
|
-
createCollectionResource<ItemTypeType extends ItemType>(
|
|
320
|
+
createCollectionResource<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>, initialEntries: Array<ItemEntry<ItemTypeType>>): CollectionResource<ItemTypeType>;
|
|
326
321
|
getChangesFromItemChanges<ItemTypeType extends ItemType = any>(changesObject: TransactionItemEntryChanges<ItemTypeType>): FieldMap<ItemTypeType>;
|
|
327
|
-
private createCollectionResources;
|
|
328
322
|
/**
|
|
329
323
|
* @description
|
|
330
324
|
* Fetches all required columns to match/fit in collections
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ApiQuery, ApiRequestColumns, CollectionQuery, ColumnSubsetCache, ItemEntryOptions, ParentIdMap, PromiseInterface, TransactionCollectionHandlerDependencyInterface, TransactionItemHandler } from '../../../index';
|
|
2
|
+
import { ItemEntry } from '../../../models';
|
|
3
|
+
import { CollectionOptions } from '../../../models/CollectionOptions';
|
|
4
|
+
import { ItemId, ItemType } from '../../../types';
|
|
5
|
+
import { CachedQueryHandlerBase, CachedQueryItem } from '../CachedQueryHandlerBase';
|
|
6
|
+
import { TransactionCache } from './TransactionCache';
|
|
7
|
+
export declare class TransactionCachedQueryHandler extends CachedQueryHandlerBase {
|
|
8
|
+
private dependencies;
|
|
9
|
+
private itemHandler;
|
|
10
|
+
protected transaction: TransactionCache;
|
|
11
|
+
constructor(dependencies: TransactionCollectionHandlerDependencyInterface, itemHandler: TransactionItemHandler, transaction: TransactionCache);
|
|
12
|
+
__fetchCachedQueryItem<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<CachedQueryItem<ItemTypeType>>;
|
|
13
|
+
__expandCachedQuery<ItemTypeType extends ItemType = any>(cachedQuery: CachedQueryItem<ItemTypeType>, newColumns: ApiRequestColumns): PromiseInterface<CachedQueryItem<ItemTypeType>>;
|
|
14
|
+
__addItemEntriesToCachedQueries<ItemTypeType extends ItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>): void;
|
|
15
|
+
/**
|
|
16
|
+
* @remark
|
|
17
|
+
* todo not only linkedTo should be checked, but it should check if there's a local ID anywhere in the query
|
|
18
|
+
* ({<field>: <localId>}) is also a local query
|
|
19
|
+
*/
|
|
20
|
+
isLocal(options: CollectionOptions | ItemEntryOptions, query: ApiQuery): boolean;
|
|
21
|
+
__fetchItemEntriesByQueryData<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionOptions<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, collectionQuery: CollectionQuery): PromiseInterface<CachedQueryItem<ItemTypeType>>;
|
|
22
|
+
__fetchLinkedCachedQueryItems<ItemTypeType extends ItemType>(parentType: ItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<ParentIdMap<CachedQueryItem<ItemTypeType>>>;
|
|
23
|
+
}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { CollectionEntry, ItemEntry } from '../../../models';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { CollectionHandlerBase } from '../CollectionHandlerBase';
|
|
1
|
+
import { TransactionCollectionHandlerDependencyInterface } from '../../../interfaces/TransactionCollectionHandlerDependencyInterface';
|
|
2
|
+
import { CollectionEntry, CollectionResource, ItemEntry } from '../../../models';
|
|
3
|
+
import { ApiRequestColumns, ItemIdConversionMap, ItemType, ModifyFieldsCallback, PromiseInterface } from '../../../types';
|
|
4
|
+
import { ChangesDelta } from '../../ChangesDelta';
|
|
6
5
|
import { TransactionCache } from './TransactionCache';
|
|
7
|
-
|
|
6
|
+
import { TransactionCachedQueryHandler } from './TransactionCachedQueryHandler';
|
|
7
|
+
import { TransactionItemHandler } from './TransactionItemHandler';
|
|
8
|
+
export declare class TransactionCollectionHandler {
|
|
9
|
+
protected itemHandler: TransactionItemHandler;
|
|
10
|
+
protected cachedQueryHandler: TransactionCachedQueryHandler;
|
|
8
11
|
private dependencies;
|
|
9
|
-
private
|
|
10
|
-
protected transaction: TransactionCache;
|
|
12
|
+
private transaction;
|
|
11
13
|
collectionResources: {
|
|
12
|
-
[
|
|
14
|
+
[itemType: string]: {
|
|
15
|
+
[queryString: string]: CollectionResource[];
|
|
16
|
+
};
|
|
13
17
|
};
|
|
14
|
-
constructor(
|
|
15
|
-
|
|
16
|
-
getAllCollectionsByItemType<ItemTypeType extends ItemType>(itemType: ItemTypeType): Array<CollectionEntry<ItemTypeType>>;
|
|
17
|
-
createCollectionEntry<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionEntryOptions): CollectionEntry<ItemTypeType>;
|
|
18
|
-
clearEntry(entry: CollectionEntry): void;
|
|
18
|
+
constructor(itemHandler: TransactionItemHandler, cachedQueryHandler: TransactionCachedQueryHandler, dependencies: TransactionCollectionHandlerDependencyInterface, transaction: TransactionCache);
|
|
19
|
+
expandCollectionResource<ItemTypeType extends ItemType = any>(collectionResource: CollectionResource<ItemTypeType>, newColumns: ApiRequestColumns): PromiseInterface<void>;
|
|
19
20
|
addResource(resource: CollectionResource): void;
|
|
20
21
|
clearResource(resource: CollectionResource): void;
|
|
21
22
|
/**
|
|
@@ -23,31 +24,5 @@ export declare class TransactionCollectionHandler extends CollectionHandlerBase
|
|
|
23
24
|
* Updates the parents of the passed {@link ItemEntry ItemEntries}, returns `void` because you should use the {@link CollectionResourceOptions.onAdd onAdd} and {@link CollectionResourceOptions.onRemove onRemove} callbacks
|
|
24
25
|
*/
|
|
25
26
|
moveItems<CollectionEntryType extends CollectionEntry>(sourceCollectionEntry: CollectionEntryType, destinationCollectionEntry: CollectionEntryType, itemEntries: Array<ItemEntry<CollectionEntryType['itemType']>>): void;
|
|
26
|
-
extendCollectionEntry<CollectionEntryType extends CollectionEntry>(collectionEntry: CollectionEntryType, queryCallback: QueryCallback): PromiseInterface<CollectionEntryType>;
|
|
27
27
|
cloneCollectionEntry<CollectionEntryType extends CollectionEntry>(changesDelta: ChangesDelta, sourceEntry: CollectionEntryType, conversionMap?: ItemIdConversionMap, modifyFieldsCallback?: ModifyFieldsCallback): void;
|
|
28
|
-
getCollectionMatcher(): CollectionMatcher;
|
|
29
|
-
fetchCollectionEntry<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionEntryOptions): PromiseInterface<CollectionEntry<ItemTypeType>>;
|
|
30
|
-
fetchLinkedCollectionEntries<ItemTypeType extends ItemType>(parentType: ItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemTypeType, options: CollectionEntryOptions): PromiseInterface<CollectionEntryParentIdMap<ItemTypeType>>;
|
|
31
|
-
expandCollectionEntries<ItemTypeType extends ItemType>(parentType: ItemType, itemType: ItemTypeType, collections: CollectionResourceParentIdMap, newColumns: ApiRequestColumn[]): PromiseInterface<CollectionResourceParentIdMap>;
|
|
32
|
-
extendCollectionEntries<T extends CollectionResourceParentIdMap>(parentType: ItemType, itemType: ItemType, options: CollectionEntryOptions, queryCallback: QueryCallback, collections: T): PromiseInterface<void>;
|
|
33
|
-
addItemEntriesToCollectionChanges<CollectionEntryType extends CollectionEntry>(collectionEntry: CollectionEntryType, itemEntries: Array<ItemEntry<CollectionEntryType['itemType']>>, isCalledAfterSocketUpdate?: boolean): void;
|
|
34
|
-
isLocal(options: CollectionEntryOptions | ItemEntryOptions, query: ApiQuery): boolean;
|
|
35
|
-
expandCollectionEntry<CollectionEntryType extends CollectionEntry>(changesDelta: ChangesDelta, collectionEntry: CollectionEntryType, newColumns: ApiRequestColumns): PromiseInterface<CollectionEntryType>;
|
|
36
|
-
/**
|
|
37
|
-
* @description
|
|
38
|
-
* When {@link ItemEntry ItemEntries} are added to the changes of a {@link CollectionEntry CollectionEntry} all {@link CollectionResource CollectionResources}
|
|
39
|
-
* should get new {@link ItemResource ItemResources} for the newly added entries
|
|
40
|
-
*/
|
|
41
|
-
protected handleAddedItemEntriesCallback<CollectionEntryType extends CollectionEntry>(collectionEntry: CollectionEntryType, addedEntries: Array<ItemEntry<CollectionEntryType['itemType']>>): void;
|
|
42
|
-
/**
|
|
43
|
-
* @description
|
|
44
|
-
* When {@link ItemEntry ItemEntries} are removed from the changes of a {@link CollectionEntry CollectionEntry} the {@link ItemResource ItemResources} of the ItemEntries should be removed from all {@link CollectionResource CollectionResources}
|
|
45
|
-
*/
|
|
46
|
-
protected handleRemovedItemEntriesCallback<CollectionEntryType extends CollectionEntry>(collectionEntry: CollectionEntryType, removedItemEntries: Array<ItemEntry<CollectionEntryType['itemType']>>): void;
|
|
47
|
-
private fetchCollectionData;
|
|
48
|
-
/**
|
|
49
|
-
* @description
|
|
50
|
-
* Fetches {@link CollectionEntry CollectionEntries} of which the parents are local
|
|
51
|
-
*/
|
|
52
|
-
private fetchLinkedLocalCollectionEntries;
|
|
53
28
|
}
|
|
@@ -14,7 +14,7 @@ export declare type TransactionItemEntryChanges<ItemTypeType extends ItemType =
|
|
|
14
14
|
/**
|
|
15
15
|
* @description
|
|
16
16
|
* In a {@link TransactionCache Transaction} only local items can be stored, so all entries in {@link TransactionItemHandler.entries this.entries} are local
|
|
17
|
-
* If a non-local entry is requested it should be passed on to the {@link ServerItemHandler ServerItemHandler} which will
|
|
17
|
+
* If a non-local entry is requested it should be passed on to the {@link ServerItemHandler ServerItemHandler} which will __fetchCachedQueryItem the entry from the server
|
|
18
18
|
*/
|
|
19
19
|
export declare class TransactionItemHandler extends ItemHandlerBase {
|
|
20
20
|
private dependencies;
|
|
@@ -77,7 +77,7 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
|
|
|
77
77
|
expandLocalItemEntries<ItemTypeType extends ItemType>(changesDelta: ChangesDeltaBase, itemType: ItemTypeType, itemEntries: Array<ItemEntry<ItemTypeType>>, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
|
|
78
78
|
/**
|
|
79
79
|
* @description
|
|
80
|
-
* Fetches the data for the passed ItemType/ItemId/columns, is able to
|
|
80
|
+
* Fetches the data for the passed ItemType/ItemId/columns, is able to __fetchCachedQueryItem non-local derived values.
|
|
81
81
|
*
|
|
82
82
|
* @remark
|
|
83
83
|
* Assumes the the ItemEntry with the given ItemType-ItemId is already cached
|
|
@@ -3,9 +3,8 @@ export * from './ApiRequestService';
|
|
|
3
3
|
export * from './ApiResponseProcessor';
|
|
4
4
|
export * from './ChangesCompilation';
|
|
5
5
|
export * from './ChangesProcessor';
|
|
6
|
-
export * from './CollectionCache';
|
|
7
6
|
export * from './CollectionEntryService';
|
|
8
|
-
export * from './
|
|
7
|
+
export * from './CollectionMatcherCachedCollectionProcessor';
|
|
9
8
|
export * from './CollectionResourceService';
|
|
10
9
|
export * from './ColumnCache';
|
|
11
10
|
export * from './ColumnExpansion';
|
|
@@ -31,9 +30,10 @@ export * from './Util';
|
|
|
31
30
|
export * from './cache/AbstractCache';
|
|
32
31
|
export * from './cache/server/ServerCache';
|
|
33
32
|
export * from './cache/server/ServerItemHandler';
|
|
34
|
-
export * from './cache/server/
|
|
33
|
+
export * from './cache/server/ServerCachedQueryHandler';
|
|
35
34
|
export * from './cache/transaction/TransactionCache';
|
|
36
35
|
export * from './cache/transaction/TransactionItemHandler';
|
|
36
|
+
export * from './cache/transaction/TransactionCachedQueryHandler';
|
|
37
37
|
export * from './cache/transaction/TransactionCollectionHandler';
|
|
38
38
|
export * from './cache/transaction/TransactionEventHandler';
|
|
39
39
|
export * from './cache/transaction/TransactionValidator';
|
package/dist/types/core.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApiFormatter, ApiRequestService, CollectionEntryService, CollectionResourceService, ColumnCache, ColumnHandler, ColumnUtil, ConversionMapService, ItemEntryService, KeyService, LockService, QueryService, SocketMessageHandler } from './classes';
|
|
2
2
|
import { ItemCreateService } from './classes/ItemCreateService';
|
|
3
3
|
import { TemplateCache } from './classes/TemplateCache';
|
|
4
|
-
import { ApiResponseProcessorFactory, ChangesCompilationFactory,
|
|
4
|
+
import { ApiResponseProcessorFactory, ChangesCompilationFactory, CollectionEntryFactory, CollectionMatcherFactory, CollectionResourceFactory, ColumnExpansionFactory, ColumnInfoFactory, ColumnSetFactory, ColumnSubsetCacheFactory, CreateRequestFactory, ItemCacheFactory, ItemEntryFactory, ItemResourceFactory, ModuleChangesCompilationFactory, QueryMatcherFactory, QueryParserFactory, RequestColumnExpansionFactory, TemplateFactory, TransactionCacheFactory } from './factories';
|
|
5
5
|
import { ChangesDeltaFactory } from './factories/ChangesDeltaFactory';
|
|
6
6
|
import { ChangesProcessorFactory } from './factories/ChangesProcessorFactory';
|
|
7
7
|
import { ApiRequestServiceInterface, AuthInterface, ErrorHandlerInterface, ExceptionHandlerInterface, PromiseLibraryInterface } from './interfaces';
|
|
@@ -15,7 +15,6 @@ export declare class RmCore {
|
|
|
15
15
|
changesCompilationFactory: ChangesCompilationFactory;
|
|
16
16
|
changesDeltaFactory: ChangesDeltaFactory;
|
|
17
17
|
changesProcessorFactory: ChangesProcessorFactory;
|
|
18
|
-
collectionCacheFactory: CollectionCacheFactory;
|
|
19
18
|
collectionEntryFactory: CollectionEntryFactory;
|
|
20
19
|
collectionEntryService: CollectionEntryService;
|
|
21
20
|
collectionMatcherFactory: CollectionMatcherFactory;
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { CollectionEntryService, KeyService } from '../classes';
|
|
2
|
-
import { CollectionEntry
|
|
1
|
+
import { CollectionEntryService, ColumnCache, KeyService, QueryService } from '../classes';
|
|
2
|
+
import { CollectionEntry } from '../models/';
|
|
3
|
+
import { CollectionOptionsInterface } from '../models/CollectionOptions';
|
|
3
4
|
import { ItemType } from '../types/';
|
|
4
5
|
import { ColumnSetFactory } from './ColumnSetFactory';
|
|
5
6
|
export declare class CollectionEntryFactory {
|
|
6
7
|
private collectionEntryService;
|
|
7
8
|
private columnSetFactory;
|
|
8
9
|
private keyService;
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
private queryService;
|
|
11
|
+
private columnCache;
|
|
12
|
+
constructor(collectionEntryService: CollectionEntryService, columnSetFactory: ColumnSetFactory, keyService: KeyService, queryService: QueryService, columnCache: ColumnCache);
|
|
13
|
+
construct<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>): CollectionEntry<ItemTypeType>;
|
|
11
14
|
}
|
|
@@ -1,9 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AbstractCache, ApiRequestService, QueryService } from '../classes';
|
|
2
|
+
import { CachedQueryItem } from '../classes/cache/CachedQueryHandlerBase';
|
|
3
|
+
import { CollectionMatcherCachedQueryProcessor } from '../classes/cache/CollectionMatcherCachedQueryProcessor';
|
|
4
|
+
import { CollectionMatcherCachedCollectionProcessor } from '../classes/CollectionMatcherCachedCollectionProcessor';
|
|
2
5
|
import { QueryMatcherFactory } from '../factories';
|
|
3
|
-
import {
|
|
6
|
+
import { PromiseLibraryInterface } from '../interfaces';
|
|
7
|
+
import { CollectionResource } from '../models';
|
|
4
8
|
import { ItemType } from '../types';
|
|
5
9
|
export declare class CollectionMatcherFactory {
|
|
6
10
|
private queryMatcherFactory;
|
|
7
|
-
|
|
8
|
-
|
|
11
|
+
private queryService;
|
|
12
|
+
private apiRequestService;
|
|
13
|
+
private promiseService;
|
|
14
|
+
constructor(queryMatcherFactory: QueryMatcherFactory, queryService: QueryService, apiRequestService: ApiRequestService, promiseService: PromiseLibraryInterface);
|
|
15
|
+
constructCachedCollectionProcessor(transaction: AbstractCache, getCollections: (itemType: ItemType) => {
|
|
16
|
+
[queryString: string]: CollectionResource[];
|
|
17
|
+
}): CollectionMatcherCachedCollectionProcessor;
|
|
18
|
+
constructCachedQueryProcessor(transaction: AbstractCache, getQueries: (itemType: ItemType) => CachedQueryItem[]): CollectionMatcherCachedQueryProcessor;
|
|
9
19
|
}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { ItemEntryService, KeyService } from '../classes';
|
|
1
|
+
import { ItemEntryService, KeyService, QueryService } from '../classes';
|
|
2
2
|
import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
|
|
3
3
|
import { ErrorHandlerInterface, ExceptionHandlerInterface, PromiseLibraryInterface } from '../interfaces';
|
|
4
|
-
import {
|
|
4
|
+
import { CollectionResource, ItemEntry } from '../models';
|
|
5
|
+
import { CollectionOptionsInterface } from '../models/CollectionOptions';
|
|
5
6
|
import { ItemType } from '../types';
|
|
6
7
|
import { ChangesDeltaFactory } from './ChangesDeltaFactory';
|
|
8
|
+
import { CollectionEntryFactory } from './CollectionEntryFactory';
|
|
9
|
+
import { ColumnSetFactory } from './ColumnSetFactory';
|
|
7
10
|
export declare class CollectionResourceFactory {
|
|
8
11
|
errorHandler: ErrorHandlerInterface;
|
|
9
12
|
exceptionHandler: ExceptionHandlerInterface;
|
|
@@ -11,6 +14,9 @@ export declare class CollectionResourceFactory {
|
|
|
11
14
|
promiseService: PromiseLibraryInterface;
|
|
12
15
|
changesDeltaFactory: ChangesDeltaFactory;
|
|
13
16
|
itemEntryService: ItemEntryService;
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
collectionEntryFactory: CollectionEntryFactory;
|
|
18
|
+
queryService: QueryService;
|
|
19
|
+
columnSetFactory: ColumnSetFactory;
|
|
20
|
+
constructor(errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, keyService: KeyService, promiseService: PromiseLibraryInterface, changesDeltaFactory: ChangesDeltaFactory, itemEntryService: ItemEntryService, collectionEntryFactory: CollectionEntryFactory, queryService: QueryService, columnSetFactory: ColumnSetFactory);
|
|
21
|
+
construct<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>, transaction: TransactionCache, initialItemEntries: Array<ItemEntry<ItemTypeType>>): CollectionResource<ItemTypeType>;
|
|
16
22
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ColumnSubsetCache } from '../classes';
|
|
1
|
+
import { ColumnSubsetCache, ColumnUtil } from '../classes';
|
|
2
2
|
import { ApiRequestColumns, ItemType } from '../types';
|
|
3
3
|
export declare class ColumnSubsetCacheFactory {
|
|
4
|
-
|
|
4
|
+
private columnUtil;
|
|
5
|
+
constructor(columnUtil: ColumnUtil);
|
|
5
6
|
construct<ItemTypeType extends ItemType>(requestColumns: ApiRequestColumns): ColumnSubsetCache<ItemTypeType>;
|
|
6
7
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export * from './ApiResponseProcessorFactory';
|
|
2
2
|
export * from './ChangesCompilationFactory';
|
|
3
|
-
export * from './CollectionCacheFactory';
|
|
4
3
|
export * from './CollectionEntryFactory';
|
|
5
4
|
export * from './CollectionMatcherFactory';
|
|
6
5
|
export * from './CollectionResourceFactory';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ApiFormatter, ApiRequestService, CollectionEntryService, ColumnCache, ColumnHandler, ColumnUtil, ConversionMapService, ItemCreateService, ItemEntryService, KeyService, LockService, QueryService, RequestBufferManager } from '../classes';
|
|
2
2
|
import { TemplateCache } from '../classes/TemplateCache';
|
|
3
|
-
import { ChangesDeltaFactory,
|
|
3
|
+
import { ChangesDeltaFactory, CollectionEntryFactory, CollectionMatcherFactory, CollectionResourceFactory, ColumnExpansionFactory, ColumnSetFactory, ColumnSubsetCacheFactory, ItemCacheFactory, ItemEntryFactory, ItemResourceFactory, ModuleChangesCompilationFactory, QueryMatcherFactory, QueryParserFactory, RequestColumnExpansionFactory } from '../factories';
|
|
4
4
|
import { AuthInterface } from './AuthInterface';
|
|
5
5
|
import { ErrorHandlerInterface } from './ErrorHandlerInterface';
|
|
6
6
|
import { ExceptionHandlerInterface } from './ExceptionHandlerInterface';
|
|
@@ -11,7 +11,6 @@ export interface AbstractCacheDependencyInterface {
|
|
|
11
11
|
apiRequestService: ApiRequestService;
|
|
12
12
|
authInterface: AuthInterface;
|
|
13
13
|
changesDeltaFactory: ChangesDeltaFactory;
|
|
14
|
-
collectionCacheFactory: CollectionCacheFactory;
|
|
15
14
|
collectionEntryFactory: CollectionEntryFactory;
|
|
16
15
|
collectionEntryService: CollectionEntryService;
|
|
17
16
|
collectionMatcherFactory: CollectionMatcherFactory;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CollectionEntryService, ColumnHandler, ColumnUtil, KeyService, QueryService } from '../classes';
|
|
2
|
-
import { ChangesDeltaFactory,
|
|
2
|
+
import { ChangesDeltaFactory, CollectionMatcherFactory, ColumnExpansionFactory, ColumnSubsetCacheFactory, RequestColumnExpansionFactory } from '../factories';
|
|
3
3
|
import { ErrorHandlerInterface } from './ErrorHandlerInterface';
|
|
4
4
|
import { ExceptionHandlerInterface } from './ExceptionHandlerInterface';
|
|
5
5
|
import { PromiseLibraryInterface } from './PromiseLibraryInterface';
|
|
@@ -9,7 +9,6 @@ export interface TransactionCollectionHandlerDependencyInterface {
|
|
|
9
9
|
columnSubsetCacheFactory: ColumnSubsetCacheFactory;
|
|
10
10
|
columnExpansionFactory: ColumnExpansionFactory;
|
|
11
11
|
changesDeltaFactory: ChangesDeltaFactory;
|
|
12
|
-
collectionCacheFactory: CollectionCacheFactory;
|
|
13
12
|
collectionEntryService: CollectionEntryService;
|
|
14
13
|
collectionMatcherFactory: CollectionMatcherFactory;
|
|
15
14
|
columnHandler: ColumnHandler;
|
|
@@ -1,24 +1,23 @@
|
|
|
1
|
-
import { CollectionEntryService, ColumnExpansion, ColumnSet, KeyService } from '../classes';
|
|
1
|
+
import { CollectionEntryService, ColumnCache, ColumnExpansion, ColumnSet, KeyService, QueryService } from '../classes';
|
|
2
2
|
import { ColumnSetFactory } from '../factories';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { CollectionQuery, EntryParentNull, ItemType, PromiseInterface } from '../types';
|
|
4
|
+
import { CollectionOptions } from './CollectionOptions';
|
|
5
5
|
export declare class CollectionEntry<ItemTypeType extends ItemType = any> {
|
|
6
6
|
private collectionEntryService;
|
|
7
|
+
private queryService;
|
|
7
8
|
private columnSetFactory;
|
|
8
9
|
private keyService;
|
|
10
|
+
private columnCache;
|
|
9
11
|
itemType: ItemTypeType;
|
|
10
|
-
options:
|
|
12
|
+
options: CollectionOptions;
|
|
11
13
|
id: number;
|
|
12
14
|
parent: EntryParentNull;
|
|
13
15
|
query: CollectionQuery;
|
|
14
16
|
columns: ColumnSet<ItemTypeType>;
|
|
15
17
|
reloadQueued: boolean;
|
|
16
18
|
promise: PromiseInterface<this>;
|
|
17
|
-
constructor(collectionEntryService: CollectionEntryService, columnSetFactory: ColumnSetFactory, keyService: KeyService, itemType: ItemTypeType, options:
|
|
19
|
+
constructor(collectionEntryService: CollectionEntryService, queryService: QueryService, columnSetFactory: ColumnSetFactory, keyService: KeyService, columnCache: ColumnCache, itemType: ItemTypeType, options: CollectionOptions);
|
|
18
20
|
isLocal(): boolean;
|
|
19
|
-
matchParent(itemType: ItemType, itemId: ItemId): boolean;
|
|
20
|
-
extendQuery(callback?: QueryCallback): ApiQuery;
|
|
21
21
|
queueReload(): void;
|
|
22
22
|
expandColumns(columnExpansion: ColumnExpansion<ItemTypeType>): void;
|
|
23
|
-
expandRequestColumns(requestColumns: ApiRequestColumns): void;
|
|
24
23
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CollectionResource, ItemResource } from '../models';
|
|
2
|
+
import { ApiQuery, ApiRequestColumns, ApiRequestLimit, EntryParentNull, FieldChangeCallback, ItemType } from '../types';
|
|
3
|
+
export declare type CollectionResourceCallback<ItemTypeType extends ItemType> = (itemResources: Array<ItemResource<ItemTypeType>>, collectionResource: CollectionResource<ItemTypeType>, isCalledAfterSocketUpdate: boolean) => void;
|
|
4
|
+
export declare type CollectionResourceOnAddCallback<ItemTypeType extends ItemType> = (itemResources: Array<ItemResource<ItemTypeType>>, collectionResource: CollectionResource<ItemTypeType>, isInitialCall: boolean, isCalledAfterSocketUpdate: boolean) => void;
|
|
5
|
+
export declare type CollectionOptionsInterface<ItemTypeType extends ItemType> = Partial<CollectionOptions<ItemTypeType>>;
|
|
6
|
+
export declare class CollectionOptions<ItemTypeType extends ItemType = any> {
|
|
7
|
+
columns: ApiRequestColumns;
|
|
8
|
+
query: ApiQuery | null;
|
|
9
|
+
queryColumns: ApiRequestColumns;
|
|
10
|
+
parent: EntryParentNull;
|
|
11
|
+
limit: ApiRequestLimit | null;
|
|
12
|
+
onAdd: CollectionResourceOnAddCallback<ItemTypeType>;
|
|
13
|
+
onRemove: CollectionResourceCallback<ItemTypeType>;
|
|
14
|
+
onChange: FieldChangeCallback;
|
|
15
|
+
custom: any;
|
|
16
|
+
callOnAddWithInitialItems: boolean;
|
|
17
|
+
constructor(values: CollectionOptionsInterface<ItemTypeType>);
|
|
18
|
+
}
|