@slangy/react
Advanced tools
@@ -8,3 +8,3 @@ import { CrudStore } from '../stores/createCrudStore.js'; | ||
| */ | ||
| type CrudRemover<Item, ItemId extends keyof Item> = (itemId: Item[ItemId]) => Promise<void>; | ||
| type CrudRemover<Item, ItemId extends keyof Item, DeletionResponse = void> = (itemId: Item[ItemId]) => Promise<DeletionResponse>; | ||
| /** | ||
@@ -22,3 +22,3 @@ * Parameters required to create a custom CRUD hook. | ||
| */ | ||
| type CreateCrudHookParams<ReaderArgs extends unknown[], CreateItemType, UpdateItemType, ReaderReturnType, Extra, TransformedType, ItemId extends keyof TransformedType, Remover extends CrudRemover<TransformedType, ItemId>> = { | ||
| type CreateCrudHookParams<ReaderArgs extends unknown[], CreateItemType, UpdateItemType, ReaderReturnType, Extra, DeletionResult, TransformedType, ItemId extends keyof TransformedType, Remover extends CrudRemover<TransformedType, ItemId, DeletionResult>> = { | ||
| store: () => CrudStore<TransformedType, ItemId>; | ||
@@ -44,3 +44,3 @@ create: (item: CreateItemType) => Promise<TransformedType>; | ||
| */ | ||
| declare const createCrudHook: <ReaderArgs extends unknown[], CreateItemType, UpdateItemType, ReaderReturnType, Extra, TransformedType = ReaderReturnType, ItemId extends keyof TransformedType = "id" extends keyof TransformedType ? "id" : never, Remove extends CrudRemover<TransformedType, ItemId> = CrudRemover<TransformedType, ItemId>>({ store, create, read, update, remove, transform, extra, }: CreateCrudHookParams<ReaderArgs, CreateItemType, UpdateItemType, ReaderReturnType, Extra, TransformedType, ItemId, Remove>) => (...args: ReaderArgs) => { | ||
| 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) => { | ||
| data: TransformedType[]; | ||
@@ -50,3 +50,3 @@ error: Error | undefined; | ||
| create(item: CreateItemType): Promise<void>; | ||
| remove(itemId: TransformedType[ItemId]): Promise<void>; | ||
| remove(itemId: TransformedType[ItemId]): Promise<DeletionResult>; | ||
| update(item: UpdateItemType): Promise<void>; | ||
@@ -53,0 +53,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,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5F;;;;;;;;;;;GAWG;AACH,KAAK,oBAAoB,CACvB,UAAU,SAAS,OAAO,EAAE,EAC5B,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,KAAK,EACL,eAAe,EACf,MAAM,SAAS,MAAM,eAAe,EACpC,OAAO,SAAS,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,IAClD;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;;;;;;;SAiGnB,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;;;;;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"} |
@@ -60,4 +60,5 @@ import { useEffect, useState } from 'react'; | ||
| async remove(itemId) { | ||
| await remove(itemId); | ||
| const result = await remove(itemId); | ||
| removeFromStore(itemId); | ||
| return result; | ||
| }, | ||
@@ -64,0 +65,0 @@ async update(item) { |
@@ -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;AA2C5C;;;;;;;;;;;GAWG;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,CAAC,MAAM,CAAC,CAAC;gBACrB,eAAe,CAAC,MAAM,CAAC,CAAC;YAC1B,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;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"} |
+13
-13
| { | ||
| "name": "@slangy/react", | ||
| "version": "2.4.0", | ||
| "version": "2.5.0", | ||
| "author": { | ||
@@ -40,9 +40,9 @@ "name": "Dani Lupión", | ||
| "devDependencies": { | ||
| "@types/jest": "^29.5.8", | ||
| "@types/node": "^20.9.2", | ||
| "@types/react": "^18.2.37", | ||
| "@typescript-eslint/eslint-plugin": "^6.12.0", | ||
| "@typescript-eslint/parser": "^6.12.0", | ||
| "eslint": "^8.54.0", | ||
| "eslint-config-prettier": "^9.0.0", | ||
| "@types/jest": "^29.5.11", | ||
| "@types/node": "^20.10.4", | ||
| "@types/react": "^18.2.42", | ||
| "@typescript-eslint/eslint-plugin": "^6.13.2", | ||
| "@typescript-eslint/parser": "^6.13.2", | ||
| "eslint": "^8.55.0", | ||
| "eslint-config-prettier": "^9.1.0", | ||
| "eslint-config-react-app": "^7.0.1", | ||
@@ -55,11 +55,11 @@ "eslint-import-resolver-typescript": "^3.6.1", | ||
| "eslint-plugin-react-hooks": "^4.6.0", | ||
| "eslint-plugin-react-refresh": "^0.4.4", | ||
| "eslint-plugin-react-refresh": "^0.4.5", | ||
| "jest": "^29.7.0", | ||
| "lint-staged": "^15.1.0", | ||
| "nodemon": "^3.0.1", | ||
| "lint-staged": "^15.2.0", | ||
| "nodemon": "^3.0.2", | ||
| "prettier": "^3.1.0", | ||
| "react": "^18.2.0", | ||
| "swr": "^2.2.4", | ||
| "typescript": "^5.3.2", | ||
| "zustand": "^4.4.6" | ||
| "typescript": "^5.3.3", | ||
| "zustand": "^4.4.7" | ||
| }, | ||
@@ -66,0 +66,0 @@ "lint-staged": { |
18622
1.49%228
0.88%