yux-storage
Advanced tools
Comparing version 1.0.1 to 1.0.2
{ | ||
"name": "yux-storage", | ||
"version": "1.0.1", | ||
"description": "yux-storage 是一个基于 HTML5 IndexedDB 封装的 Web 数据本地离线存储库", | ||
"version": "1.0.2", | ||
"description": "yux-storage 是一个基于 HTML5 IndexedDB 封装的 Web 本地数据离线存储库", | ||
"main": "yux-storage.js", | ||
@@ -15,3 +15,5 @@ "scripts": { | ||
"indexedDB", | ||
"storage" | ||
"storage", | ||
"localStorage", | ||
"yux" | ||
], | ||
@@ -18,0 +20,0 @@ "author": "XboxYan", |
# yux-storage | ||
yux-storage 是一个基于 HTML5 [IndexedDB](https://developer.mozilla.org/zh-CN/docs/Web/API/IndexedDB_API) 封装的 Web 数据本地离线存储库。 | ||
yux-storage 是一个基于 HTML5 [IndexedDB](https://developer.mozilla.org/zh-CN/docs/Web/API/IndexedDB_API) 封装的 Web 本地数据离线存储库。 | ||
@@ -8,4 +8,4 @@ | ||
1. 使用类似 [localStorage API](https://developer.mozilla.org/zh-CN/docs/Web/API/Window/localStorage), 无需考虑 IndexedDB 的概念,上手无压力。 | ||
1. 支持回调和 [Promises](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise) 两种方式,各凭所愿。 | ||
1. 使用类似 [localStorage API](https://developer.mozilla.org/zh-CN/docs/Web/API/Window/localStorage), 无需考虑 IndexedDB 的复杂概念,上手无压力。 | ||
1. 支持回调和 [Promise](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise) 两种方式,各凭所愿。 | ||
1. 非常轻量,100 行左右的源码,压缩后更小。 | ||
@@ -32,3 +32,3 @@ | ||
```cmd | ||
npm install yux-storage | ||
npm i yux-storage | ||
``` | ||
@@ -138,3 +138,2 @@ | ||
// 还可以存储 file 文件 | ||
const file = new File(["foo"], "foo.txt", { | ||
@@ -173,3 +172,3 @@ type: "text/plain", | ||
> 其实就是遍历,然后执行 REMOVEITEM | ||
> 小心使用,本质就是遍历,然后执行 REMOVEITEM | ||
@@ -191,6 +190,8 @@ *示例* | ||
根据 key 的索引获取其名 | ||
根据 key 的索引获取键的名称。 | ||
> 有些鸡肋的方法,很多时候我们不知道键的索引。 | ||
*示例* | ||
```js | ||
@@ -209,9 +210,18 @@ yuxStorage.key(2).then(function(keyName) { | ||
获取数据仓库中所有的 key。 | ||
获取数据仓库中所有的 key,返回一个数组。 | ||
> localStorage API 并没有这个方法,但比上面的 key 要有用的多。 | ||
*示例* | ||
```js | ||
yuxStorage.keys().then(function(keyNames) { | ||
// key 名 | ||
console.log(keyNames); | ||
}) | ||
``` | ||
## 兼容性 | ||
不支持 `IE` | ||
现代浏览器,不支持 `IE` | ||
@@ -228,3 +238,3 @@ > 兼容性取决于 [indexedDB](https://caniuse.com/?search=indexedDB) 和 [Promise](https://caniuse.com/?search=Promise) | ||
这时,只需要将方法放在 `new yuxDB()` 的回调或者 Promise | ||
这时,只需要将方法放在 `new yuxDB()` 的回调或者 Promise 后续流程 | ||
@@ -256,3 +266,3 @@ ```js | ||
> yuxDB 是整个库的构造函数,new YuxDB() 返回的是一个 Promise 对象, 初始完成后返回的 yuxStorage 才具备以上 API 的各种方法 | ||
> yuxDB 是整个库的构造函数,new yuxDB() 返回的是一个 Promise 对象, 初始完成后回调生成的 yuxStorage 才具备以上 API 的各种方法 | ||
@@ -262,1 +272,3 @@ ## 联系我 | ||
有相关问题或者意见可与我联系 yanwenbin@yuewen.com | ||
^ ^ |
@@ -0,1 +1,7 @@ | ||
/** | ||
* @yux-storage.js | ||
* @author xboxyan | ||
* Created: 20-11-10 | ||
*/ | ||
class yuxDB { | ||
@@ -22,3 +28,3 @@ | ||
request.onerror = (event) => { | ||
reject(event) | ||
reject(event); | ||
} | ||
@@ -30,3 +36,3 @@ }) | ||
return new Promise((resolve, reject) => { | ||
const request = this.db.transaction([this.objectStoreName], 'readwrite').objectStore(this.objectStoreName).put(value, key); | ||
const request = this.db.transaction(this.objectStoreName, 'readwrite').objectStore(this.objectStoreName).put(value, key); | ||
request.onsuccess = (event) => { | ||
@@ -39,3 +45,3 @@ if (successCallback && typeof successCallback === 'function') { | ||
request.onerror = (event) => { | ||
reject(event) | ||
reject(event); | ||
} | ||
@@ -47,3 +53,3 @@ }) | ||
return new Promise((resolve, reject) => { | ||
const request = this.db.transaction([this.objectStoreName]).objectStore(this.objectStoreName).get(key); | ||
const request = this.db.transaction(this.objectStoreName).objectStore(this.objectStoreName).get(key); | ||
request.onsuccess = (event) => { | ||
@@ -56,3 +62,3 @@ if (successCallback && typeof successCallback === 'function') { | ||
request.onerror = (event) => { | ||
reject(event) | ||
reject(event); | ||
} | ||
@@ -64,3 +70,3 @@ }) | ||
return new Promise((resolve, reject) => { | ||
const request = this.db.transaction([this.objectStoreName], 'readwrite').objectStore(this.objectStoreName).delete(key); | ||
const request = this.db.transaction(this.objectStoreName, 'readwrite').objectStore(this.objectStoreName).delete(key); | ||
request.onsuccess = (event) => { | ||
@@ -73,3 +79,3 @@ if (successCallback && typeof successCallback === 'function') { | ||
request.onerror = (event) => { | ||
reject(event) | ||
reject(event); | ||
} | ||
@@ -89,3 +95,3 @@ }) | ||
request.onerror = (event) => { | ||
reject(event) | ||
reject(event); | ||
} | ||
@@ -100,8 +106,8 @@ }) | ||
if (successCallback && typeof successCallback === 'function') { | ||
successCallback(request.result || null); | ||
successCallback(request.result || []); | ||
} | ||
resolve(request.result); | ||
resolve(request.result || []); | ||
}; | ||
request.onerror = (event) => { | ||
reject(event) | ||
reject(event); | ||
} | ||
@@ -108,0 +114,0 @@ }) |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
12422
129
265