mirror of
https://github.com/cuiocean/ZY-Player.git
synced 2026-07-04 18:46:10 +08:00
test db
This commit is contained in:
36
src/plugins/localforage/index.ts
Normal file
36
src/plugins/localforage/index.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import Nedb from 'nedb'
|
||||
export default class {
|
||||
db: any
|
||||
constructor () {
|
||||
this.db = null
|
||||
}
|
||||
|
||||
create (db: any) {
|
||||
const name = process.env.NODE_ENV === 'development' ? 'ZY-dev' : 'ZY'
|
||||
const database: any = {}
|
||||
|
||||
database.setting = new Nedb({
|
||||
filename: name + db.setting,
|
||||
autoload: true
|
||||
})
|
||||
database.video = new Nedb({
|
||||
filename: name + db.video,
|
||||
autoload: true
|
||||
})
|
||||
|
||||
return database
|
||||
}
|
||||
|
||||
init () {
|
||||
if (this.db) {
|
||||
return this.db
|
||||
}
|
||||
|
||||
this.db = this.create({
|
||||
setting: '-setting',
|
||||
video: '-video'
|
||||
})
|
||||
|
||||
return this.db
|
||||
}
|
||||
}
|
||||
9
src/plugins/localforage/setting.ts
Normal file
9
src/plugins/localforage/setting.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
// import { setting } from './index'
|
||||
|
||||
// export default {
|
||||
// add (data: any) {
|
||||
// return new Promise((resolve, reject) => {
|
||||
// // setting
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
16
src/plugins/localforage/video.ts
Normal file
16
src/plugins/localforage/video.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
// import { video } from './index'
|
||||
// // const id = require('nanoid')
|
||||
// import { uuid } from 'uuidv4'
|
||||
|
||||
// export default {
|
||||
// add (key: string, value: any) {
|
||||
// return new Promise((resolve, reject) => {
|
||||
// value._id = uuid()
|
||||
// video.setItem(key, value).then(res => {
|
||||
// resolve(res)
|
||||
// }).catch(err => {
|
||||
// reject(err)
|
||||
// })
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
@@ -1,133 +0,0 @@
|
||||
export class Table {
|
||||
name: string
|
||||
db: IDBDatabase
|
||||
constructor (name: string, db:IDBDatabase) {
|
||||
this.name = name
|
||||
this.db = db
|
||||
}
|
||||
// create transaction
|
||||
transaction (mode = true) {
|
||||
return this.db.transaction([this.name], mode === true ? 'readwrite' : 'readonly')
|
||||
}
|
||||
// open or conntect this table
|
||||
request () {
|
||||
return this.transaction().objectStore(this.name)
|
||||
}
|
||||
// get
|
||||
select (selector: any) {
|
||||
let index: string
|
||||
let indexValue: any
|
||||
for (let name in selector) {
|
||||
index = name
|
||||
indexValue = selector[name]
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
const selectRequest = this.request().index(index).getAll(indexValue)
|
||||
selectRequest.onsuccess = (e:any) => {
|
||||
resolve(e.target.result)
|
||||
}
|
||||
selectRequest.onerror = (e:any) => {
|
||||
reject(e.target.result)
|
||||
}
|
||||
})
|
||||
}
|
||||
selectId (id:number) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const selectRequest = this.request().get(id)
|
||||
selectRequest.onsuccess = (e:any) => {
|
||||
resolve(e.target.result)
|
||||
}
|
||||
selectRequest.onerror = (e:any) => {
|
||||
reject(e.target.result)
|
||||
}
|
||||
})
|
||||
}
|
||||
selectAll () {
|
||||
return new Promise((resolve, reject) => {
|
||||
const selectRequest = this.request().getAll()
|
||||
selectRequest.onsuccess = (e:any) => {
|
||||
resolve(e.target.result)
|
||||
}
|
||||
selectRequest.onerror = (e:any) => {
|
||||
reject(e.target.result)
|
||||
}
|
||||
})
|
||||
}
|
||||
// some
|
||||
some (index: any, start:any, end:any) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const temp:any = []
|
||||
const cursor = this.request().index(index)
|
||||
const range = IDBKeyRange.bound(start, end)
|
||||
cursor.openCursor(range).onsuccess = (ev:any) => {
|
||||
const res = ev.target.result
|
||||
if (res) {
|
||||
temp.push(res.value)
|
||||
res.continue()
|
||||
} else {
|
||||
resolve(temp)
|
||||
}
|
||||
}
|
||||
cursor.openCursor(range).onerror = (ev: any) => {
|
||||
reject(ev)
|
||||
}
|
||||
})
|
||||
}
|
||||
// put
|
||||
update (data: any) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const updateRequest = this.request().put(data)
|
||||
updateRequest.onsuccess = (e:any) => {
|
||||
resolve(e)
|
||||
}
|
||||
updateRequest.onerror = (e:any) => {
|
||||
reject(e)
|
||||
}
|
||||
})
|
||||
}
|
||||
// add
|
||||
insert (data: any) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const addRequest = this.request().add(data)
|
||||
addRequest.onsuccess = (e:any) => {
|
||||
resolve(e)
|
||||
}
|
||||
addRequest.onerror = (e:any) => {
|
||||
reject(e)
|
||||
}
|
||||
})
|
||||
}
|
||||
// get -> delete
|
||||
delete (selector: any) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.select(selector).then((res: any) => {
|
||||
if (res.length) {
|
||||
res.forEach((item: any, index: any, arr: any) => {
|
||||
const request = this.request()
|
||||
const keyPath = request.keyPath as string
|
||||
const deleteRequest = request.delete(item[keyPath])
|
||||
deleteRequest.onsuccess = (e: any) => {
|
||||
if (index === arr.length - 1) {
|
||||
resolve(e)
|
||||
}
|
||||
}
|
||||
deleteRequest.onerror = (e: any) => {
|
||||
reject(e)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
clear () {
|
||||
return new Promise((resolve, reject) => {
|
||||
const deleteRequest = this.request().clear()
|
||||
deleteRequest.onsuccess = (e: any) => {
|
||||
resolve(e)
|
||||
}
|
||||
deleteRequest.onerror = (e: any) => {
|
||||
reject(e)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import tiny from 'tinydb'
|
||||
|
||||
const db = {}
|
||||
|
||||
export default db
|
||||
@@ -1,34 +0,0 @@
|
||||
export interface Database {
|
||||
databaseName: string
|
||||
tables: Array<DatabaseTable>
|
||||
version?: number
|
||||
}
|
||||
|
||||
export interface DatabaseTable {
|
||||
name: string
|
||||
keyPath: string
|
||||
autoIncrement: boolean
|
||||
indexs: Array<RuleIndex>
|
||||
}
|
||||
|
||||
export interface RuleIndex {
|
||||
index: string
|
||||
relativeIndex: string
|
||||
unique: boolean
|
||||
}
|
||||
|
||||
export interface TinyDBRule {
|
||||
db: IDBDatabase
|
||||
name: string
|
||||
version: number
|
||||
table: IDBObjectStore
|
||||
tables: Array<DatabaseTable>
|
||||
connect(): Promise<IDBDatabase>
|
||||
}
|
||||
|
||||
export interface TableFn {
|
||||
select(): any
|
||||
update(): any
|
||||
insert(): any
|
||||
delete(): any
|
||||
}
|
||||
Reference in New Issue
Block a user