import { fragmentFormats } from "../struct/fragment.js"; export const FileHelper = { isContent(fileEnt) { return this.isFragment(fileEnt); }, isFragment(fileEnt) { if(!fileEnt.isFile()) { return false; } const contentExtensions = [ '.vs.md', '.vs.html', ]; const matchesAnyContentExtensions = contentExtensions.some( (ext) => fileEnt.name.endsWith(ext) ); return matchesAnyContentExtensions; }, isSettingsFile(fileEnt) { if(!fileEnt.isFile()) { return false; } return fileEnt.name === '_settings.json'; }, getFragmentType(fileEnt) { const filePath = fileEnt.name; if(filePath.endsWith('.vs.md')) { return fragmentFormats.V_MARKDOWN; } if(filePath.endsWith('.vs.html')) { return fragmentFormats.V_HTML; } return null; }, getOutputFileName(fileEnt) { if(this.isContent(fileEnt)) { const stripped = this.getBaseName(fileEnt); return `${stripped}.html`; } else { return fileEnt.name; } }, getBaseName(fileEnt) { const isMd = (this.getFragmentType(fileEnt) === fragmentFormats.V_MARKDOWN); const ext = isMd ? '.vs.md' : '.vs.html'; const idx = fileEnt.name.lastIndexOf(ext); const stripped = fileEnt.name.substring(0, idx); return stripped; } }