daily-office-lectionary
Version:
daily office readings from the Revised Common Lectionary
73 lines (64 loc) • 1.64 kB
JavaScript
const fs = require('fs');
const nedb = require('nedb-promises');
var db = nedb.create(__dirname+'/all-days.db')
module.exports = {get, getMany, loadAll};
async function get(query){
try{
let r = await db.findOne(query);
if(r)
return Promise.resolve(r);
else
return Promise.resolve(null)
} catch(e){
return Promise.reject(e);
}
}
async function getMany(query){
try{
let r = await db.find(query);
if(r)
return Promise.resolve(r);
else
return Promise.resolve(null)
} catch(e){
return Promise.reject(e);
}
}
async function loader(files){
var cnt = 0;
try{
for (file of files){
let data = await load(file);
if(data){
cnt+=data.length;
}
}
return Promise.resolve(`loaded ${cnt} entries`);
} catch(e){
return Promise.reject(e);
}
}
function load(file){
return new Promise((resolve, reject)=>{
fs.readFile(file, async (err, data)=>{
if(!err && data){
data = JSON.parse(data);
console.log(`${data.length} in ${file}`)
resolve( db.insert(data))
}
else
reject(err)
});
})
}
async function loadAll(){
await db.remove({}, {multi: true}).catch(console.log);
loader([
'./json/readings/dol-holy-days.json',
'./json/readings/dol-special-occasions.json',
'./json/readings/dol-year-1.json',
'./json/readings/dol-year-2.json'
])
.then(console.log)
.catch(console.log);
}