@slangy/react
Advanced tools
| import { CrudStore } from '../stores/createCrudStore.js'; | ||
| /** | ||
| * A function that removes an item from a collection based on its ID. | ||
| * | ||
| * @template Item The type of the collection item. | ||
| * @template ItemId The type of the item's identifier. | ||
| */ | ||
| type CrudRemover<Item, ItemId extends keyof Item, DeletionResponse = void> = (itemId: Item[ItemId]) => Promise<DeletionResponse>; | ||
| /** | ||
| * Parameters required to create a custom CRUD hook. | ||
@@ -15,2 +8,3 @@ * | ||
| * @template UpdateItemType The type of item being updated. | ||
| * @template DeletionReturnType The type of the result of a deletion. | ||
| * @template ReaderReturnType The type of data returned from the read function. | ||
@@ -20,5 +14,4 @@ * @template Extra Any extra properties or methods the resulting hook should have. | ||
| * @template ItemId The type of the item's identifier in the transformed data. | ||
| * @template Remover The type for the remove function. | ||
| */ | ||
| type CreateCrudHookParams<ReaderArgs extends unknown[], CreateItemType, UpdateItemType, ReaderReturnType, Extra, DeletionResult, TransformedType, ItemId extends keyof TransformedType, Remover extends CrudRemover<TransformedType, ItemId, DeletionResult>> = { | ||
| type CreateCrudHookParams<ReaderArgs extends unknown[], CreateItemType, UpdateItemType, DeletionReturnType, ReaderReturnType, Extra, TransformedType, ItemId extends keyof TransformedType> = { | ||
| store: () => CrudStore<TransformedType, ItemId>; | ||
@@ -28,3 +21,3 @@ create: (item: CreateItemType) => Promise<TransformedType>; | ||
| update: (item: UpdateItemType) => Promise<TransformedType>; | ||
| remove: Remover; | ||
| remove: (itemId: TransformedType[ItemId]) => Promise<DeletionReturnType>; | ||
| transform?: (data?: ReaderReturnType) => TransformedType[]; | ||
@@ -39,2 +32,3 @@ extra?: (data: TransformedType[]) => Extra; | ||
| * @template UpdateItemType The type of item being updated. | ||
| * @template DeletionReturnType The type of the result of a deletion. | ||
| * @template ReaderReturnType The type of data returned from the read function. | ||
@@ -46,3 +40,3 @@ * @template Extra Any extra properties or methods the resulting hook should have. | ||
| */ | ||
| declare const createCrudHook: <ReaderArgs extends unknown[], CreateItemType, UpdateItemType, ReaderReturnType, Extra, DeletionResult, TransformedType = ReaderReturnType, ItemId extends keyof TransformedType = "id" extends keyof TransformedType ? "id" : never, Remove extends CrudRemover<TransformedType, ItemId, DeletionResult> = CrudRemover<TransformedType, ItemId, DeletionResult>>({ store, create, read, update, remove, transform, extra, }: CreateCrudHookParams<ReaderArgs, CreateItemType, UpdateItemType, ReaderReturnType, Extra, DeletionResult, TransformedType, ItemId, Remove>) => (...args: ReaderArgs) => { | ||
| declare const createCrudHook: <ReaderArgs extends unknown[], CreateItemType, UpdateItemType, DeletionReturnType, ReaderReturnType, Extra, TransformedType = ReaderReturnType, ItemId extends keyof TransformedType = "id" extends keyof TransformedType ? "id" : never>({ store, create, read, update, remove, transform, extra, }: CreateCrudHookParams<ReaderArgs, CreateItemType, UpdateItemType, DeletionReturnType, ReaderReturnType, Extra, TransformedType, ItemId>) => (...args: ReaderArgs) => { | ||
| data: TransformedType[]; | ||
@@ -52,3 +46,3 @@ error: Error | undefined; | ||
| create(item: CreateItemType): Promise<void>; | ||
| remove(itemId: TransformedType[ItemId]): Promise<DeletionResult>; | ||
| remove(itemId: TransformedType[ItemId]): Promise<DeletionReturnType>; | ||
| update(item: UpdateItemType): Promise<void>; | ||
@@ -55,0 +49,0 @@ } & Extra; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"createCrudHook.d.ts","sourceRoot":"","sources":["../../src/hooks/createCrudHook.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD;;;;;GAKG;AACH,KAAK,WAAW,CAAC,IAAI,EAAE,MAAM,SAAS,MAAM,IAAI,EAAE,gBAAgB,GAAG,IAAI,IAAI,CAC3E,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KACjB,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/B;;;;;;;;;;;GAWG;AACH,KAAK,oBAAoB,CACvB,UAAU,SAAS,OAAO,EAAE,EAC5B,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,KAAK,EACL,cAAc,EACd,eAAe,EACf,MAAM,SAAS,MAAM,eAAe,EACpC,OAAO,SAAS,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,cAAc,CAAC,IAClE;IACF,KAAK,EAAE,MAAM,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3D,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzD,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3D,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,gBAAgB,KAAK,eAAe,EAAE,CAAC;IAC3D,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,KAAK,CAAC;CAC5C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,cAAc;;;;;;;SAwGnB,CAAC;AAEF,eAAe,cAAc,CAAC"} | ||
| {"version":3,"file":"createCrudHook.d.ts","sourceRoot":"","sources":["../../src/hooks/createCrudHook.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,KAAK,oBAAoB,CACvB,UAAU,SAAS,OAAO,EAAE,EAC5B,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,EACL,eAAe,EACf,MAAM,SAAS,MAAM,eAAe,IAClC;IACF,KAAK,EAAE,MAAM,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3D,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzD,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3D,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzE,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,gBAAgB,KAAK,eAAe,EAAE,CAAC;IAC3D,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,KAAK,CAAC;CAC5C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,cAAc;;;;;;;SAkGnB,CAAC;AAEF,eAAe,cAAc,CAAC"} |
@@ -8,2 +8,3 @@ import { useEffect, useState } from 'react'; | ||
| * @template UpdateItemType The type of item being updated. | ||
| * @template DeletionReturnType The type of the result of a deletion. | ||
| * @template ReaderReturnType The type of data returned from the read function. | ||
@@ -10,0 +11,0 @@ * @template Extra Any extra properties or methods the resulting hook should have. |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"createCrudHook.js","sourceRoot":"","sources":["../../src/hooks/createCrudHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AA8C5C;;;;;;;;;;;GAWG;AACH,MAAM,cAAc,GAAG,CAcrB,EACA,KAAK,EACL,MAAM,EACN,IAAI,EACJ,MAAM,EACN,MAAM,EACN,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAyB,EAC/C,KAAK,GAWN,EAAE,EAAE;IACH;;;;;OAKG;IACH,OAAO,SAAS,OAAO,CAAC,GAAG,IAAgB;QACzC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAoB,SAAS,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAElD,MAAM,EACJ,IAAI,EACJ,GAAG,EACH,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,GACxB,GAAG,KAAK,EAAE,CAAC;QAEZ,MAAM,eAAe,GAAG,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC;QAE3D,SAAS,CAAC,GAAG,EAAE;YACb,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;gBAC3B,YAAY,CAAC,IAAI,CAAC,CAAC;gBACnB,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;oBACnC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;oBACvB,YAAY,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,QAAQ,CAAC,GAAY,CAAC,CAAC;gBACzB,CAAC;wBAAS,CAAC;oBACT,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC,CAAC;YAEF,SAAS,EAAE,CAAC;YACZ,uDAAuD;QACzD,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;QAEtB,SAAS,CAAC,GAAG,EAAE;YACb,SAAS,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;YACjC,uDAAuD;QACzD,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAEd,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAExD,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,SAAS;YACpB,KAAK,CAAC,MAAM,CAAC,IAAoB;gBAC/B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnC,aAAa,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,MAA+B;gBAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACxB,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,IAAoB;gBAC/B,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC7B,CAAC;SACF,CAAC;QAEF,OAAO;YACL,GAAG,IAAI;YACP,GAAI,eAAyB;SAC9B,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"} | ||
| {"version":3,"file":"createCrudHook.js","sourceRoot":"","sources":["../../src/hooks/createCrudHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAmC5C;;;;;;;;;;;;GAYG;AACH,MAAM,cAAc,GAAG,CASrB,EACA,KAAK,EACL,MAAM,EACN,IAAI,EACJ,MAAM,EACN,MAAM,EACN,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAyB,EAC/C,KAAK,GAUN,EAAE,EAAE;IACH;;;;;OAKG;IACH,OAAO,SAAS,OAAO,CAAC,GAAG,IAAgB;QACzC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAoB,SAAS,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAElD,MAAM,EACJ,IAAI,EACJ,GAAG,EACH,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,GACxB,GAAG,KAAK,EAAE,CAAC;QAEZ,MAAM,eAAe,GAAG,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC;QAE3D,SAAS,CAAC,GAAG,EAAE;YACb,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;gBAC3B,YAAY,CAAC,IAAI,CAAC,CAAC;gBACnB,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;oBACnC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;oBACvB,YAAY,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,QAAQ,CAAC,GAAY,CAAC,CAAC;gBACzB,CAAC;wBAAS,CAAC;oBACT,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC,CAAC;YAEF,SAAS,EAAE,CAAC;YACZ,uDAAuD;QACzD,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;QAEtB,SAAS,CAAC,GAAG,EAAE;YACb,SAAS,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;YACjC,uDAAuD;QACzD,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAEd,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAExD,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,SAAS;YACpB,KAAK,CAAC,MAAM,CAAC,IAAoB;gBAC/B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnC,aAAa,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,MAA+B;gBAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACxB,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,IAAoB;gBAC/B,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC7B,CAAC;SACF,CAAC;QAEF,OAAO;YACL,GAAG,IAAI;YACP,GAAI,eAAyB;SAC9B,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"} |
+1
-1
| { | ||
| "name": "@slangy/react", | ||
| "version": "2.5.0", | ||
| "version": "2.6.0", | ||
| "author": { | ||
@@ -5,0 +5,0 @@ "name": "Dani Lupión", |
18176
-2.4%222
-2.63%