10
0
mirror of https://github.com/LCPQ/QUESTDB_website.git synced 2024-07-03 18:06:06 +02:00
QUESTDB_website/static/js/DOICache.js

40 lines
853 B
JavaScript

class DOICache{
constructor(){
this._doimap=new Map()
this._Cite=require("citation-js")
}
clear(){
this._doimap.clear()
}
delete(doi){
return this._doimap.delete(doi)
}
forEach(callbackfn, thisArg=None){
return this._doimap.forEach(callbackfn,thisArg)
}
get(doi){
return this._doimap.get(doi)
}
has(doi){
return this._doimap.has(doi)
}
async add(doi){
if(!this.has(doi)){
const publi=await this._Cite.async(doi)
this._doimap.set(doi,publi)
}
}
async addRange(dois){
const set=new Set(dois)
for(const doi of set){
await this.add(doi)
}
}
get size(){
return this._doimap.size()
}
keys() { return this._doimap.keys()}
values() { return this._doimap.values()}
entries() { return this._doimap.entries()}
[Symbol.iterator]() { return this.values()}
}