Skip to content

Storage 存储方法 API

本文逐项记录 @fast-china/utils 的 Storage 存储公开函数。

configureStorage 存储配置

在首次 Storage 操作前可选配置 LocalSession

签名

ts
export function configureStorage(options: StorageConfiguration = {}): void;

示例

ts
import { configureStorage } from "@fast-china/utils";

configureStorage({ prefix: "admin:", crypto: false });

输入

输入值输入值类型必填/默认值输入值说明
optionsStorageConfiguration否,默认 {}可选的全局键前缀、Codec、Base64 混淆选项与时钟。

返回: void

isStorageConfigured 存储配置

返回全局 Storage 是否已激活;显式配置或第一次 Storage 操作都会激活它。

签名

ts
export function isStorageConfigured(): boolean;

示例

ts
import { isStorageConfigured } from "@fast-china/utils";

const result = isStorageConfigured();

输入: 无参数。

返回

返回值返回值类型返回值说明
resultboolean已显式配置或因首次操作激活时为 true

Local.get / Session.get 读取

读取并解码当前命名空间的业务值;过期记录会被删除。

签名

ts
get<Value = string>(key: string, options?: StorageReadOptions): Value | undefined;

示例

ts
import { Local } from "@fast-china/utils";

const result = Local.get<{ name: string }>("profile");

输入

输入值输入值类型必填/默认值输入值说明
keystring不含全局前缀的非空业务键。
optionsStorageReadOptions单次 Base64 Codec 覆盖,必须与写入时一致。

返回

返回值返回值类型返回值说明
resultValue | undefined解码后的业务值;键缺失或过期时返回 undefined

Local.set / Session.set 写入

编码并写入业务值,可附加 TTL。

签名

ts
set<Value>(key: string, value: Value, options?: StorageWriteOptions): void;

示例

ts
import { Local } from "@fast-china/utils";

Local.set("profile", { name: "Fast" }, { ttlMs: 3_600_000 });

输入

输入值输入值类型必填/默认值输入值说明
keystring不含全局前缀的非空业务键。
valueValue当前 Codec 能够序列化的业务值。
optionsStorageWriteOptions单次 Codec 与有效毫秒数。

返回: void。非法键、TTL、值或后端失败时抛错。

Local.has / Session.has 存在

判断键是否存在、未过期且存储包络有效;不执行值的 Codec 解码。

签名

ts
has(key: string): boolean;

示例

ts
import { Local } from "@fast-china/utils";

const result = Local.has("profile");

输入

输入值输入值类型必填/默认值输入值说明
keystring不含全局前缀的非空业务键。

返回

返回值返回值类型返回值说明
resultboolean键存在且包络有效时为 true

Local.keys / Session.keys 键名

枚举当前命名空间的业务键。

签名

ts
keys(): string[];

示例

ts
import { Local } from "@fast-china/utils";

const result = Local.keys();

输入: 无参数。

返回

返回值返回值类型返回值说明
resultstring[]移除物理前缀并按字典序排列的新数组。

Local.remove / Session.remove 删除

幂等删除单个业务键。

签名

ts
remove(key: string): void;

示例

ts
import { Local } from "@fast-china/utils";

Local.remove("profile");

输入

输入值输入值类型必填/默认值输入值说明
keystring不含全局前缀的非空业务键。

返回: void

Local.removeByPrefix / Session.removeByPrefix 按前缀删除

删除当前命名空间中以指定文本开头的全部业务键。

签名

ts
removeByPrefix(keyPrefix: string): void;

示例

ts
import { Local } from "@fast-china/utils";

Local.removeByPrefix("profile:");

输入

输入值输入值类型必填/默认值输入值说明
keyPrefixstring不含全局前缀的非空业务键前缀。

返回: void。不会影响命名空间以外的键。

Local.pruneExpired / Session.pruneExpired 清理过期

扫描并删除当前命名空间的全部过期记录。

签名

ts
pruneExpired(): number;

示例

ts
import { Local } from "@fast-china/utils";

const result = Local.pruneExpired();

输入: 无参数。

返回

返回值返回值类型返回值说明
resultnumber本次实际删除的记录数量。

Local.clear / Session.clear 清空

清空当前命名空间,不影响同一后端的其他应用键。

签名

ts
clear(): void;

示例

ts
import { Session } from "@fast-china/utils";

Session.clear();

输入: 无参数。

返回: void

共享行为与边界

configureStorage 必须在第一次 Storage 操作之前调用;默认使用 fast__ 前缀与 JSON Codec。 配置激活后,相同配置重复调用幂等,不同配置抛错。get 的泛型只影响静态类型,不验证或转换实际业务结构。 set/get 的单次 crypto 选项必须配对;包络不记录 Codec。Base64 混淆不能保护敏感数据。 读取过期条目可能删除该条目。clear 只清理当前前缀;uni-app 不提供 Session 后端,Session 操作会抛错。 存储配额、隐私策略、非法 JSON 和后端不可用等错误按实际操作传播,不能把失败当作缓存未命中。