@rentman/rm-core 3.0.1 → 4.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.
Files changed (36) hide show
  1. package/changelog.md +13 -0
  2. package/dist/rm-core.js +8452 -8668
  3. package/dist/rm-core.min.js +2 -2
  4. package/dist/types/classes/ApiResponseProcessor.d.ts +2 -1
  5. package/dist/types/classes/ChangesDelta.d.ts +3 -6
  6. package/dist/types/classes/ChangesDeltaBase.d.ts +1 -0
  7. package/dist/types/classes/ConversionMapService.d.ts +27 -0
  8. package/dist/types/classes/CreatedChangesDelta.d.ts +15 -0
  9. package/dist/types/classes/InternalChangesDelta.d.ts +1 -0
  10. package/dist/types/classes/ItemCache.d.ts +1 -1
  11. package/dist/types/classes/ItemCreateService.d.ts +6 -10
  12. package/dist/types/classes/ItemEntryService.d.ts +2 -9
  13. package/dist/types/classes/cache/AbstractCache.d.ts +3 -51
  14. package/dist/types/classes/cache/ItemHandlerBase.d.ts +1 -1
  15. package/dist/types/classes/cache/server/ServerCache.d.ts +3 -20
  16. package/dist/types/classes/cache/server/ServerItemHandler.d.ts +2 -1
  17. package/dist/types/classes/cache/transaction/TransactionCache.d.ts +14 -44
  18. package/dist/types/classes/cache/transaction/TransactionCollectionHandler.d.ts +6 -17
  19. package/dist/types/classes/cache/transaction/TransactionItemHandler.d.ts +14 -34
  20. package/dist/types/classes/index.d.ts +2 -0
  21. package/dist/types/core.d.ts +5 -4
  22. package/dist/types/factories/ItemResourceFactory.d.ts +2 -5
  23. package/dist/types/factories/TransactionCacheFactory.d.ts +4 -47
  24. package/dist/types/interfaces/AbstractCacheDependencyInterface.d.ts +44 -0
  25. package/dist/types/interfaces/ServerCacheDependencyInterface.d.ts +7 -0
  26. package/dist/types/interfaces/TransactionCollectionHandlerDependencyInterface.d.ts +20 -0
  27. package/dist/types/interfaces/TransactionItemHandlerDependencyInterface.d.ts +26 -0
  28. package/dist/types/interfaces/index.d.ts +4 -0
  29. package/dist/types/models/CollectionResource.d.ts +2 -1
  30. package/dist/types/models/CollectionResourceOptions.d.ts +3 -3
  31. package/dist/types/models/ItemResource.d.ts +3 -12
  32. package/dist/types/models/Template.d.ts +1 -1
  33. package/dist/types/models/index.d.ts +0 -1
  34. package/dist/types/types/ItemTypesCollection.d.ts +9 -8
  35. package/package.json +1 -1
  36. package/dist/types/models/ItemResourceOptions.d.ts +0 -6
@@ -14,6 +14,7 @@ export * from './ColumnInfo';
14
14
  export * from './ColumnSet';
15
15
  export * from './ColumnSubsetCache';
16
16
  export * from './ColumnUtil';
17
+ export * from './ConversionMapService';
17
18
  export * from './CreateRequest';
18
19
  export * from './ItemCache';
19
20
  export * from './ItemEntryService';
@@ -42,3 +43,4 @@ export * from './InternalChangesDelta';
42
43
  export * from './RequestBufferManager';
43
44
  export * from './RequestBuffer';
44
45
  export * from './ItemCreateService';
46
+ export * from './CreatedChangesDelta';
@@ -1,4 +1,4 @@
1
- import { ApiFormatter, ApiRequestService, CollectionEntryService, CollectionResourceService, ColumnCache, ColumnHandler, ColumnUtil, ItemEntryService, KeyService, LockService, QueryService, SocketMessageHandler } from './classes';
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
4
  import { ApiResponseProcessorFactory, ChangesCompilationFactory, CollectionCacheFactory, CollectionEntryFactory, CollectionMatcherFactory, CollectionResourceFactory, ColumnExpansionFactory, ColumnInfoFactory, ColumnSetFactory, ColumnSubsetCacheFactory, CreateRequestFactory, ItemCacheFactory, ItemEntryFactory, ItemResourceFactory, ModuleChangesCompilationFactory, QueryMatcherFactory, QueryParserFactory, RequestColumnExpansionFactory, TemplateFactory, TransactionCacheFactory } from './factories';
