@andrash/prisma-cache
Advanced tools
| import { PrismaClient } from "@prisma/client"; | ||
| interface IEntity { | ||
| [key: string]: any; | ||
| } | ||
| interface ICreateData { | ||
| [key: string]: string | number | boolean | Date; | ||
| } | ||
| interface IUpdateData { | ||
| [key: string]: string | number | boolean | Date; | ||
| } | ||
| interface IIncludeChild { | ||
@@ -17,3 +8,3 @@ [key: string]: boolean; | ||
| } | ||
| interface IPrismaTable<TEntity extends IEntity, TCreateData extends ICreateData, TUpdateData extends IUpdateData> { | ||
| interface IPrismaTable<TEntity, TCreateData, TUpdateData> { | ||
| create: (args: { | ||
@@ -33,3 +24,3 @@ select?: any; | ||
| include?: IIncludeChild; | ||
| }) => Promise<TEntity>; | ||
| }) => Promise<TEntity | null>; | ||
| update: (args: { | ||
@@ -63,3 +54,3 @@ where: any; | ||
| */ | ||
| export declare class PrismaCache<TEntity extends IEntity, TCreateData extends ICreateData, TUpdateData extends IUpdateData> { | ||
| export declare class PrismaCache<TEntity, TCreateData, TUpdateData> { | ||
| private readonly prismaClient; | ||
@@ -180,3 +171,3 @@ private readonly prismaTable; | ||
| */ | ||
| set(data: TEntity): void; | ||
| set(entity: TEntity): void; | ||
| /** | ||
@@ -183,0 +174,0 @@ * Unsets/deletes an entity in the cache without modifying the database table. |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"PrismaCache.d.ts","sourceRoot":"","sources":["../../src/PrismaCache.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"PrismaCache.d.ts","sourceRoot":"","sources":["../../src/PrismaCache.ts"],"names":[],"mappings":"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"} |
@@ -128,3 +128,4 @@ "use strict"; | ||
| // 暫時不支援 ID 變更 | ||
| if (data[this.idFieldName] !== undefined && data[this.idFieldName] !== id) { | ||
| if (data[this.idFieldName] !== undefined && | ||
| data[this.idFieldName] !== id) { | ||
| throw new Error(`ID in data (${data[this.idFieldName]}) does not match ID in path (${id})`); | ||
@@ -139,6 +140,6 @@ } | ||
| // 更新實體 | ||
| const entity = yield this.prismaTable.update({ | ||
| const entity = (yield this.prismaTable.update({ | ||
| where: { [this.idFieldName]: id }, | ||
| data, | ||
| }); | ||
| })); | ||
| // 快取實體 | ||
@@ -265,6 +266,6 @@ this.cacheMap.set(entity[this.idFieldName], entity); | ||
| */ | ||
| set(data) { | ||
| set(entity) { | ||
| this.ensureInit(); | ||
| const id = data[this.idFieldName]; | ||
| this.cacheMap.set(id, data); | ||
| const id = entity[this.idFieldName]; | ||
| this.cacheMap.set(id, entity); | ||
| this.setIsUnsynced(id); | ||
@@ -271,0 +272,0 @@ } |
+1
-1
| { | ||
| "name": "@andrash/prisma-cache", | ||
| "version": "1.1.0", | ||
| "version": "1.1.1", | ||
| "main": "dist/index.js", | ||
@@ -5,0 +5,0 @@ "types": "dist/index.d.ts", |
54188
-1.07%836
-0.95%