@sidekick-coder/db
Version:
Cli Tool to manipulate data from diferent sources
25 lines (22 loc) • 631 B
JavaScript
;
// src/providers/file/create.ts
async function create(payload) {
const { filesystem, root, options, makeId, parser } = payload;
const resolve = (...args) => filesystem.path.resolve(root, ...args);
const data = options.data;
const id = data.id || await makeId();
const filename = resolve(`${id}.${parser.ext}`);
if (filesystem.existsSync(filename)) {
throw new Error(`Item with id "${id}" already exists`);
}
const raw = parser.stringify(data);
filesystem.writeSync.text(filename, raw);
const item = {
id,
raw,
filename,
...data
};
return item;
}
exports.create = create;