@@ -13,6 +13,7 @@ export declare class RmCore {
13
13
  apiRequestService: ApiRequestService;
14
14
  apiResponseProcessorFactory: ApiResponseProcessorFactory;
15
15
  changesCompilationFactory: ChangesCompilationFactory;
16
+ changesDeltaFactory: ChangesDeltaFactory;
16
17
  changesProcessorFactory: ChangesProcessorFactory;
17
18
  collectionCacheFactory: CollectionCacheFactory;
18
19
  collectionEntryFactory: CollectionEntryFactory;
@@ -27,6 +28,7 @@ export declare class RmCore {
27
28
  columnSetFactory: ColumnSetFactory;
28
29
  columnSubsetCacheFactory: ColumnSubsetCacheFactory;
29
30
  columnUtil: ColumnUtil;
31
+ conversionMapService: ConversionMapService;
30
32
  createRequestFactory: CreateRequestFactory;
31
33
  itemCacheFactory: ItemCacheFactory;
32
34
  itemCreateService: ItemCreateService;
@@ -34,7 +36,6 @@ export declare class RmCore {
34
36
  itemEntryService: ItemEntryService;
35
37
  itemResourceFactory: ItemResourceFactory;
36
38
  keyService: KeyService;
37
- transactionCacheFactory: TransactionCacheFactory;
38
39
  lockService: LockService;
39
40
  moduleChangesCompilationFactory: ModuleChangesCompilationFactory;
40
41
  queryMatcherFactory: QueryMatcherFactory;
@@ -42,9 +43,9 @@ export declare class RmCore {
42
43
  queryService: QueryService;
43
44
  requestColumnExpansionFactory: RequestColumnExpansionFactory;
44
45
  socketMessageHandler: SocketMessageHandler;
45
- templateFactory: TemplateFactory;
46
- changesDeltaFactory: ChangesDeltaFactory;
47
46
  templateCache: TemplateCache;
47
+ templateFactory: TemplateFactory;
48
+ transactionCacheFactory: TransactionCacheFactory;
48
49
  constructor(_apiRequestService: ApiRequestServiceInterface, authInterface: AuthInterface, errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, promiseLibrary: PromiseLibraryInterface, linkTreeService: LinkTreeServiceInterface);
49
50
  }
50
51
  export declare function noop(): void;
@@ -2,8 +2,7 @@ import { ApiFormatter, ColumnUtil } from '../classes';
2
2
  import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
3
3
  import { ErrorHandlerInterface, ExceptionHandlerInterface, PromiseLibraryInterface } from '../interfaces';
4
4
  import { ItemEntry, ItemResource } from '../models';
5
- import { ItemOptionsInterface, ItemType } from '../types';
6
- export declare type ResourceConstructor<ItemTypeType extends ItemType> = (itemEntry: ItemEntry<ItemTypeType>) => ItemResource<ItemTypeType>;
5
+ import { ItemType } from '../types';
7
6
  export declare class ItemResourceFactory {
8
7
  apiFormatter: ApiFormatter;
9
8
  errorHandler: ErrorHandlerInterface;
@@ -11,7 +10,5 @@ export declare class ItemResourceFactory {
11
10
  exceptionHandler: ExceptionHandlerInterface;
12
11
  columnUtil: ColumnUtil;
13
12
  constructor(apiFormatter: ApiFormatter, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, exceptionHandler: ExceptionHandlerInterface, columnUtil: ColumnUtil);
14
- getConstructor<ItemTypeType extends ItemType>(options: ItemOptionsInterface, transaction: TransactionCache): ResourceConstructor<ItemTypeType>;
15
- construct<ItemTypeType extends ItemType>(itemEntry: ItemEntry<ItemTypeType>, options: ItemOptionsInterface<ItemTypeType>, transaction: TransactionCache, isNew?: boolean): ItemResource<ItemTypeType>;
16
- private constructWithOptions;
13
+ construct<ItemTypeType extends ItemType>(itemEntry: ItemEntry<ItemTypeType>, transaction: TransactionCache, isNew?: boolean): ItemResource<ItemTypeType>;
17
14
  }
@@ -1,54 +1,11 @@
1
- import { ApiFormatter, ApiRequestService, CollectionEntryService, ColumnCache, ColumnHandler, ColumnUtil, ItemEntryService, KeyService, LockService, QueryService } from '../classes';
2
- import { ServerCache } from '../classes/cache/server/ServerCache';
3
- import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
4
- import { TransactionValidatorFactory } from '../classes/cache/transaction/TransactionValidator';
5
- import { ItemCreateService } from '../classes/ItemCreateService';
6
- import { RequestBufferManager } from '../classes/RequestBufferManager';
7
- import { TemplateCache } from '../classes/TemplateCache';
1
+ import { ServerCache, TransactionCache, TransactionValidatorFactory } from '../classes';
8
2
  import { RmCore } from '../core';
9
- import { CollectionCacheFactory, CollectionEntryFactory, CollectionMatcherFactory, CollectionResourceFactory, ColumnExpansionFactory, ColumnSetFactory, ColumnSubsetCacheFactory, ItemCacheFactory, ItemEntryFactory, ItemResourceFactory, ModuleChangesCompilationFactory, QueryMatcherFactory, QueryParserFactory, RequestColumnExpansionFactory } from '../factories';
10
- import { AuthInterface, ErrorHandlerInterface, ExceptionHandlerInterface, PromiseLibraryInterface } from '../interfaces';
11
- import { LinkTreeServiceInterface } from '../interfaces/LinkTreeServiceInterface';
12
- import { ChangesDeltaFactory } from './ChangesDeltaFactory';
13
- import { ChangesProcessorFactory } from './ChangesProcessorFactory';
3
+ import { ServerCacheDependencyInterface } from '../interfaces';
14
4
  export declare class TransactionCacheFactory {
5
+ private dependencies;
15
6
  private core;
16
- private columnCache;
17
- private requestBufferManager;
18
- private requestColumnExpansionFactory;
19
- private queryMatcherFactory;
20
- private authInterface;
21
- private changesDeltaFactory;
22
- private changesProcessorFactory;
23
- private lockService;
24
- private moduleChangesCompilationFactory;
25
- private collectionResourceFactory;
26
- private itemResourceFactory;
27
- private templateCache;
28
- private itemCacheFactory;
29
- private collectionCacheFactory;
30
- private errorHandler;
31
- private exceptionHandler;
32
- private promiseService;
33
- private apiFormatter;
34
- private apiRequestService;
35
- private columnExpansionFactory;
36
- private columnHandler;
37
- private columnSetFactory;
38
- private columnSubsetCacheFactory;
39
- private columnUtil;
40
- private itemEntryFactory;
41
- private itemEntryService;
42
- private keyService;
43
- private collectionEntryFactory;
44
- private collectionEntryService;
45
- private collectionMatcherFactory;
46
- private queryParserFactory;
47
- private queryService;
48
- private linkTreeService;
49
- private changesDeltaService;
50
7
  private readonly serverCache;
51
- constructor(core: RmCore, columnCache: ColumnCache, requestBufferManager: RequestBufferManager, requestColumnExpansionFactory: RequestColumnExpansionFactory, queryMatcherFactory: QueryMatcherFactory, authInterface: AuthInterface, changesDeltaFactory: ChangesDeltaFactory, changesProcessorFactory: ChangesProcessorFactory, lockService: LockService, moduleChangesCompilationFactory: ModuleChangesCompilationFactory, collectionResourceFactory: CollectionResourceFactory, itemResourceFactory: ItemResourceFactory, templateCache: TemplateCache, itemCacheFactory: ItemCacheFactory, collectionCacheFactory: CollectionCacheFactory, errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, promiseService: PromiseLibraryInterface, apiFormatter: ApiFormatter, apiRequestService: ApiRequestService, columnExpansionFactory: ColumnExpansionFactory, columnHandler: ColumnHandler, columnSetFactory: ColumnSetFactory, columnSubsetCacheFactory: ColumnSubsetCacheFactory, columnUtil: ColumnUtil, itemEntryFactory: ItemEntryFactory, itemEntryService: ItemEntryService, keyService: KeyService, collectionEntryFactory: CollectionEntryFactory, collectionEntryService: CollectionEntryService, collectionMatcherFactory: CollectionMatcherFactory, queryParserFactory: QueryParserFactory, queryService: QueryService, linkTreeService: LinkTreeServiceInterface, changesDeltaService: ItemCreateService);
8
+ constructor(dependencies: ServerCacheDependencyInterface, core: RmCore);
52
9
  /**
53
10
  * Todo[cache] Store a map of all transactions by transaction id ?
54
11
  */
@@ -0,0 +1,44 @@
1
+ import { ApiFormatter, ApiRequestService, CollectionEntryService, ColumnCache, ColumnHandler, ColumnUtil, ConversionMapService, ItemCreateService, ItemEntryService, KeyService, LockService, QueryService, RequestBufferManager } from '../classes';
2
+ import { TemplateCache } from '../classes/TemplateCache';
3
+ import { ChangesDeltaFactory, CollectionCacheFactory, CollectionEntryFactory, CollectionMatcherFactory, CollectionResourceFactory, ColumnExpansionFactory, ColumnSetFactory, ColumnSubsetCacheFactory, ItemCacheFactory, ItemEntryFactory, ItemResourceFactory, ModuleChangesCompilationFactory, QueryMatcherFactory, QueryParserFactory, RequestColumnExpansionFactory } from '../factories';
4
+ import { AuthInterface } from './AuthInterface';
5
+ import { ErrorHandlerInterface } from './ErrorHandlerInterface';
6
+ import { ExceptionHandlerInterface } from './ExceptionHandlerInterface';
7
+ import { LinkTreeServiceInterface } from './LinkTreeServiceInterface';
8
+ import { PromiseLibraryInterface } from './PromiseLibraryInterface';
9
+ export interface AbstractCacheDependencyInterface {
10
+ apiFormatter: ApiFormatter;
11
+ apiRequestService: ApiRequestService;
12
+ authInterface: AuthInterface;
13
+ changesDeltaFactory: ChangesDeltaFactory;
14
+ collectionCacheFactory: CollectionCacheFactory;
15
+ collectionEntryFactory: CollectionEntryFactory;
16
+ collectionEntryService: CollectionEntryService;
17
+ collectionMatcherFactory: CollectionMatcherFactory;
18
+ collectionResourceFactory: CollectionResourceFactory;
19
+ columnCache: ColumnCache;
20
+ columnExpansionFactory: ColumnExpansionFactory;
21
+ columnHandler: ColumnHandler;
22
+ columnSetFactory: ColumnSetFactory;
23
+ columnSubsetCacheFactory: ColumnSubsetCacheFactory;
24
+ columnUtil: ColumnUtil;
25
+ conversionMapService: ConversionMapService;
26
+ errorHandler: ErrorHandlerInterface;
27
+ exceptionHandler: ExceptionHandlerInterface;
28
+ itemCacheFactory: ItemCacheFactory;
29
+ itemCreateService: ItemCreateService;
30
+ itemEntryFactory: ItemEntryFactory;
31
+ itemEntryService: ItemEntryService;
32
+ itemResourceFactory: ItemResourceFactory;
33
+ keyService: KeyService;
34
+ linkTreeService: LinkTreeServiceInterface;
35
+ lockService: LockService;
36
+ moduleChangesCompilationFactory: ModuleChangesCompilationFactory;
37
+ promiseService: PromiseLibraryInterface;
38
+ queryMatcherFactory: QueryMatcherFactory;
39
+ queryParserFactory: QueryParserFactory;
40
+ queryService: QueryService;
41
+ requestBufferManager: RequestBufferManager;
42
+ requestColumnExpansionFactory: RequestColumnExpansionFactory;
43
+ templateCache: TemplateCache;
44
+ }
@@ -0,0 +1,7 @@
1
+ import { ItemCreateService } from '../classes';
2
+ import { ChangesProcessorFactory } from '../factories';
3
+ import { AbstractCacheDependencyInterface } from './AbstractCacheDependencyInterface';
4
+ export interface ServerCacheDependencyInterface extends AbstractCacheDependencyInterface {
5
+ changesProcessorFactory: ChangesProcessorFactory;
6
+ itemCreateService: ItemCreateService;
7
+ }
@@ -0,0 +1,20 @@
1
+ import { CollectionEntryService, ColumnHandler, ColumnUtil, KeyService } from '../classes';
2
+ import { ChangesDeltaFactory, CollectionCacheFactory, CollectionMatcherFactory, ColumnExpansionFactory, ColumnSubsetCacheFactory, RequestColumnExpansionFactory } from '../factories';
3
+ import { ErrorHandlerInterface } from './ErrorHandlerInterface';
4
+ import { ExceptionHandlerInterface } from './ExceptionHandlerInterface';
5
+ import { PromiseLibraryInterface } from './PromiseLibraryInterface';
6
+ export interface TransactionCollectionHandlerDependencyInterface {
7
+ requestColumnExpansionFactory: RequestColumnExpansionFactory;
8
+ columnUtil: ColumnUtil;
9
+ columnSubsetCacheFactory: ColumnSubsetCacheFactory;
10
+ columnExpansionFactory: ColumnExpansionFactory;
11
+ changesDeltaFactory: ChangesDeltaFactory;
12
+ collectionCacheFactory: CollectionCacheFactory;
13
+ collectionEntryService: CollectionEntryService;
14
+ collectionMatcherFactory: CollectionMatcherFactory;
15
+ columnHandler: ColumnHandler;
16
+ errorHandler: ErrorHandlerInterface;
17
+ keyService: KeyService;
18
+ promiseService: PromiseLibraryInterface;
19
+ exceptionHandler: ExceptionHandlerInterface;
20
+ }
@@ -0,0 +1,26 @@
1
+ import { ApiFormatter, ColumnHandler, ColumnUtil, ConversionMapService, ItemCreateService, ItemEntryService, KeyService } from '../classes';
2
+ import { TemplateCache } from '../classes/TemplateCache';
3
+ import { ChangesDeltaFactory, ColumnExpansionFactory, ColumnSetFactory, ColumnSubsetCacheFactory, ItemCacheFactory, ItemEntryFactory, RequestColumnExpansionFactory } from '../factories';
4
+ import { ErrorHandlerInterface } from './ErrorHandlerInterface';
5
+ import { ExceptionHandlerInterface } from './ExceptionHandlerInterface';
6
+ import { PromiseLibraryInterface } from './PromiseLibraryInterface';
7
+ export interface TransactionItemHandlerDependencyInterface {
8
+ apiFormatter: ApiFormatter;
9
+ changesDeltaFactory: ChangesDeltaFactory;
10
+ columnExpansionFactory: ColumnExpansionFactory;
11
+ columnHandler: ColumnHandler;
12
+ columnSetFactory: ColumnSetFactory;
13
+ columnSubsetCacheFactory: ColumnSubsetCacheFactory;
14
+ columnUtil: ColumnUtil;
15
+ conversionMapService: ConversionMapService;
16
+ errorHandler: ErrorHandlerInterface;
17
+ exceptionHandler: ExceptionHandlerInterface;
18
+ itemCacheFactory: ItemCacheFactory;
19
+ itemCreateService: ItemCreateService;
20
+ itemEntryFactory: ItemEntryFactory;
21
+ itemEntryService: ItemEntryService;
22
+ keyService: KeyService;
23
+ promiseService: PromiseLibraryInterface;
24
+ requestColumnExpansionFactory: RequestColumnExpansionFactory;
25
+ templateCache: TemplateCache;
26
+ }
@@ -5,3 +5,7 @@ export * from './AuthInterface';
5
5
  export * from './ApiRequestServiceInterface';
6
6
  export * from './SocketMessageInterface';
7
7
  export * from './LinkTreeServiceInterface';
8
+ export * from './AbstractCacheDependencyInterface';
9
+ export * from './TransactionItemHandlerDependencyInterface';
10
+ export * from './TransactionCollectionHandlerDependencyInterface';
11
+ export * from './ServerCacheDependencyInterface';
@@ -11,6 +11,7 @@ export declare class CollectionResource<ItemTypeType extends ItemType = any> {
11
11
  items: Array<ItemResource<ItemTypeType>>;
12
12
  columns: ResponseColumnItemTypeMap;
13
13
  protected itemIdMap: ItemResourceItemIdMap<ItemResource<ItemTypeType>>;
14
+ private fieldChangeDeregFns;
14
15
  private readonly onChange;
15
16
  constructor(factory: CollectionResourceFactory, entry: CollectionEntry<ItemTypeType>, options: CollectionResourceOptions<ItemTypeType>, transaction: TransactionCache);
16
17
  onConstruct(): void;
@@ -58,5 +59,5 @@ export declare class CollectionResource<ItemTypeType extends ItemType = any> {
58
59
  * @remarks
59
60
  * - Doesn't revert changes on the items themselves
60
61
  */
61
- clearResource(clearItems?: boolean): void;
62
+ clearResource(): void;
62
63
  }
@@ -1,5 +1,5 @@
1
1
  import { CollectionEntry, CollectionResource, ItemEntry, ItemResource } from '../models';
2
- import { ConversionMap, ItemType, OnChangeFunction } from '../types';
2
+ import { ConversionMap, FieldChangeCallback, ItemType } from '../types';
3
3
  export declare type CollectionResourceCallback<ItemTypeType extends ItemType> = (itemResources: Array<ItemResource<ItemTypeType>>, collectionResource: CollectionResource<ItemTypeType>) => void;
4
4
  export declare type CollectionResourceOnAddCallback<ItemTypeType extends ItemType> = (itemResources: Array<ItemResource<ItemTypeType>>, collectionResource: CollectionResource<ItemTypeType>, isInitialCall: boolean) => void;
5
5
  export declare type CollectionResourceInitialCallback<ItemTypeType extends ItemType> = (itemEntries: Array<ItemEntry<ItemTypeType>>, collectionEntry: CollectionEntry<ItemTypeType>) => void;
@@ -9,12 +9,12 @@ export declare class CollectionResourceOptions<ItemTypeType extends ItemType> {
9
9
  callOnAddWithInitialItems: boolean;
10
10
  /**
11
11
  * @deprecated
12
- * You should use itemResource.onChange and compare previous.id with fields.id
12
+ * You should use register a {@link TransactionCache.registerFieldChangeCallback field change callback} and compare previous.id with fields.id
13
13
  */
14
14
  onItemsCreated: OnItemsCreatedCallback;
15
- onChange: OnChangeFunction;
16
15
  onAdd: CollectionResourceOnAddCallback<ItemTypeType>;
17
16
  onRemove: CollectionResourceCallback<ItemTypeType>;
17
+ onChange: FieldChangeCallback;
18
18
  onAddInitial: CollectionResourceInitialCallback<ItemTypeType>;
19
19
  onRemoveInitial: CollectionResourceInitialCallback<ItemTypeType>;
20
20
  resourceKey: string | null;
@@ -1,11 +1,10 @@
1
1
  import { TransactionCache } from '../classes';
2
2
  import { ItemResourceFactory } from '../factories';
3
- import { ItemEntry, ItemResourceOptions } from '../models';
3
+ import { ItemEntry } from '../models';
4
4
  import { EntryParentNull, FieldMap, ItemType, PromiseInterface, ResponseColumn } from '../types';
5
5
  export declare class ItemResource<ItemTypeType extends ItemType = any> {
6
6
  protected readonly factory: ItemResourceFactory;
7
7
  readonly entry: ItemEntry<ItemTypeType>;
8
- readonly options: ItemResourceOptions<ItemTypeType>;
9
8
  protected readonly _isNew: boolean;
10
9
  protected readonly transaction: TransactionCache;
11
10
  columns: {
@@ -13,7 +12,7 @@ export declare class ItemResource<ItemTypeType extends ItemType = any> {
13
12
  };
14
13
  fields: FieldMap<ItemTypeType>;
15
14
  initial: Readonly<FieldMap<ItemTypeType>>;
16
- constructor(factory: ItemResourceFactory, entry: ItemEntry<ItemTypeType>, options: ItemResourceOptions<ItemTypeType>, _isNew: boolean, transaction: TransactionCache);
15
+ constructor(factory: ItemResourceFactory, entry: ItemEntry<ItemTypeType>, _isNew: boolean, transaction: TransactionCache);
17
16
  onConstruct(): void;
18
17
  /**
19
18
  * @description
@@ -34,7 +33,7 @@ export declare class ItemResource<ItemTypeType extends ItemType = any> {
34
33
  * @deprecated
35
34
  * Use {@link TransactionCache.applyChangesDelta transaction.applyChangesDelta} instead
36
35
  */
37
- callOnChange(previous: FieldMap<ItemTypeType>): void;
36
+ callOnChange(): void;
38
37
  /**
39
38
  * @description
40
39
  * Utility function to easily check if a field is changed.
@@ -60,14 +59,6 @@ export declare class ItemResource<ItemTypeType extends ItemType = any> {
60
59
  */
61
60
  isNew(): boolean;
62
61
  isLocal(): boolean;
63
- /**
64
- * @description
65
- * Removes the reference to the {@link ItemResource ItemResource} from the {@link TransactionCache TransactionCache}, so that the OnChange callback won't be called anymore.
66
- *
67
- * Warning:
68
- * This doesn't revert any changes made to the item, in order to revert the changes you should use {@link TransactionItemHandler.clearItemEntry TransactionItemHandler.clearItemEntry}
69
- */
70
- clearResource(): void;
71
62
  toJSON(): {
72
63
  columns: string[];
73
64
  fields: FieldMap<ItemTypeType>;
@@ -4,8 +4,8 @@ import { ApiRequestColumnMap, ApiResponse, FieldMap, ItemType, ResponseColumnIte
4
4
  export declare class Template<ItemTypeType extends ItemType = any> {
5
5
  itemType: ItemTypeType;
6
6
  response: ApiResponse;
7
- fields: FieldMap<ItemTypeType>;
8
7
  responseColumns: ResponseColumnItemTypeMap;
9
8
  columns: ColumnSet<ItemTypeType>;
10
9
  constructor(factory: TemplateFactory, itemType: ItemTypeType, response: ApiResponse, additionalRequestColumns: ApiRequestColumnMap, additionalResponseColumns: ResponseColumnItemTypeMap);
10
+ getFields(): FieldMap<ItemTypeType>;
11
11
  }
@@ -1,5 +1,4 @@
1
1
  export * from './ItemEntryOptions';
2
- export * from './ItemResourceOptions';
3
2
  export * from './ItemEntry';
4
3
  export * from './ItemResource';
5
4
  export * from './CollectionEntryOptions';
@@ -1,5 +1,5 @@
1
1
  import { ApiResponseProcessor, CollectionMatcher, ColumnSet, RequestColumnExpansion } from '../classes';
2
- import { CollectionEntry, CollectionEntryOptions, CollectionEntryOptionsInterface, CollectionResource, CollectionResourceOptions, CollectionResourceOptionsInterface, ItemEntry, ItemEntryOptionsInterface, ItemResource, ItemResourceOptionsInterface } from '../models';
2
+ import { CollectionEntry, CollectionEntryOptions, CollectionEntryOptionsInterface, CollectionResource, CollectionResourceOptions, CollectionResourceOptionsInterface, ItemEntry, ItemEntryOptionsInterface, ItemResource } from '../models';
3
3
  export declare type EntryParent = {
4
4
  itemType: string;
5
5
  itemId: number;
@@ -12,7 +12,7 @@ export declare type EntryParentNull = EntryParent | null;
12
12
  export declare type FieldMap<_ItemTypeType extends ItemType = any> = {
13
13
  [key: string]: any;
14
14
  };
15
- export declare type ItemOptionsInterface<ItemTypeType extends ItemType = any> = ItemEntryOptionsInterface & ItemResourceOptionsInterface<ItemTypeType>;
15
+ export declare type ItemOptionsInterface = ItemEntryOptionsInterface;
16
16
  export declare type CollectionOptionsInterface<ItemTypeType extends ItemType = any> = CollectionEntryOptionsInterface & CollectionResourceOptionsInterface<ItemTypeType>;
17
17
  export interface CollectionDefinition<ItemTypeType extends ItemType = any> {
18
18
  itemType: ItemTypeType;
@@ -24,12 +24,6 @@ export interface CollectionDefinition<ItemTypeType extends ItemType = any> {
24
24
  export interface LinkCollectionDefinition<ItemTypeType extends ItemType = any> extends CollectionDefinition<ItemTypeType> {
25
25
  linkField: string;
26
26
  }
27
- export declare type OnChangeFunction<ItemTypeType extends ItemType = any> = (itemResource: ItemResource<ItemTypeType>, previous: FieldMap<ItemTypeType>,
28
- /**
29
- * @description
30
- * Returns 'false' if the field changed
31
- */
32
- compareField: (field: keyof FieldMap<ItemTypeType>) => boolean, isCalledAfterSocketUpdate: boolean) => void;
33
27
  export declare enum StateKeyType {
34
28
  New = "new",
35
29
  Duplicate = "duplicate"
@@ -260,3 +254,10 @@ export declare type ApiLinkTree = {
260
254
  */
261
255
  export declare type FilterItemEntryCallback = <ItemTypeType extends ItemType>(itemType: ItemTypeType, fields: FieldMap<ItemTypeType>) => boolean;
262
256
  export declare type ModifyFieldsCallback = <ItemTypeType extends ItemType>(itemType: ItemTypeType, fields: FieldMap<ItemTypeType>, itemIdConversionMap?: ItemIdConversionMap) => void;
257
+ /**
258
+ * @description
259
+ * Returns 'false' if the field changed
260
+ */
261
+ export declare type CompareFieldCallback<ItemTypeType extends ItemType = any> = (field: keyof FieldMap<ItemTypeType>) => boolean;
262
+ export declare type FieldChangeCallback<ItemTypeType extends ItemType = any> = (itemEntry: ItemEntry<ItemTypeType>, compareField: CompareFieldCallback, fields: FieldMap<ItemTypeType>, isCalledAfterSocketUpdate: boolean, previous: FieldMap<ItemTypeType>) => void;
263
+ export declare type DeregFunction = () => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rentman/rm-core",
3
- "version": "3.0.1",
3
+ "version": "4.0.0",
4
4
  "description": "Rentman core functionalities",
5
5
  "main": "./dist/rm-core.js",
6
6
  "types": "./dist/types/index.d.ts",
@@ -1,6 +0,0 @@
1
- import { ItemType, OnChangeFunction } from '../types';
2
- export declare type ItemResourceOptionsInterface<ItemTypeType extends ItemType = any> = Partial<ItemResourceOptions<ItemTypeType>>;
3
- export declare class ItemResourceOptions<ItemTypeType extends ItemType = any> {
4
- onChange: OnChangeFunction<ItemTypeType>;
5
- constructor(values: ItemResourceOptionsInterface<ItemTypeType>);
6
- }