@lytjs/plugin-storage 6.5.0 → 6.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +1 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +54 -54
- package/dist/index.d.cts +0 -39
- package/dist/index.d.ts +0 -39
package/dist/index.cjs
CHANGED
|
@@ -6,10 +6,7 @@ var core = require('@lytjs/core');
|
|
|
6
6
|
|
|
7
7
|
// src/index.ts
|
|
8
8
|
function createStorage(options = {}) {
|
|
9
|
-
const {
|
|
10
|
-
defaultType = "local",
|
|
11
|
-
prefix = "lyt_"
|
|
12
|
-
} = options;
|
|
9
|
+
const { defaultType = "local", prefix = "lyt_" } = options;
|
|
13
10
|
function getStorage(type) {
|
|
14
11
|
if (typeof window === "undefined") return null;
|
|
15
12
|
try {
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["definePlugin"],"mappings":";;;;;;;AAWA,SAAS,aAAA,CAAc,OAAA,GAA0B,EAAC,EAAoB;AACpE,EAAA,MAAM
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["definePlugin"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * @lytjs/plugin-storage\n *\n * LytJS official storage plugin with localStorage and sessionStorage support, plus JSON serialization.\n *\n * @packageDocumentation\n */\n\nimport { definePlugin } from '@lytjs/core';\nimport type { StorageType, StorageItem, StorageOptions, StorageInstance } from './types';\n\nfunction createStorage(options: StorageOptions = {}): StorageInstance {\n const { defaultType = 'local', prefix = 'lyt_' } = options;\n\n function getStorage(type: StorageType): Storage | null {\n if (typeof window === 'undefined') return null;\n try {\n return type === 'local' ? window.localStorage : window.sessionStorage;\n } catch {\n /* empty */\n return null;\n }\n }\n\n function getKey(key: string): string {\n return `${prefix}${key}`;\n }\n\n function set<T>(key: string, value: T, expires?: number) {\n const storage = getStorage(defaultType);\n if (!storage) return;\n\n const item: StorageItem<T> = {\n value,\n expires: expires ? Date.now() + expires : undefined,\n };\n\n try {\n storage.setItem(getKey(key), JSON.stringify(item));\n } catch {\n /* empty */\n }\n }\n\n function get<T>(key: string, defaultValue?: T): T | null {\n const storage = getStorage(defaultType);\n if (!storage) return defaultValue ?? null;\n\n try {\n const raw = storage.getItem(getKey(key));\n if (!raw) return defaultValue ?? null;\n\n const item: StorageItem<T> = JSON.parse(raw);\n\n if (item.expires && Date.now() > item.expires) {\n remove(key);\n return defaultValue ?? null;\n }\n\n return item.value;\n } catch {\n /* empty */\n return defaultValue ?? null;\n }\n }\n\n function remove(key: string) {\n const storage = getStorage(defaultType);\n if (!storage) return;\n\n try {\n storage.removeItem(getKey(key));\n } catch {\n /* empty */\n }\n }\n\n function clear() {\n const storage = getStorage(defaultType);\n if (!storage) return;\n\n try {\n const keysToRemove: string[] = [];\n for (let i = 0; i < storage.length; i++) {\n const key = storage.key(i);\n if (key && key.startsWith(prefix)) {\n keysToRemove.push(key);\n }\n }\n keysToRemove.forEach((k) => storage.removeItem(k));\n } catch {\n /* empty */\n }\n }\n\n function has(key: string): boolean {\n return get(key) !== null;\n }\n\n function keys(): string[] {\n const storage = getStorage(defaultType);\n if (!storage) return [];\n\n const result: string[] = [];\n try {\n for (let i = 0; i < storage.length; i++) {\n const key = storage.key(i);\n if (key && key.startsWith(prefix)) {\n result.push(key.slice(prefix.length));\n }\n }\n } catch {\n /* empty */\n }\n return result;\n }\n\n function clearExpired() {\n const storage = getStorage(defaultType);\n if (!storage) return;\n\n try {\n const keysToRemove: string[] = [];\n for (let i = 0; i < storage.length; i++) {\n const fullKey = storage.key(i);\n if (!fullKey || !fullKey.startsWith(prefix)) continue;\n\n try {\n const raw = storage.getItem(fullKey);\n if (!raw) continue;\n\n const item: StorageItem = JSON.parse(raw);\n if (item.expires && Date.now() > item.expires) {\n keysToRemove.push(fullKey);\n }\n } catch {\n /* empty */\n }\n }\n keysToRemove.forEach((k) => storage.removeItem(k));\n } catch {\n /* empty */\n }\n }\n\n return {\n set,\n get,\n remove,\n clear,\n has,\n keys,\n clearExpired,\n };\n}\n\nconst pluginStorage = definePlugin({\n name: 'storage',\n version: '6.0.0',\n description:\n 'LytJS official storage plugin with localStorage and sessionStorage support, plus JSON serialization',\n author: 'LytJS Team',\n keywords: ['lytjs', 'storage', 'localStorage', 'sessionStorage', 'persistence'],\n schema: {\n type: 'object',\n object: {\n properties: {\n defaultType: { type: 'string', default: 'local' },\n prefix: { type: 'string', default: 'lyt_' },\n },\n },\n },\n install(app, options) {\n const storage = createStorage(options as StorageOptions);\n\n app.config.globalProperties.$storage = storage;\n\n app.provide('lyt-storage', storage);\n },\n});\n\nexport default pluginStorage;\nexport type { StorageType, StorageItem, StorageOptions, StorageInstance };\nexport { createStorage };\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -2,10 +2,7 @@ import { definePlugin } from '@lytjs/core';
|
|
|
2
2
|
|
|
3
3
|
// src/index.ts
|
|
4
4
|
function createStorage(options = {}) {
|
|
5
|
-
const {
|
|
6
|
-
defaultType = "local",
|
|
7
|
-
prefix = "lyt_"
|
|
8
|
-
} = options;
|
|
5
|
+
const { defaultType = "local", prefix = "lyt_" } = options;
|
|
9
6
|
function getStorage(type) {
|
|
10
7
|
if (typeof window === "undefined") return null;
|
|
11
8
|
try {
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;AAWA,SAAS,aAAA,CAAc,OAAA,GAA0B,EAAC,EAAoB;AACpE,EAAA,MAAM
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * @lytjs/plugin-storage\n *\n * LytJS official storage plugin with localStorage and sessionStorage support, plus JSON serialization.\n *\n * @packageDocumentation\n */\n\nimport { definePlugin } from '@lytjs/core';\nimport type { StorageType, StorageItem, StorageOptions, StorageInstance } from './types';\n\nfunction createStorage(options: StorageOptions = {}): StorageInstance {\n const { defaultType = 'local', prefix = 'lyt_' } = options;\n\n function getStorage(type: StorageType): Storage | null {\n if (typeof window === 'undefined') return null;\n try {\n return type === 'local' ? window.localStorage : window.sessionStorage;\n } catch {\n /* empty */\n return null;\n }\n }\n\n function getKey(key: string): string {\n return `${prefix}${key}`;\n }\n\n function set<T>(key: string, value: T, expires?: number) {\n const storage = getStorage(defaultType);\n if (!storage) return;\n\n const item: StorageItem<T> = {\n value,\n expires: expires ? Date.now() + expires : undefined,\n };\n\n try {\n storage.setItem(getKey(key), JSON.stringify(item));\n } catch {\n /* empty */\n }\n }\n\n function get<T>(key: string, defaultValue?: T): T | null {\n const storage = getStorage(defaultType);\n if (!storage) return defaultValue ?? null;\n\n try {\n const raw = storage.getItem(getKey(key));\n if (!raw) return defaultValue ?? null;\n\n const item: StorageItem<T> = JSON.parse(raw);\n\n if (item.expires && Date.now() > item.expires) {\n remove(key);\n return defaultValue ?? null;\n }\n\n return item.value;\n } catch {\n /* empty */\n return defaultValue ?? null;\n }\n }\n\n function remove(key: string) {\n const storage = getStorage(defaultType);\n if (!storage) return;\n\n try {\n storage.removeItem(getKey(key));\n } catch {\n /* empty */\n }\n }\n\n function clear() {\n const storage = getStorage(defaultType);\n if (!storage) return;\n\n try {\n const keysToRemove: string[] = [];\n for (let i = 0; i < storage.length; i++) {\n const key = storage.key(i);\n if (key && key.startsWith(prefix)) {\n keysToRemove.push(key);\n }\n }\n keysToRemove.forEach((k) => storage.removeItem(k));\n } catch {\n /* empty */\n }\n }\n\n function has(key: string): boolean {\n return get(key) !== null;\n }\n\n function keys(): string[] {\n const storage = getStorage(defaultType);\n if (!storage) return [];\n\n const result: string[] = [];\n try {\n for (let i = 0; i < storage.length; i++) {\n const key = storage.key(i);\n if (key && key.startsWith(prefix)) {\n result.push(key.slice(prefix.length));\n }\n }\n } catch {\n /* empty */\n }\n return result;\n }\n\n function clearExpired() {\n const storage = getStorage(defaultType);\n if (!storage) return;\n\n try {\n const keysToRemove: string[] = [];\n for (let i = 0; i < storage.length; i++) {\n const fullKey = storage.key(i);\n if (!fullKey || !fullKey.startsWith(prefix)) continue;\n\n try {\n const raw = storage.getItem(fullKey);\n if (!raw) continue;\n\n const item: StorageItem = JSON.parse(raw);\n if (item.expires && Date.now() > item.expires) {\n keysToRemove.push(fullKey);\n }\n } catch {\n /* empty */\n }\n }\n keysToRemove.forEach((k) => storage.removeItem(k));\n } catch {\n /* empty */\n }\n }\n\n return {\n set,\n get,\n remove,\n clear,\n has,\n keys,\n clearExpired,\n };\n}\n\nconst pluginStorage = definePlugin({\n name: 'storage',\n version: '6.0.0',\n description:\n 'LytJS official storage plugin with localStorage and sessionStorage support, plus JSON serialization',\n author: 'LytJS Team',\n keywords: ['lytjs', 'storage', 'localStorage', 'sessionStorage', 'persistence'],\n schema: {\n type: 'object',\n object: {\n properties: {\n defaultType: { type: 'string', default: 'local' },\n prefix: { type: 'string', default: 'lyt_' },\n },\n },\n },\n install(app, options) {\n const storage = createStorage(options as StorageOptions);\n\n app.config.globalProperties.$storage = storage;\n\n app.provide('lyt-storage', storage);\n },\n});\n\nexport default pluginStorage;\nexport type { StorageType, StorageItem, StorageOptions, StorageInstance };\nexport { createStorage };\n"]}
|
package/package.json
CHANGED
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@lytjs/plugin-storage",
|
|
3
|
-
"version": "6.
|
|
4
|
-
"description": "LytJS official storage plugin with localStorage and sessionStorage support, plus JSON serialization",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "./dist/index.cjs",
|
|
7
|
-
"module": "./dist/index.mjs",
|
|
8
|
-
"types": "./dist/index.d.ts",
|
|
9
|
-
"exports": {
|
|
10
|
-
".": {
|
|
11
|
-
"types": "./dist/index.d.ts",
|
|
12
|
-
"import": "./dist/index.mjs",
|
|
13
|
-
"require": "./dist/index.cjs"
|
|
14
|
-
},
|
|
15
|
-
"./package.json": "./package.json"
|
|
16
|
-
},
|
|
17
|
-
"files": [
|
|
18
|
-
"dist"
|
|
19
|
-
],
|
|
20
|
-
"sideEffects": false,
|
|
21
|
-
"scripts": {
|
|
22
|
-
"build": "tsup",
|
|
23
|
-
"dev": "tsup --watch",
|
|
24
|
-
"test": "vitest run",
|
|
25
|
-
"test:watch": "vitest",
|
|
26
|
-
"test:coverage": "vitest run --coverage",
|
|
27
|
-
"type-check": "tsc --noEmit",
|
|
28
|
-
"lint": "eslint \"src/**/*.ts\"",
|
|
29
|
-
"clean": "rm -rf dist"
|
|
30
|
-
},
|
|
31
|
-
"dependencies": {
|
|
32
|
-
"@lytjs/core": "
|
|
33
|
-
"@lytjs/reactivity": "
|
|
34
|
-
"@lytjs/common-is": "
|
|
35
|
-
},
|
|
36
|
-
"devDependencies": {
|
|
37
|
-
"tsup": "^8.0.0",
|
|
38
|
-
"typescript": "^5.4.0",
|
|
39
|
-
"vitest": "^3.0.0"
|
|
40
|
-
},
|
|
41
|
-
"license": "MIT",
|
|
42
|
-
"repository": {
|
|
43
|
-
"type": "git",
|
|
44
|
-
"url": "https://gitee.com/lytjs/lytjs.git",
|
|
45
|
-
"directory": "packages/plugins/packages/plugin-storage"
|
|
46
|
-
},
|
|
47
|
-
"keywords": [
|
|
48
|
-
"lytjs",
|
|
49
|
-
"storage",
|
|
50
|
-
"localStorage",
|
|
51
|
-
"sessionStorage",
|
|
52
|
-
"persistence"
|
|
53
|
-
]
|
|
54
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@lytjs/plugin-storage",
|
|
3
|
+
"version": "6.6.0",
|
|
4
|
+
"description": "LytJS official storage plugin with localStorage and sessionStorage support, plus JSON serialization",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.mjs",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.mjs",
|
|
13
|
+
"require": "./dist/index.cjs"
|
|
14
|
+
},
|
|
15
|
+
"./package.json": "./package.json"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist"
|
|
19
|
+
],
|
|
20
|
+
"sideEffects": false,
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "tsup",
|
|
23
|
+
"dev": "tsup --watch",
|
|
24
|
+
"test": "vitest run",
|
|
25
|
+
"test:watch": "vitest",
|
|
26
|
+
"test:coverage": "vitest run --coverage",
|
|
27
|
+
"type-check": "tsc --noEmit",
|
|
28
|
+
"lint": "eslint \"src/**/*.ts\"",
|
|
29
|
+
"clean": "rm -rf dist"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@lytjs/core": "workspace:*",
|
|
33
|
+
"@lytjs/reactivity": "workspace:*",
|
|
34
|
+
"@lytjs/common-is": "workspace:*"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"tsup": "^8.0.0",
|
|
38
|
+
"typescript": "^5.4.0",
|
|
39
|
+
"vitest": "^3.0.0"
|
|
40
|
+
},
|
|
41
|
+
"license": "MIT",
|
|
42
|
+
"repository": {
|
|
43
|
+
"type": "git",
|
|
44
|
+
"url": "https://gitee.com/lytjs/lytjs.git",
|
|
45
|
+
"directory": "packages/plugins/packages/plugin-storage"
|
|
46
|
+
},
|
|
47
|
+
"keywords": [
|
|
48
|
+
"lytjs",
|
|
49
|
+
"storage",
|
|
50
|
+
"localStorage",
|
|
51
|
+
"sessionStorage",
|
|
52
|
+
"persistence"
|
|
53
|
+
]
|
|
54
|
+
}
|
package/dist/index.d.cts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import * as _lytjs_core from '@lytjs/core';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @lytjs/plugin-storage - 类型定义
|
|
5
|
-
*/
|
|
6
|
-
type StorageType = 'local' | 'session';
|
|
7
|
-
interface StorageItem<T = unknown> {
|
|
8
|
-
/** 数据 */
|
|
9
|
-
value: T;
|
|
10
|
-
/** 过期时间戳 */
|
|
11
|
-
expires?: number;
|
|
12
|
-
}
|
|
13
|
-
interface StorageOptions {
|
|
14
|
-
/** 默认存储类型 */
|
|
15
|
-
defaultType?: StorageType;
|
|
16
|
-
/** 命名空间前缀 */
|
|
17
|
-
prefix?: string;
|
|
18
|
-
}
|
|
19
|
-
interface StorageInstance {
|
|
20
|
-
/** 设置值 */
|
|
21
|
-
set: <T>(key: string, value: T, expires?: number) => void;
|
|
22
|
-
/** 获取值 */
|
|
23
|
-
get: <T>(key: string, defaultValue?: T) => T | null;
|
|
24
|
-
/** 删除值 */
|
|
25
|
-
remove: (key: string) => void;
|
|
26
|
-
/** 清空所有值 */
|
|
27
|
-
clear: () => void;
|
|
28
|
-
/** 检查是否存在 */
|
|
29
|
-
has: (key: string) => boolean;
|
|
30
|
-
/** 获取所有 keys */
|
|
31
|
-
keys: () => string[];
|
|
32
|
-
/** 移除过期项 */
|
|
33
|
-
clearExpired: () => void;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
declare function createStorage(options?: StorageOptions): StorageInstance;
|
|
37
|
-
declare const pluginStorage: _lytjs_core.PluginDefinition<unknown>;
|
|
38
|
-
|
|
39
|
-
export { type StorageInstance, type StorageItem, type StorageOptions, type StorageType, createStorage, pluginStorage as default };
|
package/dist/index.d.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import * as _lytjs_core from '@lytjs/core';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @lytjs/plugin-storage - 类型定义
|
|
5
|
-
*/
|
|
6
|
-
type StorageType = 'local' | 'session';
|
|
7
|
-
interface StorageItem<T = unknown> {
|
|
8
|
-
/** 数据 */
|
|
9
|
-
value: T;
|
|
10
|
-
/** 过期时间戳 */
|
|
11
|
-
expires?: number;
|
|
12
|
-
}
|
|
13
|
-
interface StorageOptions {
|
|
14
|
-
/** 默认存储类型 */
|
|
15
|
-
defaultType?: StorageType;
|
|
16
|
-
/** 命名空间前缀 */
|
|
17
|
-
prefix?: string;
|
|
18
|
-
}
|
|
19
|
-
interface StorageInstance {
|
|
20
|
-
/** 设置值 */
|
|
21
|
-
set: <T>(key: string, value: T, expires?: number) => void;
|
|
22
|
-
/** 获取值 */
|
|
23
|
-
get: <T>(key: string, defaultValue?: T) => T | null;
|
|
24
|
-
/** 删除值 */
|
|
25
|
-
remove: (key: string) => void;
|
|
26
|
-
/** 清空所有值 */
|
|
27
|
-
clear: () => void;
|
|
28
|
-
/** 检查是否存在 */
|
|
29
|
-
has: (key: string) => boolean;
|
|
30
|
-
/** 获取所有 keys */
|
|
31
|
-
keys: () => string[];
|
|
32
|
-
/** 移除过期项 */
|
|
33
|
-
clearExpired: () => void;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
declare function createStorage(options?: StorageOptions): StorageInstance;
|
|
37
|
-
declare const pluginStorage: _lytjs_core.PluginDefinition<unknown>;
|
|
38
|
-
|
|
39
|
-
export { type StorageInstance, type StorageItem, type StorageOptions, type StorageType, createStorage, pluginStorage as default };
|