@rentman/rm-core 8.0.2 → 8.1.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 +13 -0
- package/dist/rm-core.js +6409 -6003
- package/dist/rm-core.min.js +2 -2
- package/dist/types/classes/ApiFormatter.d.ts +3 -3
- package/dist/types/classes/ChangesDelta.d.ts +8 -2
- package/dist/types/classes/ChangesDeltaBase.d.ts +35 -7
- package/dist/types/classes/ChangesProcessor.d.ts +3 -5
- package/dist/types/classes/CollectionMatcherBase.d.ts +2 -2
- package/dist/types/classes/ConversionMapService.d.ts +1 -1
- package/dist/types/classes/CreatedChangesDelta.d.ts +2 -1
- package/dist/types/classes/InternalChangesDelta.d.ts +12 -1
- package/dist/types/classes/ItemCreateService.d.ts +1 -1
- package/dist/types/classes/ParentChangesDelta.d.ts +47 -0
- package/dist/types/classes/QueryParserIdUpdater.d.ts +9 -9
- package/dist/types/classes/TemplateCache.d.ts +11 -8
- package/dist/types/classes/cache/AbstractCache.d.ts +16 -7
- package/dist/types/classes/cache/ItemHandlerBase.d.ts +4 -6
- package/dist/types/classes/cache/server/ServerCache.d.ts +19 -8
- package/dist/types/classes/cache/server/ServerItemHandler.d.ts +2 -2
- package/dist/types/classes/cache/transaction/TransactionCache.d.ts +14 -13
- package/dist/types/classes/cache/transaction/TransactionCachedQueryHandler.d.ts +2 -1
- package/dist/types/classes/cache/transaction/TransactionCollectionHandler.d.ts +1 -0
- package/dist/types/classes/cache/transaction/TransactionItemHandler.d.ts +6 -7
- package/dist/types/factories/ChangesDeltaFactory.d.ts +8 -6
- package/dist/types/factories/ChangesProcessorFactory.d.ts +2 -5
- package/dist/types/factories/RequestColumnExpansionFactory.d.ts +4 -1
- package/dist/types/factories/TemplateFactory.d.ts +2 -2
- package/dist/types/interfaces/TransactionItemHandlerDependencyInterface.d.ts +2 -1
- package/dist/types/models/Template.d.ts +3 -2
- package/dist/types/types/ItemTypesCollection.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ApiEnumItemType, ApiFields, ItemId } from '@rentman/backend-types';
|
|
2
|
-
import { ChangesDelta, InternalChangesDelta, ServerCache, TransactionCollectionHandler, TransactionItemEntryChanges, TransactionItemHandler, TransactionValidatorFactory } from '../..';
|
|
2
|
+
import { ChangesDelta, InternalChangesDelta, ServerCache, TransactionCollectionHandler, TransactionItemEntryChanges, TransactionItemHandler, TransactionOptions, TransactionValidatorFactory } from '../..';
|
|
3
3
|
import { RmCore } from '../../../core';
|
|
4
4
|
import { AbstractCacheDependencyInterface } from '../../../interfaces/AbstractCacheDependencyInterface';
|
|
5
5
|
import { CollectionResource, ItemEntry, ItemEntryOptions, ItemResource } from '../../../models';
|
|
@@ -8,6 +8,7 @@ import { ApiQuery, ApiRequestColumn, ApiRequestColumns, CollectionDefinition, Co
|
|
|
8
8
|
import { ChangesDeltaResult } from '../../ChangesDeltaBase';
|
|
9
9
|
import { OnAfterCreateCallback } from '../../ChangesProcessor';
|
|
10
10
|
import { ModuleChangesCompilationResult } from '../../ModuleChangesCompilation';
|
|
11
|
+
import { ParentChangesDelta } from '../../ParentChangesDelta';
|
|
11
12
|
import { AbstractCache } from '../AbstractCache';
|
|
12
13
|
import { CachedQueryItem } from '../CachedQueryHandlerBase';
|
|
13
14
|
import { TransactionCachedQueryHandler } from './TransactionCachedQueryHandler';
|
|
@@ -20,6 +21,7 @@ export declare enum TransactionErrorLevel {
|
|
|
20
21
|
warning = "warning",
|
|
21
22
|
error = "error"
|
|
22
23
|
}
|
|
24
|
+
export declare type UndoFunction = () => PromiseInterface<ChangesDeltaResult>;
|
|
23
25
|
/**
|
|
24
26
|
* @description
|
|
25
27
|
* The {@link TransactionCache TransactionCache} is responsible for keeping track of newly created {@link ItemEntry ItemEntries}
|
|
@@ -91,14 +93,20 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
91
93
|
readonly collectionHandler: TransactionCollectionHandler;
|
|
92
94
|
readonly eventHandler: TransactionEventHandler;
|
|
93
95
|
private readonly validator?;
|
|
96
|
+
private readonly options;
|
|
94
97
|
private _isValid;
|
|
98
|
+
private historyStep;
|
|
99
|
+
private undoDeltas;
|
|
100
|
+
private appliedDeltas;
|
|
95
101
|
constructor(dependencies: AbstractCacheDependencyInterface, core: RmCore, parent: AbstractCache,
|
|
96
102
|
/**
|
|
97
103
|
* @description
|
|
98
104
|
* For debugging purposes
|
|
99
105
|
*/
|
|
100
|
-
id?: string | undefined, validatorFactory?: TransactionValidatorFactory);
|
|
101
|
-
|
|
106
|
+
id?: string | undefined, validatorFactory?: TransactionValidatorFactory, options?: Partial<TransactionOptions>);
|
|
107
|
+
undo(): ReturnType<UndoFunction>;
|
|
108
|
+
redo(): ReturnType<TransactionCache['applyChangesDelta']>;
|
|
109
|
+
createChild(id?: string, validatorFactory?: TransactionValidatorFactory, options?: TransactionOptions): TransactionCache;
|
|
102
110
|
destroy(): void;
|
|
103
111
|
expandCollectionResource(collectionResource: CollectionResource, newColumns: ApiRequestColumns): PromiseInterface<void>;
|
|
104
112
|
/**
|
|
@@ -138,11 +146,8 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
138
146
|
*
|
|
139
147
|
* ------------------
|
|
140
148
|
* Use {@link TransactionCache.applyChangesDelta applyChangesDelta} if you want to apply changes from outside the core
|
|
141
|
-
*
|
|
142
|
-
* @param internalChangesDelta Changes to be applied
|
|
143
|
-
* @param isCalledAfterApiSave If 'isCalledAfterApiSave' is true local changes will always be overwritten (instead of only when there are no changes)
|
|
144
149
|
*/
|
|
145
|
-
applyChangesFromParent(
|
|
150
|
+
applyChangesFromParent(parentChangesDelta: ParentChangesDelta, isCalledAfterSocketUpdate?: boolean, conversionMap?: ItemIdConversionMap): PromiseInterface<void>;
|
|
146
151
|
/**
|
|
147
152
|
* @description
|
|
148
153
|
* Applies changes to this transaction and its children
|
|
@@ -151,12 +156,8 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
151
156
|
*
|
|
152
157
|
* The difference between {@link TransactionCache.applyChangesFromParent} and {@link TransactionCache.applyChangesDelta} is that applyChangesFromParent assumes
|
|
153
158
|
* the change has already been processed, and applyChangesDelta will process the changes itself (result vs cause)
|
|
154
|
-
*
|
|
155
|
-
* ------------------
|
|
156
|
-
*
|
|
157
|
-
* Differs from {@link ServerCache.applyChangesDelta ServerCache.applyChangesDelta} in the handling of deleted entries and the applyChangesFromParent call
|
|
158
159
|
*/
|
|
159
|
-
applyChangesDelta(changesDelta: ChangesDelta): PromiseInterface<ChangesDeltaResult>;
|
|
160
|
+
applyChangesDelta(changesDelta: ChangesDelta | InternalChangesDelta): PromiseInterface<ChangesDeltaResult>;
|
|
160
161
|
getServerCache(): ServerCache;
|
|
161
162
|
/**
|
|
162
163
|
* @description
|
|
@@ -309,7 +310,7 @@ export declare class TransactionCache extends AbstractCache {
|
|
|
309
310
|
* won't be included
|
|
310
311
|
*/
|
|
311
312
|
getDelta(): InternalChangesDelta;
|
|
312
|
-
createItemResource<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>,
|
|
313
|
+
createItemResource<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, isNew?: boolean): ItemResource<ItemTypeType>;
|
|
313
314
|
createItemResources<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>>(itemEntries: Array<ItemEntry<ItemTypeType>>): Array<ItemResource<ItemTypeType, ColumnIds>>;
|
|
314
315
|
processLinkedItems<ItemTypeType extends ApiEnumItemType>(linkedEntries: ItemTypeMap<ItemEntry[]>): ItemResourcesItemTypeMap<ItemResource<ItemTypeType>>;
|
|
315
316
|
createCollectionResource<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>, initialEntries: Array<ItemEntry<ItemTypeType>>): CollectionResource<ItemTypeType>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
|
|
2
|
-
import { ApiQuery, ApiRequestColumns, CollectionQuery, ColumnSubsetCache, ItemEntryOptions, ParentIdMap, PromiseInterface, TransactionCollectionHandlerDependencyInterface, TransactionItemHandler } from '../../../index';
|
|
2
|
+
import { ApiQuery, ApiRequestColumns, CollectionQuery, ColumnSubsetCache, ItemEntryOptions, ItemIdConversionMap, ParentIdMap, PromiseInterface, TransactionCollectionHandlerDependencyInterface, TransactionItemHandler } from '../../../index';
|
|
3
3
|
import { ItemEntry } from '../../../models';
|
|
4
4
|
import { CollectionOptions } from '../../../models/CollectionOptions';
|
|
5
5
|
import { CachedQueryHandlerBase, CachedQueryItem } from '../CachedQueryHandlerBase';
|
|
@@ -9,6 +9,7 @@ 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
|
+
updateLocalItemIdReferences(conversionMap: ItemIdConversionMap, isCalledAfterSave: boolean): void;
|
|
12
13
|
__fetchCachedQueryItem<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<CachedQueryItem<ItemTypeType>>;
|
|
13
14
|
__expandCachedQuery<ItemTypeType extends ApiEnumItemType>(cachedQuery: CachedQueryItem<ItemTypeType>, newColumns: ApiRequestColumns, force?: boolean): PromiseInterface<CachedQueryItem<ItemTypeType>>;
|
|
14
15
|
__addItemEntriesToCachedQueries<ItemTypeType extends ApiEnumItemType = any>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>): void;
|
|
@@ -17,6 +17,7 @@ export declare class TransactionCollectionHandler {
|
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
19
|
constructor(itemHandler: TransactionItemHandler, cachedQueryHandler: TransactionCachedQueryHandler, dependencies: TransactionCollectionHandlerDependencyInterface, transaction: TransactionCache);
|
|
20
|
+
updateLocalItemIdReferences(conversionMap: ItemIdConversionMap): void;
|
|
20
21
|
expandCollectionResource<ItemTypeType extends ApiEnumItemType = any>(collectionResource: CollectionResource<ItemTypeType>, newColumns: ApiRequestColumns): PromiseInterface<void>;
|
|
21
22
|
addResource(resource: CollectionResource): void;
|
|
22
23
|
clearResource(resource: CollectionResource): void;
|
|
@@ -35,6 +35,7 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
|
|
|
35
35
|
};
|
|
36
36
|
};
|
|
37
37
|
constructor(dependencies: TransactionItemHandlerDependencyInterface, transaction: TransactionCache, validator?: TransactionValidator | undefined);
|
|
38
|
+
updateLocalItemIdReferences(itemType: ApiEnumItemType, oldItemId: ItemId, newItemId: ItemId, changesDelta?: ChangesDeltaBase, isCalledAfterSave?: boolean): void;
|
|
38
39
|
registerFieldChangeCallback<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, callback: FieldChangeCallback<ItemTypeType>): DeregFunction;
|
|
39
40
|
copyTransactionItemEntryChanges(itemEntryChanges: TransactionItemEntryChanges, entry: ItemEntry): TransactionItemEntryChanges;
|
|
40
41
|
createItemEntry(createTuple: ChangesDeltaItemCreateDelta): ItemEntry;
|
|
@@ -57,27 +58,26 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
|
|
|
57
58
|
detectEntryChanges(itemEntryId: ItemEntry['id']): boolean;
|
|
58
59
|
/**
|
|
59
60
|
* @description
|
|
60
|
-
* Processes on a cached entry, if there are no {@link TransactionItemHandler.itemChanges itemChanges} the new values will not be processed
|
|
61
|
+
* Processes on a cached entry, if there are no {@link TransactionItemHandler.itemChanges itemChanges} the new values will not be processed unless `createItemChangesIfNoneExist` is set
|
|
61
62
|
*
|
|
62
63
|
* @param itemEntryChangesTuple The changes tuple
|
|
63
|
-
* @param forceOverwrite Instead of calling {@link ApiFormatter.mergeCopyFields mergeCopyFields}, {@link ApiFormatter.copyFields copyFields} will be used (because API values are always right)
|
|
64
|
-
* @param updateInitial Should be `true` if called by applyChangesFromParent
|
|
65
64
|
* @param isCalledAfterSocketUpdate Indicates that the change is done by a different user
|
|
66
65
|
* @param createItemChangesIfNoneExist Is `true` when called from `applyChangesDelta`, we can assume that when you call `applyChangesDelta` with updates that aren't on the transaction yet you want to add those
|
|
66
|
+
* @param changesDelta Will be used to check which items should/shouldn't be updated when updating local ID references
|
|
67
67
|
*
|
|
68
68
|
* @returns
|
|
69
69
|
* The previous changes {@link FieldMap FieldMap}, returns `null` when the item was not cached or no fields were changed.
|
|
70
70
|
*/
|
|
71
|
-
processItemEntryChanges<ItemTypeType extends ApiEnumItemType = any>(itemEntryChangesTuple: ChangesDeltaItemUpdateDelta<ItemTypeType>,
|
|
71
|
+
processItemEntryChanges<ItemTypeType extends ApiEnumItemType = any>(itemEntryChangesTuple: ChangesDeltaItemUpdateDelta<ItemTypeType>, isCalledAfterSocketUpdate?: boolean, createItemChangesIfNoneExist?: boolean): ProcessItemEntryChangesResult<ItemTypeType>;
|
|
72
72
|
cloneItemEntries<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemEntries: Array<ItemEntry<ItemTypeType>>, conversionMap?: ItemIdConversionMap, modifyFieldsCallback?: ModifyFieldsCallback): ItemId[];
|
|
73
73
|
cloneItemEntry<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, sourceEntry: ItemEntry<ItemTypeType>, conversionMap?: ItemIdConversionMap, modifyFieldsCallback?: ModifyFieldsCallback): ItemId;
|
|
74
74
|
fetchItemEntriesByQuery<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, query: ApiQuery, entryOptions: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
|
|
75
|
-
fetchItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
|
|
75
|
+
fetchItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions, isRoot?: boolean): PromiseInterface<ItemEntry<ItemTypeType>>;
|
|
76
76
|
/**
|
|
77
77
|
* @description
|
|
78
78
|
* Fetches a template and creates a new {@link ItemEntry ItemEntry}, will error if the ItemEntry with the given ItemId already exists
|
|
79
79
|
*/
|
|
80
|
-
fetchNewItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ChangesDeltaResult>;
|
|
80
|
+
fetchNewItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions, isRoot?: boolean): PromiseInterface<ChangesDeltaResult>;
|
|
81
81
|
fetchItemEntries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
|
|
82
82
|
fetchTitle(itemType: ApiEnumItemType, itemId: ItemId): PromiseInterface<string>;
|
|
83
83
|
resolveLocalItemEntry<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemEntry: ItemEntry<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
|
|
@@ -94,5 +94,4 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
|
|
|
94
94
|
private getColumnDifference;
|
|
95
95
|
private expandLocalItemEntry;
|
|
96
96
|
private getLocalValues;
|
|
97
|
-
private updateLocalItemIdReferences;
|
|
98
97
|
}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { ItemEntryService } from '../classes';
|
|
2
|
-
import {
|
|
3
|
-
import { InternalChangesDelta } from '../classes/InternalChangesDelta';
|
|
4
|
-
import { ItemCreateService } from '../classes/ItemCreateService';
|
|
1
|
+
import { ApiFormatter, ChangesDelta, ConversionMapService, InternalChangesDelta, ItemCreateService, ItemEntryService } from '../classes';
|
|
2
|
+
import { ParentChangesDelta } from '../classes/ParentChangesDelta';
|
|
5
3
|
import { ErrorHandlerInterface } from '../interfaces';
|
|
6
4
|
export declare class ChangesDeltaFactory {
|
|
5
|
+
private apiFormatter;
|
|
6
|
+
private conversionMapService;
|
|
7
7
|
private errorHandler;
|
|
8
|
-
private itemEntryService;
|
|
9
8
|
private itemCreateService;
|
|
10
|
-
|
|
9
|
+
private itemEntryService;
|
|
10
|
+
constructor(apiFormatter: ApiFormatter, conversionMapService: ConversionMapService, errorHandler: ErrorHandlerInterface, itemCreateService: ItemCreateService, itemEntryService: ItemEntryService);
|
|
11
11
|
construct(): ChangesDelta;
|
|
12
|
+
cloneCreatedChanges(sourceChangesDelta: ChangesDelta, destinationChangesDelta?: ChangesDelta): ChangesDelta;
|
|
12
13
|
constructInternalDelta(): InternalChangesDelta;
|
|
14
|
+
constructParentDelta(): ParentChangesDelta;
|
|
13
15
|
}
|
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
import { ApiRequestService, ChangesProcessor,
|
|
1
|
+
import { ApiRequestService, ChangesProcessor, ItemEntryService, OnAfterCreateCallback } from '../classes';
|
|
2
2
|
import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
|
|
3
3
|
import { ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
|
|
4
4
|
import { ChangesCompilationFactory } from './ChangesCompilationFactory';
|
|
5
5
|
import { ChangesDeltaFactory } from './ChangesDeltaFactory';
|
|
6
|
-
import { ColumnExpansionFactory } from './ColumnExpansionFactory';
|
|
7
6
|
import { CreateRequestFactory } from './CreateRequestFactory';
|
|
8
7
|
import { RequestColumnExpansionFactory } from './RequestColumnExpansionFactory';
|
|
9
8
|
export declare class ChangesProcessorFactory {
|
|
10
9
|
private changesDeltaFactory;
|
|
11
10
|
private apiRequestService;
|
|
12
11
|
private changesCompilationFactory;
|
|
13
|
-
private columnExpansionFactory;
|
|
14
12
|
private createRequestFactory;
|
|
15
13
|
private errorHandler;
|
|
16
14
|
private promiseService;
|
|
17
15
|
private requestColumnExpansionFactory;
|
|
18
|
-
private collectionEntryService;
|
|
19
16
|
private itemEntryService;
|
|
20
|
-
constructor(changesDeltaFactory: ChangesDeltaFactory, apiRequestService: ApiRequestService, changesCompilationFactory: ChangesCompilationFactory,
|
|
17
|
+
constructor(changesDeltaFactory: ChangesDeltaFactory, apiRequestService: ApiRequestService, changesCompilationFactory: ChangesCompilationFactory, createRequestFactory: CreateRequestFactory, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, requestColumnExpansionFactory: RequestColumnExpansionFactory, itemEntryService: ItemEntryService);
|
|
21
18
|
construct(transaction: TransactionCache, breakUpByParent?: boolean, onAfterCreateCallback?: OnAfterCreateCallback): ChangesProcessor;
|
|
22
19
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ApiEnumItemType } from '@rentman/backend-types';
|
|
2
|
+
import { AbstractCache, ColumnUtil, RequestColumnExpansion } from '../classes';
|
|
3
|
+
import { ApiRequestColumnMap, ApiRequestColumns } from '../types';
|
|
2
4
|
export declare class RequestColumnExpansionFactory {
|
|
3
5
|
private columnUtil;
|
|
4
6
|
constructor(columnUtil: ColumnUtil);
|
|
5
7
|
construct(): RequestColumnExpansion;
|
|
8
|
+
expandColumnsWithCachedQueryColumns(transaction: AbstractCache, itemType: ApiEnumItemType, requestColumns?: ApiRequestColumns, requestColumnExpansion?: RequestColumnExpansion): ApiRequestColumnMap;
|
|
6
9
|
}
|
|
@@ -2,10 +2,10 @@ import { ApiEnumItemType } from '@rentman/backend-types';
|
|
|
2
2
|
import { ColumnUtil } from '../classes';
|
|
3
3
|
import { ColumnSetFactory } from '../factories';
|
|
4
4
|
import { Template } from '../models';
|
|
5
|
-
import { ApiRequestColumnMap, ApiResponse, ResponseColumnItemTypeMap } from '../types';
|
|
5
|
+
import { ApiRequestColumnMap, ApiResponse, ItemTypeMap, ResponseColumnItemTypeMap } from '../types';
|
|
6
6
|
export declare class TemplateFactory {
|
|
7
7
|
columnSetFactory: ColumnSetFactory;
|
|
8
8
|
columnUtil: ColumnUtil;
|
|
9
9
|
constructor(columnSetFactory: ColumnSetFactory, columnUtil: ColumnUtil);
|
|
10
|
-
construct<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, response: ApiResponse, additionalRequestColumns: ApiRequestColumnMap, additionalResponseColumns: ResponseColumnItemTypeMap): Template<ItemTypeType>;
|
|
10
|
+
construct<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, response: ApiResponse, additionalRequestColumns: ApiRequestColumnMap, additionalResponseColumns: ItemTypeMap<ResponseColumnItemTypeMap>): Template<ItemTypeType>;
|
|
11
11
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ApiFormatter, ColumnHandler, ColumnUtil, ConversionMapService, ItemCreateService, ItemEntryService, KeyService } from '../classes';
|
|
1
|
+
import { ApiFormatter, CollectionEntryService, ColumnHandler, ColumnUtil, ConversionMapService, ItemCreateService, ItemEntryService, KeyService } from '../classes';
|
|
2
2
|
import { TemplateCache } from '../classes/TemplateCache';
|
|
3
3
|
import { ChangesDeltaFactory, ColumnExpansionFactory, ColumnSetFactory, ColumnSubsetCacheFactory, ItemCacheFactory, ItemEntryFactory, RequestColumnExpansionFactory } from '../factories';
|
|
4
4
|
import { ErrorHandlerInterface } from './ErrorHandlerInterface';
|
|
@@ -23,4 +23,5 @@ export interface TransactionItemHandlerDependencyInterface {
|
|
|
23
23
|
promiseService: PromiseLibraryInterface;
|
|
24
24
|
requestColumnExpansionFactory: RequestColumnExpansionFactory;
|
|
25
25
|
templateCache: TemplateCache;
|
|
26
|
+
collectionEntryService: CollectionEntryService;
|
|
26
27
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { ApiEnumItemType, ApiFields } from '@rentman/backend-types';
|
|
2
2
|
import { ColumnSet } from '../classes';
|
|
3
3
|
import { TemplateFactory } from '../factories';
|
|
4
|
-
import { ApiRequestColumnMap, ApiResponse, FieldMap, ResponseColumnItemTypeMap } from '../types';
|
|
4
|
+
import { ApiRequestColumnMap, ApiResponse, FieldMap, ItemTypeMap, ResponseColumnItemTypeMap } from '../types';
|
|
5
5
|
export declare class Template<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any> {
|
|
6
6
|
itemType: ItemTypeType;
|
|
7
7
|
response: ApiResponse;
|
|
8
|
+
additionalRequestColumns: ApiRequestColumnMap;
|
|
8
9
|
responseColumns: ResponseColumnItemTypeMap;
|
|
9
10
|
columns: ColumnSet<ItemTypeType>;
|
|
10
|
-
constructor(factory: TemplateFactory, itemType: ItemTypeType, response: ApiResponse, additionalRequestColumns: ApiRequestColumnMap, additionalResponseColumns: ResponseColumnItemTypeMap);
|
|
11
|
+
constructor(factory: TemplateFactory, itemType: ItemTypeType, response: ApiResponse, additionalRequestColumns: ApiRequestColumnMap, additionalResponseColumns: ItemTypeMap<ResponseColumnItemTypeMap>);
|
|
11
12
|
getFields(): FieldMap<ItemTypeType, ColumnIds>;
|
|
12
13
|
}
|
|
@@ -211,7 +211,7 @@ export declare type CollectionQuery = {
|
|
|
211
211
|
object: BackendApiQuery;
|
|
212
212
|
string: string;
|
|
213
213
|
};
|
|
214
|
-
export declare type CollectionResourceParentIdMap<ItemTypeType extends ApiEnumItemType = any> = ParentIdMap<CollectionResource<ItemTypeType>>;
|
|
214
|
+
export declare type CollectionResourceParentIdMap<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any> = ParentIdMap<CollectionResource<ItemTypeType, ColumnIds>>;
|
|
215
215
|
export declare type ResponseColumnMap<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any> = {
|
|
216
216
|
[ColumnId in ColumnIds[number]]: GetColumnType<ItemTypeType, ColumnId>;
|
|
217
217
|
};
|