@cave/cache
Advanced tools
+52
-3
| import { Level } from 'level'; | ||
| export declare class CCache { | ||
| db: Level; | ||
| constructor(db_folder_path: string); | ||
| period: number; | ||
| constructor(db_folder_path: string, period?: number); | ||
| fork(config: { | ||
| prefix: string | number; | ||
| period: number; | ||
| }): { | ||
| set: (key: string, value: unknown) => Promise<void>; | ||
| get: <T>(key: string) => Promise<{ | ||
| state: boolean; | ||
| ts: number; | ||
| rawData: T; | ||
| validData: T; | ||
| }>; | ||
| del: (key: string) => Promise<boolean>; | ||
| setMany: (list: { | ||
| key: string; | ||
| value: unknown; | ||
| }[]) => Promise<boolean>; | ||
| getMany: <T_1>(keys: string[]) => Promise<{ | ||
| state: boolean; | ||
| ts: number; | ||
| rawData: T_1; | ||
| validData: T_1; | ||
| }[]>; | ||
| delMany: (keys: string[]) => Promise<boolean>; | ||
| }; | ||
| getId(prefix: string | number, key: string): string; | ||
| init(): Promise<void>; | ||
| set(key: string, value: unknown): Promise<void>; | ||
| get<T>(key: string): Promise<T>; | ||
| clean(past_time?: number): Promise<void>; | ||
| get<T>(key: string): Promise<{ | ||
| state: boolean; | ||
| ts: number; | ||
| rawData: T; | ||
| validData: T; | ||
| }>; | ||
| del(key: string): Promise<boolean>; | ||
| setMany(list: { | ||
| key: string; | ||
| value: unknown; | ||
| }[]): Promise<void>; | ||
| getMany<T>(keys: string[]): Promise<{ | ||
| state: boolean; | ||
| ts: number; | ||
| rawData: T; | ||
| validData: T; | ||
| }[]>; | ||
| delMany(keys: string[]): Promise<boolean>; | ||
| clean(past_time?: number): Promise<boolean>; | ||
| private setWithPrefix; | ||
| private getWithPrefix; | ||
| private delWithPrefix; | ||
| private setManyWithPrefix; | ||
| private getManyWithPrefix; | ||
| private delManyWithPrefix; | ||
| } |
+1
-1
@@ -1,1 +0,1 @@ | ||
| "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CCache=void 0;const level_1=require("level");class CCache{db;constructor(e){this.db=new level_1.Level(e,{valueEncoding:"json"})}async init(){await this.db.open()}async set(e,t){await this.db.put(e,{ts:Date.now(),payload:t},{valueEncoding:"json"})}async get(e){return(await this.db.get(e,{valueEncoding:"json"})).payload}async clean(e=6048e5){try{const{db:t}=this;for await(const a of t.iterator()){const s=a[0],n=a[1],o=Date.now()-e;n.ts<o&&await t.del(s)}}catch(e){}}}exports.CCache=CCache; | ||
| "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CCache=void 0;const level_1=require("level");class CCache{db;period;constructor(t,e=72e5){this.db=new level_1.Level(t,{valueEncoding:"json"}),this.period=e}fork(t){return{set:async(e,a)=>await this.setWithPrefix(e,a,t.prefix),get:async e=>await this.getWithPrefix(e,t),del:async e=>await this.delWithPrefix(e,t.prefix),setMany:async e=>await this.setManyWithPrefix(e,t.prefix),getMany:async e=>await this.getManyWithPrefix(e,t),delMany:async e=>await this.delManyWithPrefix(e,t.prefix)}}getId(t,e){return`${t}${e}`}async init(){await this.db.open()}async set(t,e){return await this.setWithPrefix(t,e,"")}async get(t){return await this.getWithPrefix(t,{prefix:"",period:this.period})}async del(t){return await this.delWithPrefix(t,"")}async setMany(t){await this.setManyWithPrefix(t,"")}async getMany(t){return await this.getManyWithPrefix(t,{prefix:"",period:this.period})}async delMany(t){return await this.delManyWithPrefix(t,"")}async clean(t=6048e5){try{const{db:e}=this;for await(const a of e.iterator()){const i=a[0],s=a[1],r=Date.now()-t;s.ts<r&&await e.del(i)}return!0}catch(t){return!1}}async setWithPrefix(t,e,a){const i=this.getId(a,t);await this.db.put(i,{ts:Date.now(),payload:e},{valueEncoding:"json"})}async getWithPrefix(t,e){const a=this.getId(e.prefix,t),i=await this.db.get(a,{valueEncoding:"json"}),s=i.payload,r=Date.now()-i.ts<e.period;return{state:r,ts:i.ts,rawData:s,validData:r?s:void 0}}async delWithPrefix(t,e){try{const a=this.getId(e,t);return await this.db.del(a),!0}catch(t){return!1}}async setManyWithPrefix(t,e){try{return await this.db.batch(t.map((t=>({type:"put",key:this.getId(e,t.key),value:{ts:Date.now(),payload:t.value}}))),{valueEncoding:"json"}),!0}catch(t){return!1}}async getManyWithPrefix(t,e){const a=e.prefix?t.map((t=>this.getId(e.prefix,t))):t;return(await this.db.getMany(a,{valueEncoding:"json"})).map((t=>{const a=t.payload,i=Date.now()-t.ts<e.period;return{state:i,ts:t.ts,rawData:a,validData:i?a:void 0}}))}async delManyWithPrefix(t,e){try{return await this.db.batch(t.map((t=>({type:"del",key:this.getId(e,t)})))),!0}catch(t){return!1}}}exports.CCache=CCache; |
+1
-1
| { | ||
| "name": "@cave/cache", | ||
| "version": "1.0.2", | ||
| "version": "1.0.3", | ||
| "publishConfig": { | ||
@@ -5,0 +5,0 @@ "access": "public" |
Trivial Package
Supply chain riskPackages less than 10 lines of code are easily copied into your own project and may not warrant the additional supply chain risk of an external dependency.
Found 1 instance in 1 package
5215
135.55%58
544.44%0
-100%