34 lines
721 B
JavaScript
34 lines
721 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('食谱加载成功');
|
|
recipeData = data;
|
|
loaded = true;
|
|
r(recipeData);
|
|
});
|
|
});
|
|
}
|
|
|
|
export default async function getDb() {
|
|
if (loaded) {
|
|
return recipeData;
|
|
} else {
|
|
await parser()
|
|
return recipeData;
|
|
}
|
|
}
|