@isoftdata/svelte-store-crud
Advanced tools
@@ -40,2 +40,3 @@ import type { ConditionalKeys, Simplify } from 'type-fest'; | ||
| export type CrudStore<T, K extends EntityIdKey<T>> = Simplify<CrudWritable<T, K>>; | ||
| type EntityOrId<T, K extends EntityIdKey<T>> = T | T[K]; | ||
| export declare class CrudRuneStore<T, K extends EntityIdKey<T>> implements CrudStoreInterface<T, K> { | ||
@@ -52,10 +53,10 @@ #private; | ||
| unDelete(entity: T | T[]): void; | ||
| hasChanges(entity?: T | T[]): boolean; | ||
| isCreated(entity: T): boolean; | ||
| isUpdated(entity: T): boolean; | ||
| isDeleted(entity: T): boolean; | ||
| getCreated(entity: T): T | undefined; | ||
| getUpdated(entity: T): T | undefined; | ||
| getDeleted(entity: T): T | undefined; | ||
| hasChanges(entity?: EntityOrId<T, K> | EntityOrId<T, K>[]): boolean; | ||
| isCreated(entity: EntityOrId<T, K>): boolean; | ||
| isUpdated(entity: EntityOrId<T, K>): boolean; | ||
| isDeleted(entity: EntityOrId<T, K>): boolean; | ||
| getCreated(entity: EntityOrId<T, K>): T | undefined; | ||
| getUpdated(entity: EntityOrId<T, K>): T | undefined; | ||
| getDeleted(entity: EntityOrId<T, K>): T | undefined; | ||
| clear(type?: 'create' | 'update' | 'delete'): void; | ||
| } |
+12
-6
@@ -138,2 +138,8 @@ import { writable } from 'svelte/store'; | ||
| } | ||
| #getEntityId(entity) { | ||
| if (typeof entity === 'string' || typeof entity === 'number') { | ||
| return entity; | ||
| } | ||
| return entity[this.#idKey]; | ||
| } | ||
| set(value) { | ||
@@ -164,18 +170,18 @@ this.#crudMap = value; | ||
| isCreated(entity) { | ||
| return entity[this.#idKey] in this.#crudMap.created; | ||
| return this.#getEntityId(entity) in this.#crudMap.created; | ||
| } | ||
| isUpdated(entity) { | ||
| return entity[this.#idKey] in this.#crudMap.updated; | ||
| return this.#getEntityId(entity) in this.#crudMap.updated; | ||
| } | ||
| isDeleted(entity) { | ||
| return entity[this.#idKey] in this.#crudMap.deleted; | ||
| return this.#getEntityId(entity) in this.#crudMap.deleted; | ||
| } | ||
| getCreated(entity) { | ||
| return this.#crudMap.created[entity[this.#idKey]]; | ||
| return this.#crudMap.created[this.#getEntityId(entity)]; | ||
| } | ||
| getUpdated(entity) { | ||
| return this.#crudMap.updated[entity[this.#idKey]]; | ||
| return this.#crudMap.updated[this.#getEntityId(entity)]; | ||
| } | ||
| getDeleted(entity) { | ||
| return this.#crudMap.deleted[entity[this.#idKey]]; | ||
| return this.#crudMap.deleted[this.#getEntityId(entity)]; | ||
| } | ||
@@ -182,0 +188,0 @@ clear(type) { |
+1
-1
| { | ||
| "name": "@isoftdata/svelte-store-crud", | ||
| "version": "2.2.0", | ||
| "version": "2.3.0", | ||
| "files": [ | ||
@@ -5,0 +5,0 @@ "dist", |
+7
-7
@@ -76,27 +76,27 @@ # Svelte Store CRUD | ||
| #### hasChanges(entity?: T): boolean | ||
| #### hasChanges(entity?: EntityOrId<T, K> | Array<EntityOrId<T, K>>): boolean | ||
| If entity is passed, returns true if that entity is created/updated deleted. Otherwise, returns true if there are any entity changes in the store | ||
| #### isCreated(entity: T): boolean | ||
| #### isCreated(entity: EntityOrId<T, K>): boolean | ||
| Returns true if the passed entity is in the created map | ||
| #### isUpdated(entity: T): boolean | ||
| #### isUpdated(entity: EntityOrId<T, K>): boolean | ||
| Returns true if the passed entity is in the updated map | ||
| #### isDeleted(entity: T): boolean | ||
| #### isDeleted(entity: EntityOrId<T, K>): boolean | ||
| Returns true if the passed entity is in the deleted map | ||
| #### getCreated(entity: T): T | undefined | ||
| #### getCreated(entity: EntityOrId<T, K>): T | undefined | ||
| Returns the entity if it is in the created map | ||
| #### getUpdated(entity: T): T | undefined | ||
| #### getUpdated(entity: EntityOrId<T, K>): T | undefined | ||
| Returns the entity if it is in the updated map | ||
| #### getDeleted(entity: T): T | undefined | ||
| #### getDeleted(entity: EntityOrId<T, K>): T | undefined | ||
@@ -103,0 +103,0 @@ Returns the entity if it is in the deleted map |
15567
3.47%257
2.8%