UNPKG

keyv-file

Version:

File storage adapter for Keyv, using msgpack to serialize data fast and small.

27 lines (26 loc) 823 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SafeFilenameEncoder = void 0; /** * 跨平台安全文件名编解码器 * 基于 encodeURIComponent 实现 */ exports.SafeFilenameEncoder = { // 编码:将特殊字符转换为安全的文件名 encode(str) { return str .replace(/[^0-9a-zA-Z]/g, (_) => { const code = _.charCodeAt(0); if (code < 0 || code > 0x7e) { return _; } // 非字母数字字符需要转义 return '%' + _.charCodeAt(0).toString(16).padStart(2, '0'); }) .replace(/%/g, '_'); // 最后把 % 替换为 _ }, // 解码:还原原始字符串 decode(str) { return decodeURIComponent(str.replace(/_/g, '%')); }, };