import { IKvDefineIndexesOptions, IKvIndex } from "./lib/defineIndexes" import { IKvliteOptions, useKvlite } from "./lib/Kvlite" export type IKvMapOptions = { /** 合集名称 */ collectionName?: string /** 索引 */ indexes?: { [field: string]: IKvIndex } /** 索引选项 */ indexesOptions?: IKvDefineIndexesOptions } & IKvliteOptions /** * 获取一个 sqlite KV 存储实例,相当于 useKvlite().useCollection() 的封装 * KV 存储提供类似 Map 的接口,可以方便地存取键值对数据 */ export async function useKvMap(dbFile: string | ":memory:", options?: IKvMapOptions) { let kvlite = await useKvlite(dbFile, options) let collectionName = options?.collectionName || "KvMap0" let map = kvlite.useCollection(collectionName, options) if (options?.indexes) { map.defineIndexes(options.indexes, options.indexesOptions) } return map }