@ts-for-gir/cli
Version:
TypeScript type definition generator for GObject introspection GIR files
38 lines • 1.6 kB
JavaScript
/**
* Everything you need for the `ts-for-gir generate` command is located here
*/
import { Logger, ERROR_NO_MODULES_FOUND } from '@ts-for-gir/lib';
import { GeneratorType } from '@ts-for-gir/generator-base';
import { GenerationHandler } from '../generation-handler.js';
import { Config } from '../config.js';
import { ModuleLoader } from '../module-loader.js';
const command = 'doc [modules..]';
const description = 'The HTML documentation generator is not yet implemented, but feel free to implement it 🤗';
const builder = (yargs) => {
const optionNames = Object.keys(Config.docOptions);
for (const optionName of optionNames) {
yargs = yargs.option(optionName, Config.docOptions[optionName]);
}
return yargs.example(examples);
};
const handler = async (args) => {
const config = await Config.load(args);
const generateConfig = Config.getOptionsGeneration(config);
const moduleLoader = new ModuleLoader(generateConfig);
const { keep } = await moduleLoader.getModulesResolved(config.modules, config.ignore || [], config.ignoreVersionConflicts);
if (keep.length === 0) {
return Logger.error(ERROR_NO_MODULES_FOUND(config.girDirectories));
}
const tsForGir = new GenerationHandler(generateConfig, GeneratorType.HTML_DOC);
const registry = moduleLoader.dependencyManager;
await tsForGir.start(Array.from(keep).map((girModuleResolvedBy) => girModuleResolvedBy.module), registry);
};
const examples = [];
export const doc = {
command,
description,
builder,
handler,
examples,
};
//# sourceMappingURL=doc.js.map