48 lines
1008 B
JavaScript
48 lines
1008 B
JavaScript
import pkg from 'node-csv';
|
|
import logger from '#root/utils/logger.js';
|
|
import path from 'path';
|
|
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
|
|
const { createParser } = pkg
|
|
let recipeData;
|
|
let loaded = false;
|
|
|
|
function parser() {
|
|
const csv = createParser();
|
|
return new Promise((r, j) => {
|
|
csv.parseFile(path.join(__dirname, './recipe.csv'), function (err, data) {
|
|
if (err) {
|
|
logger.err(err);
|
|
return j();
|
|
}
|
|
logger('食谱加载成功');
|
|
const keys = data.shift()
|
|
console.log(keys)
|
|
recipeData = data.map(d => {
|
|
const res = {}
|
|
keys.forEach((key, index) => {
|
|
if (key) {
|
|
res[key] = d[index]
|
|
}
|
|
})
|
|
return res
|
|
});
|
|
loaded = true;
|
|
r(recipeData);
|
|
});
|
|
});
|
|
}
|
|
|
|
export default async function getDb() {
|
|
if (loaded) {
|
|
return recipeData;
|
|
} else {
|
|
await parser()
|
|
return recipeData;
|
|
}
|
|
}
|
|
|
|
getDb().then((res) => {
|
|
console.log(recipeData)
|
|
})
|