@sidekick-coder/db
Version:
Cli Tool to manipulate data from diferent sources
27 lines (24 loc) • 700 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;
}
exports.create = create;