vitepress-jsdoc
Version:
A bridge between Vitepress and JSDoc-style commented codebases for hassle-free documentation.
42 lines • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseDirectoryFile = exports.parseAndWriteFiles = void 0;
const file_operations_js_1 = require("../utilities/file-operations.js");
const parser_factory_js_1 = require("./factories/parser-factory.js");
const plugin_options_js_1 = require("./plugin-options.js");
const parseAndWriteFiles = async (lsFolder, options) => {
const folderData = lsFolder;
const parsePromises = folderData.paths.map(async (file) => {
const data = await (0, exports.parseDirectoryFile)(file, options);
if (data?.relativePathDest) {
return (0, file_operations_js_1.writeContentToFile)(data, data.relativePathDest);
}
return undefined;
});
return Promise.all(parsePromises);
};
exports.parseAndWriteFiles = parseAndWriteFiles;
/**
* Parses the content of a directory file based on its extension and configuration.
*
* @param {DirectoryFile} file - The file object representing the directory file to be parsed.
* @param {PluginOptions} options - The plugin options providing configuration for the parsing.
*
* @returns {Promise<object|undefined>} A promise that resolves with the parsed content of the file, or undefined if the file is a directory or has no associated parser.
*/
const parseDirectoryFile = async (file, options) => {
const { srcFolder, docsFolder, jsDocConfigPath, partials, helpers } = (0, plugin_options_js_1.parsePluginOptions)(options);
if (!file.isDir && file.folder) {
const parser = parser_factory_js_1.parserFactory.createParser(file.ext ?? '');
const config = {
srcFolder,
docsFolder,
jsDocConfigPath,
partials,
helpers,
};
return parser.parse(file, config);
}
};
exports.parseDirectoryFile = parseDirectoryFile;
//# sourceMappingURL=file.js.map