@sytone/markdown-snippet-injector
Version:
The MarkDown snippet injector generates MD code snippets by extracting them from the source code of your projects.
124 lines • 5.34 kB
JavaScript
;
/* eslint-disable import/extensions */
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.injectSnippets = exports.loadSnippets = void 0;
// Types
const path = __importStar(require("node:path"));
const process = __importStar(require("node:process"));
const args_1 = __importDefault(require("./args"));
const log_1 = require("./log");
const snippet_injector_1 = require("./snippet-injector");
let snippetInjector;
// eslint-disable-next-line unicorn/prefer-top-level-await
void (async () => {
const argv = await (0, args_1.default)(process.argv);
snippetInjector = new snippet_injector_1.SnippetInjector(argv);
log_1.log.setLevel(argv.logLevel);
log_1.log.debug('argv:', argv);
log_1.log.info('Loading Snippets from Source Files under', argv.root);
await loadSnippets(argv).catch(error => {
log_1.log.error(error);
process.exit(1);
});
log_1.log.info('Injecting Snippets into Document Files under', argv.docsRoot);
await injectSnippets(argv).catch(error => {
log_1.log.error(error);
process.exit(1);
});
process.exit(0);
})();
/**
* Load snippets procedure entrypoint, called by the CLI.
*/
async function loadSnippets(options) {
log_1.log.info('Loading snippets from', path.normalize(options.root));
snippetInjector.process(path.normalize(options.root));
}
exports.loadSnippets = loadSnippets;
/**
* Injection procedure entrypoint, called by the CLI.
*/
async function injectSnippets(options) {
log_1.log.info('Injecting snippets to', path.normalize(options.docsRoot));
snippetInjector.injectSnippets(path.normalize(options.docsRoot));
// Const outArchive = new JSZip()
// const outPath = await destination.resolve(opts)
// await fs.mkdir(outPath.dir, { recursive: true })
// const pathList = await packlist({ path: opts.source })
// const archivePromises = pathList.map(async file => {
// await archive.addPath(
// outArchive,
// opts,
// path.resolve(opts.source),
// path.resolve(opts.source, file),
// )
// })
// if (opts.addRootNodeModules) {
// await archive.addRootNodeModules(outArchive, opts)
// log.verbose('Added pnpm workspace node modules')
// } else {
// log.debug('Skipping pnpm workspace node modules')
// }
// await Promise.all(archivePromises)
// log.debug('All paths processed')
// if (opts.staticDateModified) {
// Object.entries(outArchive.files).forEach(([name, file]) => {
// log.debug('Setting static date for', name)
// file.date = util.staticDate
// })
// } else {
// log.debug('Not setting static dates')
// }
// const output = outArchive.generateAsync({ type: 'nodebuffer' })
// await fs.writeFile(outPath.path, await output)
// log.info('Packaged contents to', outPath.path)
}
exports.injectSnippets = injectSnippets;
// Declare var require;
// import {SnippetInjector} from "./snippet-injector";
// var yargsModule = require("yargs");
// var rootDirectory = yargsModule.argv.root;
// var docsRoot = yargsModule.argv.docsroot;
// if (rootDirectory === undefined) {
// throw new Error("Root of snippet sources not defined. Please specify sources root by using the --root parameter.");
// }
// if (docsRoot === undefined) {
// throw new Error("Root of documentation sources not defined. Please specify documentation root by using the --docsroot parameter.");
// }
// var snippetInjector = new SnippetInjector();
// snippetInjector.toWrap = yargsModule.argv.w;
// snippetInjector.sourceFileExtensionFilter = yargsModule.argv.sourceext || ".ts";
// snippetInjector.targetFileExtensionFilter = yargsModule.argv.targetext || ".md";
// snippetInjector.placeholderPrefix = yargsModule.argv.placeholderPrefix || "%%";
// snippetInjector.placeholderSuffix =yargsModule.argv.placeholderSuffix || "%%";
// snippetInjector.snippetTitles = yargsModule.argv.snippettitles;
// snippetInjector.process(rootDirectory);
// snippetInjector.injectSnippets(docsRoot);
//# sourceMappingURL=index.js.map