将 keyv 从 5.x 升级到 6.x
根据 TypeScript 类型自动比较 keyv 5.6.0 与 6.1.0 的公开 API。签名变化表示可能存在不兼容变更,并非确定结论。
概要
| 已删除的导入路径 | 0 |
|---|---|
| 已删除的导出 | 7 |
| 已修改的签名 | 3 |
| 已删除的类或接口成员 | 60 |
| 已修改的类或接口成员 | 22 |
| 新增弃用 | 2 |
| 要求变化(engines、peer 依赖) | 0 |
| 新增导出 | 47 |
已删除的导出
| import | export | kind | 之前 |
|---|---|---|---|
keyv | Serialize | type | <Value>(data: DeserializedData<Value>) => string | Promise<string> |
keyv | StoredData | type | Value | DeserializedData<Value> | undefined |
keyv | Deserialize | type | <Value>(data: string) => DeserializedData<Value> | Promise<DeserializedData<Value> | undefined> | undefined |
keyv | IEventEmitter | type | { on(event: string, listener: (...arguments_: any[]) => void): IEventEmitter; } |
keyv | StoredDataRaw | type | DeserializedData<Value> | undefined |
keyv | StoredDataNoRaw | type | Value | undefined |
keyv | CompressionAdapter | type | { compress(value: any, options?: any): Promise<any>; decompress(value: any, options?: any): Promise<any>; serialize<Value>(data: DeserializedData<Value>): string | Promise<string>; deserialize<Value>(data: string): DeserializedData<Value> | Promise<DeserializedData<Value> | undefined> | undefined; } |
已修改的签名
| export | 之前 | 之后 |
|---|---|---|
keyv · KeyvEntry | { key: string; value: any; ttl?: number | undefined; } | { key: string; value: Value; ttl?: number | undefined; } |
keyv · KeyvOptions | { emitErrors?: boolean | undefined; namespace?: string | undefined; serialize?: Serialize | undefined; deserialize?: Deserialize | undefined; store?: any; ttl?: number | undefined; compression?: any; stats?: boolean | undefined; useKeyPrefix?: boolean | undefined; throwOnErrors?: boolean | undefined; } | { namespace?: string | undefined; serialization?: false | KeyvSerializationAdapter | undefined; store?: any; ttl?: number | undefined; compression?: any; stats?: boolean | undefined; sanitize?: KeyvSanitizeOptions | undefined; encryption?: KeyvEncryptionAdapter | undefined; checkExpired?: boolean | undefined; } |
keyv · KeyvStoreAdapter | { opts: any; namespace?: string | undefined; get<Value>(key: string): Promise<StoredData<Value>>; set(key: string, value: any, ttl?: number | undefined): any; setMany?(values: { key: string; value: any; ttl?: number | undefined; }[]): Promise<void>; delete(key: string): Promise<boolean>; clear(): Promise<void>; has?(key: string): Promise<boolean>; hasMany?(keys: string[]): Promise<boolean[]>; getMany?<Value>(keys: string[]): Promise<StoredData<Value | undefined>[]>; disconnect?(): Promise<void>; deleteMany?(key: string[]): Promise<boolean>; iterator?<Value>(namespace?: string | undefined): Asy… | any |
已删除的类或接口成员
| member | import | 之前 |
|---|---|---|
Keyv.on | keyv | (event: string, listener: EventListener): Keyv<GenericValue> |
Keyv.off | keyv | (event: string, listener: EventListener): void |
Keyv.emit | keyv | (event: string, ...arguments_: any[]): void |
Keyv.once | keyv | (event: string, listener: EventListener): void |
Keyv.opts | keyv | KeyvOptions_ |
Keyv.hooks | keyv | HooksManager |
Keyv.listeners | keyv | (event: string): EventListener[] |
Keyv.serialize | keyv | Serialize | undefined |
Keyv._serialize | keyv | any |
Keyv.addListener | keyv | (event: string, listener: EventListener): void |
Keyv.deserialize | keyv | Deserialize | undefined |
Keyv._deserialize | keyv | any |
Keyv.maxListeners | keyv | (): number |
Keyv.useKeyPrefix | keyv | boolean |
Keyv._getKeyPrefix | keyv | (key: string): string |
Keyv._maxListeners | keyv | number |
Keyv._useKeyPrefix | keyv | any |
Keyv.serializeData | keyv | <T>(data: DeserializedData<T>): Promise<string | DeserializedData<T>> |
Keyv.throwOnErrors | keyv | boolean |
Keyv._throwOnErrors | keyv | any |
Keyv.removeListener | keyv | (event: string, listener: EventListener): void |
Keyv._eventListeners | keyv | Map<string, EventListener[]> |
Keyv._getKeyUnprefix | keyv | (key: string): string |
Keyv.deserializeData | keyv | <T>(data: string | DeserializedData<T>): Promise<DeserializedData<T> | undefined> |
Keyv.setMaxListeners | keyv | (n: number): void |
Keyv.generateIterator | keyv | (iterator: IteratorFunction): IteratorFunction |
Keyv._getKeyPrefixArray | keyv | (keys: string[]): string[] |
Keyv.removeAllListeners | keyv | (event?: string | undefined): void |
Keyv._checkIterableAdapter | keyv | (): boolean |
Keyv._isValidStorageAdapter | keyv | (store: any): boolean |
default.on | keyv | (event: string, listener: EventListener): Keyv<GenericValue> |
default.off | keyv | (event: string, listener: EventListener): void |
default.emit | keyv | (event: string, ...arguments_: any[]): void |
default.once | keyv | (event: string, listener: EventListener): void |
default.opts | keyv | KeyvOptions_ |
default.hooks | keyv | HooksManager |
default.listeners | keyv | (event: string): EventListener[] |
default.serialize | keyv | Serialize | undefined |
default._serialize | keyv | any |
default.addListener | keyv | (event: string, listener: EventListener): void |
default.deserialize | keyv | Deserialize | undefined |
default._deserialize | keyv | any |
default.maxListeners | keyv | (): number |
default.useKeyPrefix | keyv | boolean |
default._getKeyPrefix | keyv | (key: string): string |
default._maxListeners | keyv | number |
default._useKeyPrefix | keyv | any |
default.serializeData | keyv | <T>(data: DeserializedData<T>): Promise<string | DeserializedData<T>> |
default.throwOnErrors | keyv | boolean |
default._throwOnErrors | keyv | any |
default.removeListener | keyv | (event: string, listener: EventListener): void |
default._eventListeners | keyv | Map<string, EventListener[]> |
default._getKeyUnprefix | keyv | (key: string): string |
default.deserializeData | keyv | <T>(data: string | DeserializedData<T>): Promise<DeserializedData<T> | undefined> |
default.setMaxListeners | keyv | (n: number): void |
default.generateIterator | keyv | (iterator: IteratorFunction): IteratorFunction |
default._getKeyPrefixArray | keyv | (keys: string[]): string[] |
default.removeAllListeners | keyv | (event?: string | undefined): void |
default._checkIterableAdapter | keyv | (): boolean |
default._isValidStorageAdapter | keyv | (store: any): boolean |
已修改的类或接口成员
| member | 之前 | 之后 |
|---|---|---|
Keyv.get | <Value = GenericValue>(key: string, options?: { raw: false; } | undefined): Promise<StoredDataNoRaw<Value>> | <Value = GenericValue>(key: string, options?: { raw: true; } | undefined): Promise<StoredDataRaw<Value>> | <Value = GenericValue>(key: string[], options?: { raw: false; } | undefined): Promi… | <Value = GenericValue>(key: string): Promise<Value | undefined> | <Value = GenericValue>(key: string[]): Promise<(Value | undefined)[]> |
Keyv.stats | StatsManager | KeyvStats |
Keyv.delete | (key: string | string[]): Promise<boolean> | (key: string): Promise<boolean> | (keys: string[]): Promise<boolean[]> |
Keyv.getRaw | <Value = GenericValue>(key: string): Promise<StoredDataRaw<Value>> | <Value = GenericValue>(key: string): Promise<KeyvStorageGetResult<Value>> |
Keyv.getMany | <Value = GenericValue>(keys: string[], options?: { raw: false; } | undefined): Promise<StoredDataNoRaw<Value>[]> | <Value = GenericValue>(keys: string[], options?: { raw: true; } | undefined): Promise<StoredDataRaw<Value>[]> | <Value = GenericValue>(keys: string[]): Promise<(Value | undefined)[]> |
Keyv.setMany | <Value = GenericValue>(entries: KeyvEntry[]): Promise<boolean[]> | <Value = GenericValue>(entries: KeyvEntry<Value>[]): Promise<boolean[]> |
Keyv.iterator | IteratorFunction | undefined | (): AsyncGenerator<[string, any], void, any> |
Keyv.deleteMany | (keys: string[]): Promise<boolean> | (keys: string[]): Promise<boolean[]> |
Keyv.getManyRaw | <Value = GenericValue>(keys: string[]): Promise<StoredDataRaw<Value>[]> | <Value = GenericValue>(keys: string[]): Promise<KeyvStorageGetResult<Value>[]> |
Keyv.compression | CompressionAdapter | undefined | KeyvCompressionAdapter | undefined |
Keyv.constructor | <GenericValue = any>(store?: KeyvStoreAdapter | KeyvOptions | Map<any, any> | undefined, options?: Omit<KeyvOptions, "store"> | undefined): Keyv<GenericValue> | <GenericValue = any>(options?: KeyvOptions | undefined): Keyv<GenericValue> | <GenericValue = any>(store?: any, options?: Omit<KeyvOptions, "store"> | undefined): Keyv<GenericValue> | <GenericValue = any>(options?: KeyvOptions | undefined): Keyv<GenericValue> |
default.get | <Value = GenericValue>(key: string, options?: { raw: false; } | undefined): Promise<StoredDataNoRaw<Value>> | <Value = GenericValue>(key: string, options?: { raw: true; } | undefined): Promise<StoredDataRaw<Value>> | <Value = GenericValue>(key: string[], options?: { raw: false; } | undefined): Promi… | <Value = GenericValue>(key: string): Promise<Value | undefined> | <Value = GenericValue>(key: string[]): Promise<(Value | undefined)[]> |
default.stats | StatsManager | KeyvStats |
default.delete | (key: string | string[]): Promise<boolean> | (key: string): Promise<boolean> | (keys: string[]): Promise<boolean[]> |
default.getRaw | <Value = GenericValue>(key: string): Promise<StoredDataRaw<Value>> | <Value = GenericValue>(key: string): Promise<KeyvStorageGetResult<Value>> |
default.getMany | <Value = GenericValue>(keys: string[], options?: { raw: false; } | undefined): Promise<StoredDataNoRaw<Value>[]> | <Value = GenericValue>(keys: string[], options?: { raw: true; } | undefined): Promise<StoredDataRaw<Value>[]> | <Value = GenericValue>(keys: string[]): Promise<(Value | undefined)[]> |
default.setMany | <Value = GenericValue>(entries: KeyvEntry[]): Promise<boolean[]> | <Value = GenericValue>(entries: KeyvEntry<Value>[]): Promise<boolean[]> |
default.iterator | IteratorFunction | undefined | (): AsyncGenerator<[string, any], void, any> |
default.deleteMany | (keys: string[]): Promise<boolean> | (keys: string[]): Promise<boolean[]> |
default.getManyRaw | <Value = GenericValue>(keys: string[]): Promise<StoredDataRaw<Value>[]> | <Value = GenericValue>(keys: string[]): Promise<KeyvStorageGetResult<Value>[]> |
default.compression | CompressionAdapter | undefined | KeyvCompressionAdapter | undefined |
default.constructor | <GenericValue = any>(store?: KeyvStoreAdapter | KeyvOptions | Map<any, any> | undefined, options?: Omit<KeyvOptions, "store"> | undefined): Keyv<GenericValue> | <GenericValue = any>(options?: KeyvOptions | undefined): Keyv<GenericValue> | <GenericValue = any>(store?: any, options?: Omit<KeyvOptions, "store"> | undefined): Keyv<GenericValue> | <GenericValue = any>(options?: KeyvOptions | undefined): Keyv<GenericValue> |
新增弃用
| export | @deprecated |
|---|---|
keyv · DeserializedData | Use `KeyvValue` instead. |
keyv · KeyvStoreAdapter | Use `KeyvStorageAdapter` instead. |
要求变化(engines、peer 依赖)
未发现。
新增导出 (47)
| import | export | kind |
|---|---|---|
keyv | KeyvAny | type |
keyv | KeyvStats | class |
keyv | KeyvValue | type |
keyv | KeyvEvents | enum |
keyv | KeyvMapAny | type |
keyv | MethodType | type |
keyv | createKeyv | function |
keyv | detectKeyv | function |
keyv | KeyvMapType | type |
keyv | KeyvMethods | type |
keyv | KeyvAnyArray | type |
keyv | KeyvSanitize | class |
keyv | KeyvCapability | type |
keyv | KeyvProperties | type |
keyv | jsonSerializer | variable |
keyv | KeyvBridgeStore | type |
keyv | KeyvCompression | type |
keyv | KeyvStatsOptions | type |
keyv | KeyvStorageEntry | type |
keyv | KeyvBridgeAdapter | class |
keyv | KeyvMemoryAdapter | class |
keyv | KeyvStorageMethod | type |
keyv | detectKeyvStorage | function |
keyv | KeyvJsonSerializer | class |
keyv | KeyvStorageAdapter | type |
keyv | KeyvStorageMethods | type |
keyv | KeyvTelemetryEvent | type |
keyv | KeyvSanitizeAdapter | type |
keyv | KeyvSanitizeOptions | type |
keyv | KeyvSanitizePatterns | type |
keyv | KeyvStorageGetResult | type |
keyv | detectKeyvEncryption | function |
keyv | KeyvEncryptionAdapter | type |
keyv | KeyvEncryptionMethods | type |
keyv | KeyvStorageCapability | type |
keyv | detectKeyvCompression | function |
keyv | keyvStorageCapability | function |
keyv | KeyvCompressionAdapter | type |
keyv | KeyvCompressionMethods | type |
keyv | detectKeyvSerialization | function |
keyv | KeyvBridgeAdapterOptions | type |
keyv | KeyvEncryptionCapability | type |
keyv | KeyvMemoryAdapterOptions | type |
keyv | KeyvSerializationAdapter | type |
keyv | KeyvSerializationMethods | type |
keyv | KeyvCompressionCapability | type |
keyv | KeyvSerializationCapability | type |
把这些数据交给你的 AI 智能体
Vigia 是免费的 MCP 服务器:你的编程智能体在写代码之前就能检查版本、不兼容变更和安全漏洞。无需注册,无需 API 密钥。
claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp
添加到 Cursor添加到 VS Code★ 在 GitHub 上加星
任何其他 MCP 客户端
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }常见问题
将 keyv 从 5 升级到 6 有哪些不兼容变更?
在 keyv 5.6.0 与 6.1.0 之间,Vigia 发现 7 个已删除的导出、3 个已修改的签名,以及 82 个已删除或修改的类或接口成员。
keyv 6 中弃用了哪些内容?
keyv 6.1.0 中有 2 个导出或成员新被标记为弃用。
供智能体使用
GET https://vigia.coredls.cloud/v1/packages/npm/keyv/upgrade?from=5.6.0&to=6.1.0