UNPKG

@push.rocks/smartfile

Version:

Provides comprehensive tools for efficient file management in Node.js using TypeScript, including handling streams, virtual directories, and various file operations.

81 lines 5.65 kB
import * as plugins from './smartfile.plugins.js'; import { Smartfile } from './smartfile.classes.smartfile.js'; import * as smartfileFs from './smartfile.fs.js'; import * as interpreter from './smartfile.interpreter.js'; /** * converts file to Object * @param fileStringArg * @param fileTypeArg * @returns {any|any} */ export let toObject = (fileStringArg, fileTypeArg) => { return interpreter.objectFile(fileStringArg, fileTypeArg); }; /** * writes string or Smartfile to disk. * @param fileArg * @param fileNameArg * @param fileBaseArg */ export let toFs = async (fileContentArg, filePathArg, optionsArg = {}) => { const done = plugins.smartpromise.defer(); // check args if (!fileContentArg || !filePathArg) { throw new Error('expected valid arguments'); } // prepare actual write action let fileContent; let fileEncoding = 'utf8'; let filePath = filePathArg; // handle Smartfile if (fileContentArg instanceof Smartfile) { fileContent = fileContentArg.contentBuffer; // handle options if (optionsArg.respectRelative) { filePath = plugins.path.join(filePath, fileContentArg.path); } } else if (Buffer.isBuffer(fileContentArg)) { fileContent = fileContentArg; fileEncoding = 'binary'; } else if (typeof fileContentArg === 'string') { fileContent = fileContentArg; } else { throw new Error('fileContent is neither string nor Smartfile'); } await smartfileFs.ensureDir(plugins.path.parse(filePath).dir); plugins.fsExtra.writeFile(filePath, fileContent, { encoding: fileEncoding }, done.resolve); return await done.promise; }; /** * writes a string or a Smartfile to disk synchronously, only supports string * @param fileArg * @param filePathArg */ export const toFsSync = (fileArg, filePathArg) => { // function checks to abort if needed if (!fileArg || !filePathArg) { throw new Error('expected a valid arguments'); } // prepare actual write action let fileString; const filePath = filePathArg; if (typeof fileArg !== 'string') { throw new Error('fileArg is not of type String.'); } else if (typeof fileArg === 'string') { fileString = fileArg; } plugins.fsExtra.writeFileSync(filePath, fileString, { encoding: 'utf8' }); }; export let smartfileArrayToFs = async (smartfileArrayArg, dirArg) => { await smartfileFs.ensureDir(dirArg); for (const smartfile of smartfileArrayArg) { await toFs(smartfile, dirArg, { respectRelative: true, }); } }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLm1lbW9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0ZmlsZS5tZW1vcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSx3QkFBd0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDN0QsT0FBTyxLQUFLLFdBQVcsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssV0FBVyxNQUFNLDRCQUE0QixDQUFDO0FBRTFEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLElBQUksUUFBUSxHQUFHLENBQUMsYUFBcUIsRUFBRSxXQUFtQixFQUFFLEVBQUU7SUFDbkUsT0FBTyxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUM1RCxDQUFDLENBQUM7QUFNRjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxLQUFLLEVBQ3JCLGNBQTJDLEVBQzNDLFdBQW1CLEVBQ25CLGFBQTJCLEVBQUUsRUFDN0IsRUFBRTtJQUNGLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFMUMsYUFBYTtJQUNiLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0tBQzdDO0lBRUQsOEJBQThCO0lBQzlCLElBQUksV0FBNEIsQ0FBQztJQUNqQyxJQUFJLFlBQVksR0FBc0IsTUFBTSxDQUFDO0lBQzdDLElBQUksUUFBUSxHQUFXLFdBQVcsQ0FBQztJQUVuQyxtQkFBbUI7SUFDbkIsSUFBSSxjQUFjLFlBQVksU0FBUyxFQUFFO1FBQ3ZDLFdBQVcsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDO1FBQzNDLGlCQUFpQjtRQUNqQixJQUFJLFVBQVUsQ0FBQyxlQUFlLEVBQUU7WUFDOUIsUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0Q7S0FDRjtTQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUMxQyxXQUFXLEdBQUcsY0FBYyxDQUFDO1FBQzdCLFlBQVksR0FBRyxRQUFRLENBQUM7S0FDekI7U0FBTSxJQUFJLE9BQU8sY0FBYyxLQUFLLFFBQVEsRUFBRTtRQUM3QyxXQUFXLEdBQUcsY0FBYyxDQUFDO0tBQzlCO1NBQU07UUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7S0FDaEU7SUFDRCxNQUFNLFdBQVcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0YsT0FBTyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLE9BQWUsRUFBRSxXQUFtQixFQUFFLEVBQUU7SUFDL0QscUNBQXFDO0lBQ3JDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0tBQy9DO0lBRUQsOEJBQThCO0lBQzlCLElBQUksVUFBa0IsQ0FBQztJQUN2QixNQUFNLFFBQVEsR0FBVyxXQUFXLENBQUM7SUFFckMsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0tBQ25EO1NBQU0sSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7UUFDdEMsVUFBVSxHQUFHLE9BQU8sQ0FBQztLQUN0QjtJQUNELE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUM1RSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBSSxrQkFBa0IsR0FBRyxLQUFLLEVBQUUsaUJBQThCLEVBQUUsTUFBYyxFQUFFLEVBQUU7SUFDdkYsTUFBTSxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLEtBQUssTUFBTSxTQUFTLElBQUksaUJBQWlCLEVBQUU7UUFDekMsTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRTtZQUM1QixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7S0FDSjtBQUNILENBQUMsQ0FBQyJ9