@sidekick-coder/db
Version:
Cli Tool to manipulate data from diferent sources
25 lines (23 loc) • 679 B
JavaScript
// src/providers/folder/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 folder = resolve(id);
const filename = resolve(id, `index.${parser.ext}`);
if (filesystem.existsSync(folder)) {
throw new Error(`Item with id "${id}" already exists`);
}
const raw = parser.stringify(data);
filesystem.mkdirSync(resolve(id));
filesystem.writeSync.text(filename, raw);
const item = {
id,
raw,
folder,
...data
};
return item;
}
export { create };