@rentman/rm-core 7.1.1 → 8.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 +10 -0
- package/dist/rm-core.js +1176 -917
- package/dist/rm-core.min.js +2 -2
- package/dist/types/classes/ApiFormatter.d.ts +16 -15
- package/dist/types/classes/ApiRequestService.d.ts +9 -8
- package/dist/types/classes/ApiResponseProcessor.d.ts +12 -13
- package/dist/types/classes/ChangesCompilation.d.ts +5 -3
- package/dist/types/classes/ChangesDelta.d.ts +5 -4
- package/dist/types/classes/ChangesDeltaBase.d.ts +5 -5
- package/dist/types/classes/CollectionEntryService.d.ts +5 -4
- package/dist/types/classes/CollectionMatcherBase.d.ts +5 -4
- package/dist/types/classes/CollectionMatcherCachedCollectionProcessor.d.ts +6 -5
- package/dist/types/classes/CollectionResourceService.d.ts +2 -2
- package/dist/types/classes/ColumnCache.d.ts +8 -7
- package/dist/types/classes/ColumnExpansion.d.ts +3 -2
- package/dist/types/classes/ColumnHandler.d.ts +9 -8
- package/dist/types/classes/ColumnInfo.d.ts +6 -6
- package/dist/types/classes/ColumnSet.d.ts +5 -4
- package/dist/types/classes/ColumnSubsetCache.d.ts +3 -2
- package/dist/types/classes/ColumnUtil.d.ts +12 -11
- package/dist/types/classes/ConversionMapService.d.ts +6 -5
- package/dist/types/classes/CreateRequest.d.ts +5 -4
- package/dist/types/classes/CreatedChangesDelta.d.ts +7 -6
- package/dist/types/classes/InternalChangesDelta.d.ts +4 -3
- package/dist/types/classes/ItemCache.d.ts +13 -12
- package/dist/types/classes/ItemCreateService.d.ts +5 -4
- package/dist/types/classes/ItemEntryService.d.ts +8 -7
- package/dist/types/classes/KeyService.d.ts +7 -6
- package/dist/types/classes/LockService.d.ts +11 -11
- package/dist/types/classes/ModuleChangesCompilation.d.ts +3 -2
- package/dist/types/classes/QueryColumnExtractor.d.ts +11 -11
- package/dist/types/classes/QueryContainsLocalIdParser.d.ts +10 -10
- package/dist/types/classes/QueryLinkedToParser.d.ts +11 -11
- package/dist/types/classes/QueryLocallyMatchableParser.d.ts +10 -10
- package/dist/types/classes/QueryMatcher.d.ts +4 -3
- package/dist/types/classes/QueryParser.d.ts +15 -13
- package/dist/types/classes/QueryParserBase.d.ts +14 -23
- package/dist/types/classes/QueryParserIdUpdater.d.ts +10 -10
- package/dist/types/classes/QueryService.d.ts +4 -9
- package/dist/types/classes/RequestBuffer.d.ts +5 -4
- package/dist/types/classes/RequestBufferManager.d.ts +5 -4
- package/dist/types/classes/RequestColumnExpansion.d.ts +4 -3
- package/dist/types/classes/SocketMessageHandler.d.ts +4 -3
- package/dist/types/classes/TemplateCache.d.ts +4 -3
- package/dist/types/classes/Util.d.ts +1 -1
- package/dist/types/classes/cache/AbstractCache.d.ts +8 -8
- package/dist/types/classes/cache/CachedQueryHandlerBase.d.ts +13 -12
- package/dist/types/classes/cache/CollectionMatcherCachedQueryProcessor.d.ts +6 -5
- package/dist/types/classes/cache/ItemHandlerBase.d.ts +14 -11
- package/dist/types/classes/cache/server/ServerCache.d.ts +8 -7
- package/dist/types/classes/cache/server/ServerCachedQueryHandler.d.ts +6 -6
- package/dist/types/classes/cache/server/ServerItemHandler.d.ts +10 -9
- package/dist/types/classes/cache/transaction/TransactionCache.d.ts +31 -30
- package/dist/types/classes/cache/transaction/TransactionCachedQueryHandler.d.ts +6 -6
- package/dist/types/classes/cache/transaction/TransactionCollectionHandler.d.ts +3 -2
- package/dist/types/classes/cache/transaction/TransactionItemHandler.d.ts +23 -20
- package/dist/types/classes/cache/transaction/TransactionValidator.d.ts +3 -2
- package/dist/types/constants.d.ts +1 -1
- package/dist/types/factories/CollectionEntryFactory.d.ts +2 -2
- package/dist/types/factories/CollectionMatcherFactory.d.ts +4 -4
- package/dist/types/factories/CollectionResourceFactory.d.ts +2 -2
- package/dist/types/factories/ColumnExpansionFactory.d.ts +3 -2
- package/dist/types/factories/ColumnInfoFactory.d.ts +4 -3
- package/dist/types/factories/ColumnSetFactory.d.ts +6 -5
- package/dist/types/factories/ColumnSubsetCacheFactory.d.ts +3 -2
- package/dist/types/factories/CreateRequestFactory.d.ts +2 -2
- package/dist/types/factories/ItemEntryFactory.d.ts +2 -2
- package/dist/types/factories/ItemResourceFactory.d.ts +2 -2
- package/dist/types/factories/QueryMatcherFactory.d.ts +3 -2
- package/dist/types/factories/TemplateFactory.d.ts +3 -2
- package/dist/types/interfaces/ApiRequestServiceInterface.d.ts +9 -8
- package/dist/types/interfaces/AuthInterface.d.ts +2 -1
- package/dist/types/interfaces/LinkTreeServiceInterface.d.ts +1 -1
- package/dist/types/models/CollectionEntry.d.ts +5 -4
- package/dist/types/models/CollectionOptions.d.ts +14 -8
- package/dist/types/models/CollectionResource.d.ts +27 -26
- package/dist/types/models/ItemEntry.d.ts +2 -2
- package/dist/types/models/ItemResource.d.ts +18 -14
- package/dist/types/models/Template.d.ts +4 -3
- package/dist/types/types/ItemTypesCollection.d.ts +138 -55
- package/package.json +5 -3
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { ApiEnumItemType } from '@rentman/backend-types';
|
|
1
2
|
import { RmCore } from '../../core';
|
|
2
3
|
import { AbstractCacheDependencyInterface } from '../../interfaces';
|
|
3
4
|
import { ItemEntry } from '../../models';
|
|
4
|
-
import { ApiRequestColumn, CollectionQuery, CollectionResourceParentIdMap, EntryParentNull, FieldMap, ItemIdConversionMap,
|
|
5
|
+
import { ApiRequestColumn, CollectionQuery, CollectionResourceParentIdMap, EntryParentNull, FieldMap, ItemIdConversionMap, PromiseInterface } from '../../types';
|
|
5
6
|
import { ChangesDelta } from '../ChangesDelta';
|
|
6
7
|
import { ChangesDeltaResult } from '../ChangesDeltaBase';
|
|
7
8
|
import { OnAfterCreateCallback } from '../ChangesProcessor';
|
|
@@ -32,12 +33,12 @@ export declare abstract class AbstractCache {
|
|
|
32
33
|
*
|
|
33
34
|
* todo[limit] move to TransactionCache ?
|
|
34
35
|
*/
|
|
35
|
-
abstract expandCollectionResources<ItemTypeType extends
|
|
36
|
+
abstract expandCollectionResources<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, collections: CollectionResourceParentIdMap<ItemTypeType>, newColumns: ApiRequestColumn[]): PromiseInterface<CollectionResourceParentIdMap>;
|
|
36
37
|
/**
|
|
37
38
|
* @description
|
|
38
39
|
* Returns {@link ItemEntry ItemEntries} that fit the collection's query, copies over the collectionChanges on all transactions in the chain.
|
|
39
40
|
*/
|
|
40
|
-
abstract getCollectionChangesRecursively<ItemTypeType extends
|
|
41
|
+
abstract getCollectionChangesRecursively<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery): CachedQueryItem<ItemTypeType> | undefined;
|
|
41
42
|
/**
|
|
42
43
|
* @description
|
|
43
44
|
* Returns this transaction and all parents
|
|
@@ -50,7 +51,7 @@ export declare abstract class AbstractCache {
|
|
|
50
51
|
getCurrentItemEntryCache(): ItemCache;
|
|
51
52
|
abstract getServerCache(): ServerCache;
|
|
52
53
|
abstract getLocalItemEntry(itemEntryId: ItemEntry['id']): ItemEntry | undefined;
|
|
53
|
-
abstract getLocalItemEntryByItemId(itemType:
|
|
54
|
+
abstract getLocalItemEntryByItemId(itemType: ApiEnumItemType, itemId: ItemEntry['itemId']): ItemEntry | undefined;
|
|
54
55
|
/**
|
|
55
56
|
* @description
|
|
56
57
|
* Applies changes from a child transaction to a parent
|
|
@@ -68,7 +69,7 @@ export declare abstract class AbstractCache {
|
|
|
68
69
|
* @internal
|
|
69
70
|
*/
|
|
70
71
|
abstract applyChangesFromParent(internalChangesDelta: InternalChangesDelta, isCalledAfterApiSave: boolean, isCalledAfterSocketUpdate: boolean): void;
|
|
71
|
-
abstract getParent<ItemTypeType extends
|
|
72
|
+
abstract getParent<ItemTypeType extends ApiEnumItemType = any>(itemEntry: ItemEntry<ItemTypeType>, fromInitial?: boolean, providedFields?: FieldMap<ItemTypeType>): EntryParentNull;
|
|
72
73
|
abstract getItemChangesRecursively(itemEntryId: ItemEntry['id'], copyFields?: boolean): FieldMap;
|
|
73
74
|
abstract getLocalItemEntryChangesTuple(itemEntryId: ItemEntry['id']): any;
|
|
74
75
|
/**
|
|
@@ -80,9 +81,9 @@ export declare abstract class AbstractCache {
|
|
|
80
81
|
*
|
|
81
82
|
* @internal
|
|
82
83
|
*/
|
|
83
|
-
abstract getChangesFromItemChanges<ItemTypeType extends
|
|
84
|
+
abstract getChangesFromItemChanges<ItemTypeType extends ApiEnumItemType = any>(changesObject: ServerItemEntryChanges<ItemTypeType> | TransactionItemEntryChanges<FieldMap<ItemTypeType>>): FieldMap<ItemTypeType>;
|
|
84
85
|
abstract applyChangesDelta(changesDelta: ChangesDelta): PromiseInterface<ChangesDeltaResult>;
|
|
85
|
-
protected getParentFromFields<ItemTypeType extends
|
|
86
|
+
protected getParentFromFields<ItemTypeType extends ApiEnumItemType = any>(itemEntry: ItemEntry<ItemTypeType>, fields: FieldMap<ItemTypeType>): EntryParentNull;
|
|
86
87
|
/**
|
|
87
88
|
* @description
|
|
88
89
|
* Called by applyChangesDelta from ServerCache and TransactionCache. Applies creates, updates and moves, doesn't apply deletes
|
|
@@ -93,7 +94,6 @@ export declare abstract class AbstractCache {
|
|
|
93
94
|
result: ChangesDeltaResult;
|
|
94
95
|
internalChangesDelta: InternalChangesDelta;
|
|
95
96
|
matchingDelta: InternalChangesDelta;
|
|
96
|
-
rollbackFunctions: Array<(changesDelta: ChangesDelta) => void>;
|
|
97
97
|
};
|
|
98
98
|
/**
|
|
99
99
|
* @description
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
|
|
1
2
|
import { RequestColumnExpansionFactory } from '../../factories';
|
|
2
3
|
import { PromiseLibraryInterface } from '../../interfaces';
|
|
3
4
|
import { ItemEntry } from '../../models';
|
|
4
5
|
import { CollectionOptions } from '../../models/CollectionOptions';
|
|
5
|
-
import { ApiQuery, ApiRequestColumns, CollectionQuery,
|
|
6
|
+
import { ApiQuery, ApiRequestColumns, CollectionQuery, ParentIdMap, PromiseInterface } from '../../types';
|
|
6
7
|
import { CollectionEntryService } from '../CollectionEntryService';
|
|
7
8
|
import { ColumnSubsetCache } from '../ColumnSubsetCache';
|
|
8
9
|
import { ColumnUtil } from '../ColumnUtil';
|
|
9
10
|
import { AbstractCache } from './AbstractCache';
|
|
10
|
-
export declare type CachedQueryItem<ItemTypeType extends
|
|
11
|
+
export declare type CachedQueryItem<ItemTypeType extends ApiEnumItemType = any> = {
|
|
11
12
|
itemType: ItemTypeType;
|
|
12
13
|
query: CollectionQuery;
|
|
13
14
|
items: Array<ItemEntry<ItemTypeType>>;
|
|
@@ -35,40 +36,40 @@ export declare abstract class CachedQueryHandlerBase {
|
|
|
35
36
|
};
|
|
36
37
|
};
|
|
37
38
|
protected constructor(collectionEntryService: CollectionEntryService, columnUtil: ColumnUtil, requestColumnExpansionFactory: RequestColumnExpansionFactory, promiseService: PromiseLibraryInterface, transaction: AbstractCache);
|
|
38
|
-
setCachedQuery<ItemTypeType extends
|
|
39
|
-
getCachedQueryItems<ItemTypeType extends
|
|
40
|
-
getCachedQueryObjectsByItemType(itemType:
|
|
41
|
-
initCachedQuery<ItemTypeType extends
|
|
39
|
+
setCachedQuery<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>, requestColumns: ApiRequestColumns): CachedQueryItem<ItemTypeType>;
|
|
40
|
+
getCachedQueryItems<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, queryString: string): undefined | Array<ItemEntry<ItemTypeType>>;
|
|
41
|
+
getCachedQueryObjectsByItemType(itemType: ApiEnumItemType): CachedQueryItem[];
|
|
42
|
+
initCachedQuery<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery, requestColumns: ApiRequestColumns): CachedQueryItem<ItemTypeType>;
|
|
42
43
|
/**
|
|
43
44
|
* @description
|
|
44
45
|
* Fetches a {@link CollectionEntry CollectionEntry} with the given options
|
|
45
46
|
*/
|
|
46
|
-
abstract __fetchCachedQueryItem<ItemTypeType extends
|
|
47
|
+
abstract __fetchCachedQueryItem<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<CachedQueryItem<ItemTypeType>>;
|
|
47
48
|
/**
|
|
48
49
|
* @description
|
|
49
50
|
* Fetches collections linked to the passed parents
|
|
50
51
|
*/
|
|
51
|
-
abstract __fetchItemEntriesByQueryData<ItemTypeType extends
|
|
52
|
+
abstract __fetchItemEntriesByQueryData<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, collectionQuery: CollectionQuery): PromiseInterface<CachedQueryItem<ItemTypeType>>;
|
|
52
53
|
/**
|
|
53
54
|
* @description
|
|
54
55
|
* Fetches collections linked to the passed parents
|
|
55
56
|
*/
|
|
56
|
-
abstract __fetchLinkedCachedQueryItems<ItemTypeType extends
|
|
57
|
+
abstract __fetchLinkedCachedQueryItems<ItemTypeType extends ApiEnumItemType>(parentType: ApiEnumItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<ParentIdMap<CachedQueryItem<ItemTypeType>>>;
|
|
57
58
|
/**
|
|
58
59
|
* @description
|
|
59
60
|
* Adds the passed {@link ItemEntry ItemEntries} to the Transaction's query cache,
|
|
60
61
|
* will skip the ItemEntry if the `skipEntryFilterFn` callback returns `true`
|
|
61
62
|
*/
|
|
62
|
-
protected __addItemEntriesToCachedQueries<ItemTypeType extends
|
|
63
|
+
protected __addItemEntriesToCachedQueries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>, skipEntryFilterFn: (temEntry: ItemEntry) => boolean): void;
|
|
63
64
|
/**
|
|
64
65
|
* @description
|
|
65
66
|
* Removes the passed {@link ItemId ItemIds} from the Transaction's query cache
|
|
66
67
|
*/
|
|
67
|
-
__removeItemEntriesFromCachedQueries<ItemTypeType extends
|
|
68
|
+
__removeItemEntriesFromCachedQueries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>): Array<ItemEntry<ItemTypeType>>;
|
|
68
69
|
/**
|
|
69
70
|
* @description
|
|
70
71
|
* Expands the option's {@link CollectionOptions.columns columns} with the columns required for the {@link CollectionMatcherCachedCollectionProcessor CollectionMatcher} to function.
|
|
71
72
|
* Data fetched for a parent transaction might also fit in a child transaction, so those {@link CollectionOptions.queryColumns queryColumns} should also be taken into account
|
|
72
73
|
*/
|
|
73
|
-
expandColumnsWithQueryColumns(itemType:
|
|
74
|
+
expandColumnsWithQueryColumns(itemType: ApiEnumItemType, options: CollectionOptions, query: ApiQuery): void;
|
|
74
75
|
}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
+
import { ApiEnumItemType } from '@rentman/backend-types';
|
|
1
2
|
import { QueryMatcherFactory } from '../../factories';
|
|
2
3
|
import { PromiseLibraryInterface } from '../../interfaces';
|
|
3
4
|
import { ItemEntry } from '../../models';
|
|
4
|
-
import { CollectionQuery,
|
|
5
|
+
import { CollectionQuery, PromiseInterface } from '../../types';
|
|
5
6
|
import { ApiRequestService } from '../ApiRequestService';
|
|
6
7
|
import { ChangesDeltaBase } from '../ChangesDeltaBase';
|
|
7
8
|
import { CollectionMatcherBase, CollectionMatcherMatches } from '../CollectionMatcherBase';
|
|
8
9
|
import { QueryService } from '../QueryService';
|
|
9
10
|
import { AbstractCache } from './AbstractCache';
|
|
10
11
|
import { CachedQueryItem } from './CachedQueryHandlerBase';
|
|
11
|
-
export declare type GroupedCollectionMatcherResult<ItemTypeType extends
|
|
12
|
+
export declare type GroupedCollectionMatcherResult<ItemTypeType extends ApiEnumItemType> = {
|
|
12
13
|
fitting: Array<ItemEntry<ItemTypeType>>;
|
|
13
14
|
notFitting: Array<ItemEntry<ItemTypeType>>;
|
|
14
15
|
maybe: Array<ItemEntry<ItemTypeType>>;
|
|
@@ -23,13 +24,13 @@ export declare class CollectionMatcherCachedQueryProcessor extends CollectionMat
|
|
|
23
24
|
private getQueries;
|
|
24
25
|
protected map: {
|
|
25
26
|
[itemTypeAndQueryString: string]: {
|
|
26
|
-
itemType:
|
|
27
|
+
itemType: ApiEnumItemType;
|
|
27
28
|
query: CollectionQuery;
|
|
28
29
|
matches: CollectionMatcherMatches;
|
|
29
30
|
cachedQuery: CachedQueryItem;
|
|
30
31
|
};
|
|
31
32
|
};
|
|
32
|
-
constructor(apiRequestService: ApiRequestService, promiseService: PromiseLibraryInterface, queryService: QueryService, queryMatcherFactory: QueryMatcherFactory, transaction: AbstractCache, getQueries: (itemType:
|
|
33
|
+
constructor(apiRequestService: ApiRequestService, promiseService: PromiseLibraryInterface, queryService: QueryService, queryMatcherFactory: QueryMatcherFactory, transaction: AbstractCache, getQueries: <ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType) => Array<CachedQueryItem<ItemTypeType>>);
|
|
33
34
|
__removeFromAndAddToCachedQueries(_isCalledAfterSocketUpdate?: boolean, changesDelta?: ChangesDeltaBase): PromiseInterface<void[]>;
|
|
34
|
-
protected _expand<ItemTypeType extends
|
|
35
|
+
protected _expand<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, matchFunction: (itemType: ItemTypeType, parsedQuery: CollectionQuery) => boolean | 'maybe'): this;
|
|
35
36
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
|
|
1
2
|
import { ItemCacheFactory, ItemEntryFactory, RequestColumnExpansionFactory } from '../../factories';
|
|
2
3
|
import { ErrorHandlerInterface, PromiseLibraryInterface } from '../../interfaces';
|
|
3
4
|
import { ItemEntry, ItemEntryOptions } from '../../models';
|
|
4
|
-
import { ApiQuery, ApiRequestColumns, FieldMap,
|
|
5
|
+
import { ApiQuery, ApiRequestColumns, FieldMap, PromiseInterface } from '../../types';
|
|
5
6
|
import { ApiFormatter } from '../ApiFormatter';
|
|
6
7
|
import { ChangesDeltaBase, ChangesDeltaItemUpdateDelta } from '../ChangesDeltaBase';
|
|
7
8
|
import { ColumnInfo } from '../ColumnInfo';
|
|
@@ -16,7 +17,7 @@ export declare enum ItemCacheStatus {
|
|
|
16
17
|
NOT_CACHED = "not_cached",
|
|
17
18
|
NO_CHANGES = "no_changes"
|
|
18
19
|
}
|
|
19
|
-
export declare type ProcessItemEntryChangesResult<ItemTypeType extends
|
|
20
|
+
export declare type ProcessItemEntryChangesResult<ItemTypeType extends ApiEnumItemType> = {
|
|
20
21
|
status: ItemCacheStatus.NO_CHANGES | ItemCacheStatus.NOT_CACHED;
|
|
21
22
|
previous: null;
|
|
22
23
|
} | {
|
|
@@ -32,7 +33,9 @@ export declare abstract class ItemHandlerBase {
|
|
|
32
33
|
protected requestColumnExpansionFactory: RequestColumnExpansionFactory;
|
|
33
34
|
protected transaction: AbstractCache;
|
|
34
35
|
readonly entries: ItemCache;
|
|
35
|
-
abstract itemChanges:
|
|
36
|
+
abstract itemChanges: {
|
|
37
|
+
[itemEntryId: string]: ServerItemEntryChanges | TransactionItemEntryChanges;
|
|
38
|
+
};
|
|
36
39
|
protected constructor(columnUtil: ColumnUtil, apiFormatter: ApiFormatter, itemEntryFactory: ItemEntryFactory, promiseService: PromiseLibraryInterface, errorHandler: ErrorHandlerInterface, requestColumnExpansionFactory: RequestColumnExpansionFactory, itemCacheFactory: ItemCacheFactory, transaction: AbstractCache);
|
|
37
40
|
/**
|
|
38
41
|
* @description
|
|
@@ -45,22 +48,22 @@ export declare abstract class ItemHandlerBase {
|
|
|
45
48
|
* @description
|
|
46
49
|
* Fetches the ItemEntries for the given query, does not look in the cache, since we don't know which ItemIds belong to the query !
|
|
47
50
|
*/
|
|
48
|
-
abstract fetchItemEntriesByQuery<ItemTypeType extends
|
|
51
|
+
abstract fetchItemEntriesByQuery<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, query: ApiQuery, entryOptions: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
|
|
49
52
|
/**
|
|
50
53
|
* @description
|
|
51
54
|
* Fetches the ItemEntries for the given ItemIds
|
|
52
55
|
*/
|
|
53
|
-
abstract fetchItemEntries<ItemTypeType extends
|
|
56
|
+
abstract fetchItemEntries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
|
|
54
57
|
/**
|
|
55
58
|
* @description
|
|
56
59
|
* Fetches an ItemEntry with the given itemId
|
|
57
60
|
*/
|
|
58
|
-
abstract fetchItemEntry<ItemTypeType extends
|
|
61
|
+
abstract fetchItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
|
|
59
62
|
/**
|
|
60
63
|
* @description
|
|
61
64
|
* Processes the passed {@link ChangesDeltaItemUpdateDelta update delta} on the transaction, if there are no {@link TransactionItemHandler.itemChanges itemChanges} the new values will not be processed
|
|
62
65
|
*/
|
|
63
|
-
abstract processItemEntryChanges<ItemTypeType extends
|
|
66
|
+
abstract processItemEntryChanges<ItemTypeType extends ApiEnumItemType>(itemEntryChangesTuple: ChangesDeltaItemUpdateDelta<ItemTypeType>, forceOverwrite: boolean, updateInitial: boolean, isCalledAfterSocketUpdate: boolean, createItemChangesIfNoneExist: boolean): ProcessItemEntryChangesResult<ItemTypeType>;
|
|
64
67
|
/**
|
|
65
68
|
* @description
|
|
66
69
|
* Traverses the column path and returns the fields of the derived item, returns undefined if the item isn't found
|
|
@@ -89,8 +92,8 @@ export declare abstract class ItemHandlerBase {
|
|
|
89
92
|
* Recursively fetches derived values as separate requests, instead of as columns of a primary item
|
|
90
93
|
* Can be used when derived values of a local item have to be fetched, since a local item can't be used as root item of a query
|
|
91
94
|
*/
|
|
92
|
-
fetchDerivedValuesByColumn<ItemTypeType extends
|
|
93
|
-
resolveDerivedValues<ItemTypeType extends
|
|
95
|
+
fetchDerivedValuesByColumn<ItemTypeType extends ApiEnumItemType>(itemEntries: Array<ItemEntry<ItemTypeType>>, rootColumn: ColumnInfo<ItemTypeType>, changesDelta?: ChangesDeltaBase): PromiseInterface<void | Array<ItemEntry<ItemTypeType>>>;
|
|
96
|
+
resolveDerivedValues<ItemTypeType extends ApiEnumItemType>(itemEntries: Array<ItemEntry<ItemTypeType>>, columns: Array<ColumnInfo<ItemTypeType>>, changesDelta?: ChangesDeltaBase): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
|
|
94
97
|
/**
|
|
95
98
|
* @description
|
|
96
99
|
* Creates a new {@link ItemEntry ItemEntry} from the passed {@link ChangesDeltaItemCreateDelta ChangesDeltaItemCreateDelta} and stores it in this transaction's {@link ItemCache ItemCache}
|
|
@@ -100,6 +103,6 @@ export declare abstract class ItemHandlerBase {
|
|
|
100
103
|
* @description
|
|
101
104
|
* Gets the value of the given column, will look into the current delta before attempting to read itemChanges
|
|
102
105
|
*/
|
|
103
|
-
protected getItemIdByColumn<ItemTypeType extends
|
|
104
|
-
expandColumnsWithCachedQueryColumns(itemType:
|
|
106
|
+
protected getItemIdByColumn<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, column: ColumnInfo<ItemTypeType>, changesDelta?: ChangesDeltaBase): ItemId;
|
|
107
|
+
expandColumnsWithCachedQueryColumns(itemType: ApiEnumItemType, requestColumns?: ApiRequestColumns): ApiRequestColumns;
|
|
105
108
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { ApiEnumItemType } from '@rentman/backend-types';
|
|
1
2
|
import { ChangesDelta, InternalChangesDelta, TransactionCache, TransactionValidatorFactory } from '../..';
|
|
2
3
|
import { RmCore } from '../../../core';
|
|
3
4
|
import { ServerCacheDependencyInterface } from '../../../interfaces/ServerCacheDependencyInterface';
|
|
4
5
|
import { ItemEntry } from '../../../models';
|
|
5
|
-
import { ApiRequestColumn, ApiRequestColumnMap, CollectionQuery, CollectionResourceParentIdMap, EntryParent, EntryParentNull, FieldMap, ItemIdConversionMap,
|
|
6
|
+
import { ApiRequestColumn, ApiRequestColumnMap, CollectionQuery, CollectionResourceParentIdMap, EntryParent, EntryParentNull, FieldMap, ItemIdConversionMap, PromiseInterface } from '../../../types';
|
|
6
7
|
import { ApiResponseProcessor } from '../../ApiResponseProcessor';
|
|
7
8
|
import { ChangesDeltaResult } from '../../ChangesDeltaBase';
|
|
8
9
|
import { OnAfterCreateCallback } from '../../ChangesProcessor';
|
|
@@ -25,7 +26,7 @@ export declare class ServerCache extends AbstractCache {
|
|
|
25
26
|
constructor(dependencies: ServerCacheDependencyInterface, core: RmCore);
|
|
26
27
|
getServerCache(): ServerCache;
|
|
27
28
|
createChild(id?: string, validatorFactory?: TransactionValidatorFactory): TransactionCache;
|
|
28
|
-
expandCollectionResources<ItemTypeType extends
|
|
29
|
+
expandCollectionResources<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, collections: CollectionResourceParentIdMap<ItemTypeType>, newRequestColumns: ApiRequestColumn[]): PromiseInterface<CollectionResourceParentIdMap>;
|
|
29
30
|
processResponse(response: ApiResponseProcessor, requestColumnMap: ApiRequestColumnMap, isCalledAfterApiSave?: boolean, isCalledAfterSocketUpdate?: boolean, changesDelta?: ChangesDelta): PromiseInterface<ChangesDeltaResult>;
|
|
30
31
|
/**
|
|
31
32
|
* @description
|
|
@@ -36,7 +37,7 @@ export declare class ServerCache extends AbstractCache {
|
|
|
36
37
|
* @description
|
|
37
38
|
* Gets the fields required to set the parent
|
|
38
39
|
*/
|
|
39
|
-
getLinkFieldsByParent<ItemTypeType extends
|
|
40
|
+
getLinkFieldsByParent<ItemTypeType extends ApiEnumItemType>(parent: EntryParent, itemType: ItemTypeType): Partial<FieldMap<ItemTypeType>>;
|
|
40
41
|
/**
|
|
41
42
|
* @description
|
|
42
43
|
* Gets the entry's parent
|
|
@@ -48,7 +49,7 @@ export declare class ServerCache extends AbstractCache {
|
|
|
48
49
|
* @remark
|
|
49
50
|
* Use {@link CollectionResource.getParent CollectionResource.getParent} instead of {@link TransactionCache.getParent TransactionCache.getParent} if you're getting the parent in the onRemove callback
|
|
50
51
|
*/
|
|
51
|
-
getParent<ItemTypeType extends
|
|
52
|
+
getParent<ItemTypeType extends ApiEnumItemType = any>(itemEntry: ItemEntry<ItemTypeType>, _fromInitial?: boolean, _providedFields?: FieldMap<ItemTypeType>): EntryParentNull;
|
|
52
53
|
getItemChangesRecursively(itemEntryId: ItemEntry['id'], copyFields?: boolean): FieldMap;
|
|
53
54
|
/**
|
|
54
55
|
* @description
|
|
@@ -58,7 +59,7 @@ export declare class ServerCache extends AbstractCache {
|
|
|
58
59
|
entry: ItemEntry;
|
|
59
60
|
changes: ServerItemEntryChanges;
|
|
60
61
|
};
|
|
61
|
-
getCollectionChangesRecursively<ItemTypeType extends
|
|
62
|
+
getCollectionChangesRecursively<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery): CachedQueryItem<ItemTypeType> | undefined;
|
|
62
63
|
/**
|
|
63
64
|
* @description
|
|
64
65
|
* Invalidates the complete server cache, all items will be re-fetched whenever they are requested
|
|
@@ -77,6 +78,6 @@ export declare class ServerCache extends AbstractCache {
|
|
|
77
78
|
*/
|
|
78
79
|
applyChangesDelta(changesDelta: ChangesDelta, isCalledAfterApiSave?: boolean, isCalledAfterSocketUpdate?: boolean): PromiseInterface<ChangesDeltaResult>;
|
|
79
80
|
getLocalItemEntry(itemEntryId: ItemEntry['id']): ItemEntry | undefined;
|
|
80
|
-
getLocalItemEntryByItemId(itemType:
|
|
81
|
-
getChangesFromItemChanges<ItemTypeType extends
|
|
81
|
+
getLocalItemEntryByItemId(itemType: ApiEnumItemType, itemId: ItemEntry['itemId']): ItemEntry | undefined;
|
|
82
|
+
getChangesFromItemChanges<ItemTypeType extends ApiEnumItemType = any>(changesObject: ServerItemEntryChanges<ItemTypeType>): FieldMap<ItemTypeType>;
|
|
82
83
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
|
|
1
2
|
import { ColumnSubsetCacheFactory, RequestColumnExpansionFactory } from '../../../factories';
|
|
2
3
|
import { ApiRequestColumns, ApiRequestService, CollectionQuery, ColumnSubsetCache, ColumnUtil, ParentIdMap, PromiseInterface } from '../../../index';
|
|
3
4
|
import { ErrorHandlerInterface, PromiseLibraryInterface } from '../../../interfaces';
|
|
4
5
|
import { ItemEntry } from '../../../models';
|
|
5
6
|
import { CollectionOptions } from '../../../models/CollectionOptions';
|
|
6
|
-
import { ItemId, ItemType } from '../../../types';
|
|
7
7
|
import { CollectionEntryService } from '../../index';
|
|
8
8
|
import { RequestBufferManager } from '../../RequestBufferManager';
|
|
9
9
|
import { CachedQueryHandlerBase, CachedQueryItem } from '../CachedQueryHandlerBase';
|
|
@@ -17,18 +17,18 @@ export declare class ServerCachedQueryHandler extends CachedQueryHandlerBase {
|
|
|
17
17
|
private itemHandler;
|
|
18
18
|
protected transaction: ServerCache;
|
|
19
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
|
|
21
|
-
__fetchLinkedCachedQueryItems<ItemTypeType extends
|
|
22
|
-
__addItemEntriesToCachedQueries<ItemTypeType extends
|
|
20
|
+
__fetchCachedQueryItem<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<CachedQueryItem<ItemTypeType>>;
|
|
21
|
+
__fetchLinkedCachedQueryItems<ItemTypeType extends ApiEnumItemType>(parentType: ApiEnumItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<ParentIdMap<CachedQueryItem<ItemTypeType>>>;
|
|
22
|
+
__addItemEntriesToCachedQueries<ItemTypeType extends ApiEnumItemType = any>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>): void;
|
|
23
23
|
/**
|
|
24
24
|
* @description
|
|
25
25
|
* Expands the columns of the items in the cached query
|
|
26
26
|
*/
|
|
27
|
-
__expandCachedQuery<ItemTypeType extends
|
|
27
|
+
__expandCachedQuery<ItemTypeType extends ApiEnumItemType = any>(cachedQuery: CachedQueryItem<ItemTypeType>, newColumns: ApiRequestColumns, force?: boolean): PromiseInterface<CachedQueryItem<ItemTypeType>>;
|
|
28
28
|
/**
|
|
29
29
|
* @description
|
|
30
30
|
* Fetches the data for the passed ItemType/options, will do nothing if the requested CollectionEntry/columns are already cached.
|
|
31
31
|
* Will create a new {@link CollectionEntry CollectionEntry} if the CollectionEntry didn't exist yet
|
|
32
32
|
*/
|
|
33
|
-
__fetchItemEntriesByQueryData<ItemTypeType extends
|
|
33
|
+
__fetchItemEntriesByQueryData<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, collectionQuery: CollectionQuery): PromiseInterface<CachedQueryItem<ItemTypeType>>;
|
|
34
34
|
}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
+
import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
|
|
1
2
|
import { ColumnSubsetCacheFactory, ItemCacheFactory, ItemEntryFactory, QueryParserFactory, RequestColumnExpansionFactory } from '../../../factories';
|
|
2
3
|
import { ErrorHandlerInterface, PromiseLibraryInterface } from '../../../interfaces';
|
|
3
4
|
import { ItemEntry, ItemEntryOptions } from '../../../models';
|
|
4
|
-
import { ApiQuery, ApiRequestColumns, FieldMap,
|
|
5
|
+
import { ApiQuery, ApiRequestColumns, FieldMap, PromiseInterface } from '../../../types';
|
|
5
6
|
import { ChangesDelta } from '../../ChangesDelta';
|
|
6
7
|
import { ChangesDeltaItemUpdateDelta } from '../../ChangesDeltaBase';
|
|
7
8
|
import { ChangesDeltaItemCreateDelta } from '../../CreatedChangesDelta';
|
|
8
9
|
import { ApiFormatter, ApiResponseProcessor, ColumnExpansion, ColumnSet, ColumnUtil, QueryService, RequestBufferManager, RequestBufferResponse, TransactionItemEntryChanges } from '../../index';
|
|
9
10
|
import { ItemHandlerBase, ProcessItemEntryChangesResult } from '../ItemHandlerBase';
|
|
10
11
|
import { ServerCache } from './ServerCache';
|
|
11
|
-
export declare type ServerItemEntryChanges<ItemTypeType extends
|
|
12
|
+
export declare type ServerItemEntryChanges<ItemTypeType extends ApiEnumItemType = any> = FieldMap<ItemTypeType>;
|
|
12
13
|
export declare class ServerItemHandler extends ItemHandlerBase {
|
|
13
14
|
private requestBufferManager;
|
|
14
15
|
private queryParserFactory;
|
|
@@ -24,25 +25,25 @@ export declare class ServerItemHandler extends ItemHandlerBase {
|
|
|
24
25
|
* @description
|
|
25
26
|
* Processes updates on a cached entry
|
|
26
27
|
*/
|
|
27
|
-
processItemEntryChanges<ItemTypeType extends
|
|
28
|
+
processItemEntryChanges<ItemTypeType extends ApiEnumItemType = any>(itemEntryChangesTuple: ChangesDeltaItemUpdateDelta<ItemTypeType>, _forceOverwrite?: boolean, _updateInitial?: boolean, _isCalledAfterSocketUpdate?: boolean, _createItemChangesIfNoneExist?: boolean): ProcessItemEntryChangesResult<ItemTypeType>;
|
|
28
29
|
copyTransactionItemEntryChanges(itemEntryChanges: TransactionItemEntryChanges, entry: ItemEntry): ServerItemEntryChanges;
|
|
29
|
-
fetchItemEntry<ItemTypeType extends
|
|
30
|
-
fetchItemEntriesByQuery<ItemTypeType extends
|
|
31
|
-
extendItemEntries<ItemTypeType extends
|
|
32
|
-
fetchItemEntries<ItemTypeType extends
|
|
30
|
+
fetchItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
|
|
31
|
+
fetchItemEntriesByQuery<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, query: ApiQuery, entryOptions: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
|
|
32
|
+
extendItemEntries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemEntries: Array<ItemEntry<ItemTypeType>>, newColumns: ApiRequestColumns): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
|
|
33
|
+
fetchItemEntries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
|
|
33
34
|
/**
|
|
34
35
|
* @description
|
|
35
36
|
* Fetches the data for the ItemEntries linked to the parent Items
|
|
36
37
|
*
|
|
37
38
|
* @param columns should contain a derived column that refers to the parent
|
|
38
39
|
*/
|
|
39
|
-
fetchLinkedItemEntriesData(parentType:
|
|
40
|
+
fetchLinkedItemEntriesData(parentType: ApiEnumItemType, parentIdArray: ItemId[], itemType: ApiEnumItemType, query: ApiQuery | null, columns: ApiRequestColumns): PromiseInterface<RequestBufferResponse>;
|
|
40
41
|
/**
|
|
41
42
|
* @description
|
|
42
43
|
* General way to process an API response.
|
|
43
44
|
* Will call {@link ChangesDelta.setItemCreated setItemCreated} if an entry doesn't exist yet, and otherwise {@link ChangesDelta.setItemUpdated setItemUpdated} if it does.
|
|
44
45
|
*/
|
|
45
|
-
processApiResponse<ItemTypeType extends
|
|
46
|
+
processApiResponse<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, response: ApiResponseProcessor, itemType: ItemTypeType, itemIdOfExistingItem: ItemId, itemIdInResponse: ItemId, columnSet: ColumnSet<ItemTypeType>, columnExpansion: ColumnExpansion<ItemTypeType>): void;
|
|
46
47
|
/**
|
|
47
48
|
* @description
|
|
48
49
|
* Fetches the data for the passed ItemType/ItemId/columns, will do nothing if the requested ItemEntry/columns are already cached.
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { ApiEnumItemType, ApiFields, ItemId } from '@rentman/backend-types';
|
|
1
2
|
import { ChangesDelta, InternalChangesDelta, ServerCache, TransactionCollectionHandler, TransactionItemEntryChanges, TransactionItemHandler, TransactionValidatorFactory } from '../..';
|
|
2
3
|
import { RmCore } from '../../../core';
|
|
3
4
|
import { AbstractCacheDependencyInterface } from '../../../interfaces/AbstractCacheDependencyInterface';
|
|
4
5
|
import { CollectionResource, ItemEntry, ItemEntryOptions, ItemResource } from '../../../models';
|
|
5
6
|
import { CollectionOptionsInterface } from '../../../models/CollectionOptions';
|
|
6
|
-
import { ApiQuery, ApiRequestColumn, ApiRequestColumns, CollectionDefinition, CollectionQuery, CollectionResourceParentIdMap,
|
|
7
|
+
import { ApiQuery, ApiRequestColumn, ApiRequestColumns, CollectionDefinition, CollectionQuery, CollectionResourceParentIdMap, ConversionMap, CreateRequestParameterMap, DeregFunction, EntryParentNull, FieldChangeCallback, FieldMap, ItemIdConversionMap, ItemOptionsInterface, ItemResourcesItemTypeMap, ItemTypeMap, LinkCollectionDefinition, PromiseInterface } from '../../../types';
|
|
7
8
|
import { ChangesDeltaResult } from '../../ChangesDeltaBase';
|
|
8
9
|
import { OnAfterCreateCallback } from '../../ChangesProcessor';
|
|
9
10
|
import { ModuleChangesCompilationResult } from '../../ModuleChangesCompilation';
|
|
@@ -11,7 +12,7 @@ import { AbstractCache } from '../AbstractCache';
|
|
|
11
12
|
import { CachedQueryItem } from '../CachedQueryHandlerBase';
|
|
12
13
|
import { TransactionCachedQueryHandler } from './TransactionCachedQueryHandler';
|
|
13
14
|
import { TransactionCacheCallbackCondition, TransactionCacheCallbackType, TransactionEventHandler } from './TransactionEventHandler';
|
|
14
|
-
declare type ItemResourceLinks<ItemTypeType extends
|
|
15
|
+
declare type ItemResourceLinks<ItemTypeType extends ApiEnumItemType> = {
|
|
15
16
|
main: ItemResource<ItemTypeType>;
|
|
16
17
|
linked: ItemResourcesItemTypeMap;
|
|
17
18
|
};
|
|
@@ -104,8 +105,8 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
104
105
|
* @description
|
|
105
106
|
* Expands the collection with the new request columns, assumes that all collections have the same itemType
|
|
106
107
|
*/
|
|
107
|
-
expandCollectionResources<ItemTypeType extends
|
|
108
|
-
registerFieldChangeCallback<ItemTypeType extends
|
|
108
|
+
expandCollectionResources<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, collections: CollectionResourceParentIdMap<ItemTypeType>, newColumns: ApiRequestColumn[]): PromiseInterface<CollectionResourceParentIdMap>;
|
|
109
|
+
registerFieldChangeCallback<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, callback: FieldChangeCallback<ItemTypeType>): DeregFunction;
|
|
109
110
|
createChangesDelta(): ChangesDelta;
|
|
110
111
|
getFirstErrorString(): undefined | string;
|
|
111
112
|
/**
|
|
@@ -168,8 +169,8 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
168
169
|
* @remark
|
|
169
170
|
* Use {@link CollectionResource.getParent CollectionResource.getParent} instead of {@link TransactionCache.getParent TransactionCache.getParent} if you're getting the parent in the onRemove callback
|
|
170
171
|
*/
|
|
171
|
-
getParent<ItemTypeType extends
|
|
172
|
-
getCollectionChangesRecursively<ItemTypeType extends
|
|
172
|
+
getParent<ItemTypeType extends ApiEnumItemType = any>(itemEntry: ItemEntry<ItemTypeType>, fromInitial?: boolean, providedFields?: FieldMap<ItemTypeType>): EntryParentNull;
|
|
173
|
+
getCollectionChangesRecursively<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery): CachedQueryItem<ItemTypeType> | undefined;
|
|
173
174
|
/**
|
|
174
175
|
* @description
|
|
175
176
|
* Traverses the transaction chain and returns the changes of the item on the first transaction
|
|
@@ -236,13 +237,13 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
236
237
|
updateItemIdMap(collectionMap: {
|
|
237
238
|
[itemId: number]: any;
|
|
238
239
|
}, conversionMap: ConversionMap): void;
|
|
239
|
-
getAllLinkCollections<ItemTypeType extends
|
|
240
|
-
getLinkCollectionsFromDef<ItemTypeType extends
|
|
241
|
-
getLinkCollections<ItemTypeType extends
|
|
242
|
-
getCollectionFromDef<ItemTypeType extends
|
|
243
|
-
getCollection<ItemTypeType extends
|
|
244
|
-
getCollectionDef<ItemTypeType extends
|
|
245
|
-
getLinkCollectionsDef<ItemTypeType extends
|
|
240
|
+
getAllLinkCollections<ItemTypeType extends ApiEnumItemType>(linkType: ApiEnumItemType, itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>): PromiseInterface<CollectionResourceParentIdMap<ItemTypeType>>;
|
|
241
|
+
getLinkCollectionsFromDef<ItemTypeType extends ApiEnumItemType>(linkType: ApiEnumItemType, linkIdArray: ItemId[], definition: LinkCollectionDefinition<ItemTypeType>): PromiseInterface<CollectionResourceParentIdMap<ItemTypeType>>;
|
|
242
|
+
getLinkCollections<ItemTypeType extends ApiEnumItemType>(linkType: ApiEnumItemType, linkIdArray: ItemId[], itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>): PromiseInterface<CollectionResourceParentIdMap<ItemTypeType>>;
|
|
243
|
+
getCollectionFromDef<ItemTypeType extends ApiEnumItemType>(definition: CollectionDefinition<ItemTypeType>): PromiseInterface<CollectionResource<ItemTypeType>>;
|
|
244
|
+
getCollection<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>): PromiseInterface<CollectionResource<ItemTypeType, ColumnIds>>;
|
|
245
|
+
getCollectionDef<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>): CollectionDefinition<ItemTypeType>;
|
|
246
|
+
getLinkCollectionsDef<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, linkField: string, options: CollectionOptionsInterface<ItemTypeType>): LinkCollectionDefinition<ItemTypeType>;
|
|
246
247
|
/**
|
|
247
248
|
* @deprecated
|
|
248
249
|
* Use getItemById/getNewResourceWithId
|
|
@@ -250,35 +251,35 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
250
251
|
* @remarks
|
|
251
252
|
* stateKey can be a keyword or a local id (in case of a refresh)
|
|
252
253
|
*/
|
|
253
|
-
getItemByState<ItemTypeType extends
|
|
254
|
-
getDuplicateById<ItemTypeType extends
|
|
255
|
-
getDuplicateById<ItemTypeType extends
|
|
256
|
-
getNewResourceWithId<ItemTypeType extends
|
|
257
|
-
getNewResourceWithId<ItemTypeType extends
|
|
258
|
-
getNewResource<ItemTypeType extends
|
|
259
|
-
getNewResource<ItemTypeType extends
|
|
254
|
+
getItemByState<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, stateKey: ItemId | string, options?: ItemOptionsInterface, isRoot?: boolean): PromiseInterface<ItemResource<ItemTypeType>>;
|
|
255
|
+
getDuplicateById<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, duplicateId: ItemId, options: ItemOptionsInterface, returnLinks: true, isRoot?: boolean): PromiseInterface<ItemResourceLinks<ItemTypeType>>;
|
|
256
|
+
getDuplicateById<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, duplicateId: ItemId, options: ItemOptionsInterface, returnLinks?: boolean, isRoot?: boolean): PromiseInterface<ItemResource<ItemTypeType>>;
|
|
257
|
+
getNewResourceWithId<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: Partial<ItemEntryOptions>, returnLinks: true, isRoot?: boolean): PromiseInterface<ItemResourceLinks<ItemTypeType>>;
|
|
258
|
+
getNewResourceWithId<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: Partial<ItemEntryOptions>, returnLinks?: boolean, isRoot?: boolean): PromiseInterface<ItemResource<ItemTypeType>>;
|
|
259
|
+
getNewResource<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: ItemOptionsInterface, returnLinks: true, isRoot?: boolean): PromiseInterface<ItemResourceLinks<ItemTypeType>>;
|
|
260
|
+
getNewResource<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: ItemOptionsInterface, returnLinks?: boolean, isRoot?: boolean): PromiseInterface<ItemResource<ItemTypeType>>;
|
|
260
261
|
/**
|
|
261
262
|
* @description
|
|
262
263
|
* Fetches multiple items with their respective changes of the current {@link TransactionCache transaction}
|
|
263
264
|
*/
|
|
264
|
-
getItemsByQuery<ItemTypeType extends
|
|
265
|
+
getItemsByQuery<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, query: ApiQuery, options?: Partial<ItemEntryOptions>): PromiseInterface<Array<ItemResource<ItemTypeType>>>;
|
|
265
266
|
/**
|
|
266
267
|
* @description
|
|
267
268
|
* Fetches multiple items with their respective changes of the current {@link TransactionCache transaction}
|
|
268
269
|
*/
|
|
269
|
-
getItemsById<ItemTypeType extends
|
|
270
|
+
getItemsById<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemIds: ItemId[], options?: Partial<ItemEntryOptions>): PromiseInterface<Array<ItemResource<ItemTypeType>>>;
|
|
270
271
|
/**
|
|
271
272
|
* @description
|
|
272
273
|
* Fetches the item with the changes of the current {@link TransactionCache transaction}
|
|
273
274
|
*
|
|
274
275
|
* @param isRoot Sets the item as the root item of the transaction, new items will be linked to this item (if there's a connection in the LinkTree)
|
|
275
276
|
*/
|
|
276
|
-
getItemById<ItemTypeType extends
|
|
277
|
+
getItemById<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>>(itemType: ItemTypeType, itemId: ItemId, options?: Partial<ItemEntryOptions>, isRoot?: boolean): PromiseInterface<ItemResource<ItemTypeType, ColumnIds>>;
|
|
277
278
|
/**
|
|
278
279
|
* @description
|
|
279
280
|
* Fetches the title of an item, does not create an {@link ItemResource ItemResource}
|
|
280
281
|
*/
|
|
281
|
-
fetchTitle(itemType:
|
|
282
|
+
fetchTitle(itemType: ApiEnumItemType, itemId: ItemId): PromiseInterface<string>;
|
|
282
283
|
/**
|
|
283
284
|
* @description
|
|
284
285
|
* Merges the passed child Transaction into this transaction and then propagates them to the other child transactions
|
|
@@ -301,18 +302,18 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
301
302
|
* @description
|
|
302
303
|
* Gets an ItemEntry from the cache by ItemId
|
|
303
304
|
*/
|
|
304
|
-
getLocalItemEntryByItemId(itemType:
|
|
305
|
+
getLocalItemEntryByItemId(itemType: ApiEnumItemType, itemId: ItemEntry['itemId']): ItemEntry | undefined;
|
|
305
306
|
/**
|
|
306
307
|
* @description
|
|
307
308
|
* 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
|
|
308
309
|
* won't be included
|
|
309
310
|
*/
|
|
310
311
|
getDelta(): InternalChangesDelta;
|
|
311
|
-
createItemResource<ItemTypeType extends
|
|
312
|
-
createItemResources<ItemTypeType extends
|
|
313
|
-
processLinkedItems<ItemTypeType extends
|
|
314
|
-
createCollectionResource<ItemTypeType extends
|
|
315
|
-
getChangesFromItemChanges<ItemTypeType extends
|
|
312
|
+
createItemResource<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, isRoot?: boolean, isNew?: boolean): ItemResource<ItemTypeType>;
|
|
313
|
+
createItemResources<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>>(itemEntries: Array<ItemEntry<ItemTypeType>>): Array<ItemResource<ItemTypeType, ColumnIds>>;
|
|
314
|
+
processLinkedItems<ItemTypeType extends ApiEnumItemType>(linkedEntries: ItemTypeMap<ItemEntry[]>): ItemResourcesItemTypeMap<ItemResource<ItemTypeType>>;
|
|
315
|
+
createCollectionResource<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>, initialEntries: Array<ItemEntry<ItemTypeType>>): CollectionResource<ItemTypeType>;
|
|
316
|
+
getChangesFromItemChanges<ItemTypeType extends ApiEnumItemType = any>(changesObject: TransactionItemEntryChanges<FieldMap<ItemTypeType>>): FieldMap<ItemTypeType>;
|
|
316
317
|
/**
|
|
317
318
|
* @description
|
|
318
319
|
* Fetches all required columns to match/fit in collections
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
|
|
1
2
|
import { ApiQuery, ApiRequestColumns, CollectionQuery, ColumnSubsetCache, ItemEntryOptions, ParentIdMap, PromiseInterface, TransactionCollectionHandlerDependencyInterface, TransactionItemHandler } from '../../../index';
|
|
2
3
|
import { ItemEntry } from '../../../models';
|
|
3
4
|
import { CollectionOptions } from '../../../models/CollectionOptions';
|
|
4
|
-
import { ItemId, ItemType } from '../../../types';
|
|
5
5
|
import { CachedQueryHandlerBase, CachedQueryItem } from '../CachedQueryHandlerBase';
|
|
6
6
|
import { TransactionCache } from './TransactionCache';
|
|
7
7
|
export declare class TransactionCachedQueryHandler extends CachedQueryHandlerBase {
|
|
@@ -9,15 +9,15 @@ export declare class TransactionCachedQueryHandler extends CachedQueryHandlerBas
|
|
|
9
9
|
private itemHandler;
|
|
10
10
|
protected transaction: TransactionCache;
|
|
11
11
|
constructor(dependencies: TransactionCollectionHandlerDependencyInterface, itemHandler: TransactionItemHandler, transaction: TransactionCache);
|
|
12
|
-
__fetchCachedQueryItem<ItemTypeType extends
|
|
13
|
-
__expandCachedQuery<ItemTypeType extends
|
|
14
|
-
__addItemEntriesToCachedQueries<ItemTypeType extends
|
|
12
|
+
__fetchCachedQueryItem<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<CachedQueryItem<ItemTypeType>>;
|
|
13
|
+
__expandCachedQuery<ItemTypeType extends ApiEnumItemType>(cachedQuery: CachedQueryItem<ItemTypeType>, newColumns: ApiRequestColumns, force?: boolean): PromiseInterface<CachedQueryItem<ItemTypeType>>;
|
|
14
|
+
__addItemEntriesToCachedQueries<ItemTypeType extends ApiEnumItemType = any>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>): void;
|
|
15
15
|
/**
|
|
16
16
|
* @remark
|
|
17
17
|
* todo not only linkedTo should be checked, but it should check if there's a local ID anywhere in the query
|
|
18
18
|
* ({<field>: <localId>}) is also a local query
|
|
19
19
|
*/
|
|
20
20
|
isLocal(options: CollectionOptions | ItemEntryOptions, query: ApiQuery): boolean;
|
|
21
|
-
__fetchItemEntriesByQueryData<ItemTypeType extends
|
|
22
|
-
__fetchLinkedCachedQueryItems<ItemTypeType extends
|
|
21
|
+
__fetchItemEntriesByQueryData<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, collectionQuery: CollectionQuery): PromiseInterface<CachedQueryItem<ItemTypeType>>;
|
|
22
|
+
__fetchLinkedCachedQueryItems<ItemTypeType extends ApiEnumItemType>(parentType: ApiEnumItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<ParentIdMap<CachedQueryItem<ItemTypeType>>>;
|
|
23
23
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { ApiEnumItemType } from '@rentman/backend-types';
|
|
1
2
|
import { TransactionCollectionHandlerDependencyInterface } from '../../../interfaces/TransactionCollectionHandlerDependencyInterface';
|
|
2
3
|
import { CollectionEntry, CollectionResource, ItemEntry } from '../../../models';
|
|
3
|
-
import { ApiRequestColumns, ItemIdConversionMap,
|
|
4
|
+
import { ApiRequestColumns, ItemIdConversionMap, ModifyFieldsCallback, PromiseInterface } from '../../../types';
|
|
4
5
|
import { ChangesDelta } from '../../ChangesDelta';
|
|
5
6
|
import { TransactionCache } from './TransactionCache';
|
|
6
7
|
import { TransactionCachedQueryHandler } from './TransactionCachedQueryHandler';
|
|
@@ -16,7 +17,7 @@ export declare class TransactionCollectionHandler {
|
|
|
16
17
|
};
|
|
17
18
|
};
|
|
18
19
|
constructor(itemHandler: TransactionItemHandler, cachedQueryHandler: TransactionCachedQueryHandler, dependencies: TransactionCollectionHandlerDependencyInterface, transaction: TransactionCache);
|
|
19
|
-
expandCollectionResource<ItemTypeType extends
|
|
20
|
+
expandCollectionResource<ItemTypeType extends ApiEnumItemType = any>(collectionResource: CollectionResource<ItemTypeType>, newColumns: ApiRequestColumns): PromiseInterface<void>;
|
|
20
21
|
addResource(resource: CollectionResource): void;
|
|
21
22
|
clearResource(resource: CollectionResource): void;
|
|
22
23
|
/**
|