@dpkit/core
Version:
Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames
15 lines • 2.43 kB
JavaScript
import { node } from "../node.js";
import { stringifyDescriptor } from "./process/stringify.js";
/**
* Save a descriptor (JSON Object) to a file path
* Works in Node.js environments
*/
export async function saveDescriptor(descriptor, options) {
if (!node) {
throw new Error("File system is not supported in this environment");
}
const text = stringifyDescriptor(descriptor);
await node.fs.mkdir(node.path.dirname(options.path), { recursive: true });
await node.fs.writeFile(options.path, text, { encoding: "utf8", flag: "wx" });
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2dlbmVyYWwvZGVzY3JpcHRvci9zYXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFakMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFFNUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLFVBQXNCLEVBQ3RCLE9BRUM7SUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUE7SUFDckUsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRTVDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7SUFDekUsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFDL0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vZGUgfSBmcm9tIFwiLi4vbm9kZS50c1wiXG5pbXBvcnQgdHlwZSB7IERlc2NyaXB0b3IgfSBmcm9tIFwiLi9EZXNjcmlwdG9yLnRzXCJcbmltcG9ydCB7IHN0cmluZ2lmeURlc2NyaXB0b3IgfSBmcm9tIFwiLi9wcm9jZXNzL3N0cmluZ2lmeS50c1wiXG5cbi8qKlxuICogU2F2ZSBhIGRlc2NyaXB0b3IgKEpTT04gT2JqZWN0KSB0byBhIGZpbGUgcGF0aFxuICogV29ya3MgaW4gTm9kZS5qcyBlbnZpcm9ubWVudHNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNhdmVEZXNjcmlwdG9yKFxuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yLFxuICBvcHRpb25zOiB7XG4gICAgcGF0aDogc3RyaW5nXG4gIH0sXG4pIHtcbiAgaWYgKCFub2RlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRmlsZSBzeXN0ZW0gaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGVudmlyb25tZW50XCIpXG4gIH1cblxuICBjb25zdCB0ZXh0ID0gc3RyaW5naWZ5RGVzY3JpcHRvcihkZXNjcmlwdG9yKVxuXG4gIGF3YWl0IG5vZGUuZnMubWtkaXIobm9kZS5wYXRoLmRpcm5hbWUob3B0aW9ucy5wYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSlcbiAgYXdhaXQgbm9kZS5mcy53cml0ZUZpbGUob3B0aW9ucy5wYXRoLCB0ZXh0LCB7IGVuY29kaW5nOiBcInV0ZjhcIiwgZmxhZzogXCJ3eFwiIH0pXG59XG4iXX0=