@dpkit/file
Version:
Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames
22 lines • 2.47 kB
JavaScript
import { unlinkSync } from "node:fs";
import { writeFile } from "node:fs/promises";
import exitHook from "exit-hook";
import { temporaryFile } from "tempy";
export async function writeTempFile(content, options) {
const path = getTempFilePath(options);
await writeFile(path, content);
return path;
}
export function getTempFilePath(options) {
const path = temporaryFile();
if (!options?.persist) {
exitHook(() => {
try {
unlinkSync(path);
}
catch { }
});
}
return path;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2ZpbGUvdGVtcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3BDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUM1QyxPQUFPLFFBQVEsTUFBTSxXQUFXLENBQUE7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUVyQyxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FDakMsT0FBd0IsRUFDeEIsT0FBK0I7SUFFL0IsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3JDLE1BQU0sU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUM5QixPQUFPLElBQUksQ0FBQTtBQUNiLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQStCO0lBQzdELE1BQU0sSUFBSSxHQUFHLGFBQWEsRUFBRSxDQUFBO0lBRTVCLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDdEIsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQztnQkFDSCxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDbEIsQ0FBQztZQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJ1ZmZlciB9IGZyb20gXCJub2RlOmJ1ZmZlclwiXG5pbXBvcnQgeyB1bmxpbmtTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIlxuaW1wb3J0IHsgd3JpdGVGaWxlIH0gZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIlxuaW1wb3J0IGV4aXRIb29rIGZyb20gXCJleGl0LWhvb2tcIlxuaW1wb3J0IHsgdGVtcG9yYXJ5RmlsZSB9IGZyb20gXCJ0ZW1weVwiXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZVRlbXBGaWxlKFxuICBjb250ZW50OiBzdHJpbmcgfCBCdWZmZXIsXG4gIG9wdGlvbnM/OiB7IHBlcnNpc3Q/OiBib29sZWFuIH0sXG4pIHtcbiAgY29uc3QgcGF0aCA9IGdldFRlbXBGaWxlUGF0aChvcHRpb25zKVxuICBhd2FpdCB3cml0ZUZpbGUocGF0aCwgY29udGVudClcbiAgcmV0dXJuIHBhdGhcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRlbXBGaWxlUGF0aChvcHRpb25zPzogeyBwZXJzaXN0PzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHBhdGggPSB0ZW1wb3JhcnlGaWxlKClcblxuICBpZiAoIW9wdGlvbnM/LnBlcnNpc3QpIHtcbiAgICBleGl0SG9vaygoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICB1bmxpbmtTeW5jKHBhdGgpXG4gICAgICB9IGNhdGNoIHt9XG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBwYXRoXG59XG4iXX0=