@ts-for-gir/cli
Version:
TypeScript type definition generator for GObject introspection GIR files
155 lines (146 loc) • 5.18 kB
text/typescript
/**
* Base interface for all command arguments extending ConfigFlags
*/
export interface BaseCommandArgs {
/** GIR modules to load, e.g. 'Gio-2.0'. Accepts multiple modules */
modules: string[];
/** GIR directories */
girDirectories: string[];
/** Root directory of your project */
root: string;
/** Modules that should be ignored */
ignore: string[];
/** Specify a custom name for the configuration file */
configName: string;
/** Switch on/off the verbose mode */
verbose: boolean;
}
/**
* Arguments for the generate command
*/
export interface GenerateCommandArgs extends BaseCommandArgs {
/** Directory to output to */
outdir: string | null;
/** Skip prompts for library version selection when multiple versions are detected */
ignoreVersionConflicts: boolean;
/** Print the output to console and create no files */
print: boolean;
/** Do not export all symbols for each module as a namespace */
noNamespace: boolean;
/** Do not generate documentation comments */
noComments: boolean;
/** Generate promisified functions for async/finish calls */
promisify: boolean;
/** Scope of the generated NPM packages */
npmScope: string;
/** Uses the workspace protocol for the generated packages which can be used with package managers like Yarn and PNPM */
workspace: boolean;
/** Dependency version spec format in generated package.json files */
depVersionFormat?: "workspace" | "caret" | "any" | "exact";
/** Only use the version prefix for the ambient module exports */
onlyVersionPrefix: boolean;
/** Do not prettify the generated types */
noPrettyPrint: boolean;
/** Disable GLib.Variant class with string parsing */
noAdvancedVariants: boolean;
/** Generate the typescript types with package.json support */
package: boolean;
/** Enable generation problem reporter and create a detailed report file */
reporter: boolean;
/** Output file path for the reporter */
reporterOutput: string;
/** Emit imports from installed @girs/* npm packages instead of regenerating dep types */
externalDeps: boolean;
/** Allow externalDeps generation when transitive dep GIRs are missing (degraded type quality) */
allowMissingDeps: boolean;
/** Override default namespace→npm package mapping. Repeatable. Format: `Namespace=@girs/pkg` */
externalPackage?: string[];
}
/**
* Arguments for the list command
*/
export interface ListCommandArgs extends BaseCommandArgs {
// List command only uses base arguments
}
/**
* Arguments for the copy command
*/
export interface CopyCommandArgs extends BaseCommandArgs {
/** Directory to output to */
outdir: string | null;
}
/**
* Arguments for the doc command
*/
export interface DocCommandArgs extends GenerateCommandArgs {
/** Generate a single unified documentation for all modules (use --no-combined for separate per-module docs) */
combined: boolean;
/** URL template for source links in generated documentation. Supports {path}, {line}, {gitRevision} placeholders */
sourceLinkTemplate?: string;
/** Theme for HTML documentation generation (default: "gi-docgen") */
theme?: string;
/** Path to a README file to use as the documentation index page (default: "none") */
readme?: string;
/** Use TypeDoc merge mode to generate HTML from pre-generated JSON files */
merge?: boolean;
/** Directory containing pre-generated TypeDoc JSON files for merge mode */
jsonDir?: string;
}
/**
* Available scaffolding template identifiers for the create command.
*/
export type CreateTemplateId = "types-locally" | "types-npm" | "types-workspace" | "types-gjsify";
/**
* Arguments for the create command
*/
export interface CreateCommandArgs {
/** Project name and target directory (positional) */
name?: string;
/** Template identifier */
template?: CreateTemplateId;
/** Run npm install after scaffolding (use --no-install to skip) */
install: boolean;
/** Allow scaffolding into a non-empty target directory */
force: boolean;
/** Switch on/off the verbose mode */
verbose: boolean;
}
/**
* Arguments for the analyze command
*/
export interface AnalyzeCommandArgs {
/** Path to the report file to analyze */
reportFile: string;
/** Filter by problem severity (debug, info, warning, error, critical) */
severity?: string[];
/** Filter by problem category */
category?: string[];
/** Filter by namespace/module */
namespace?: string[];
/** Filter by specific type name */
type?: string[];
/** Show top N most problematic items */
top?: number;
/** Export filtered results to file */
export?: string;
/** Output format (json, csv, table) */
format?: string;
/** Show detailed problem information */
detailed?: boolean;
/** Show summary statistics only */
summary?: boolean;
/** Search for problems containing specific text */
search?: string;
/** Show problems from a specific time range (ISO date) */
since?: string;
/** Show problems until a specific time (ISO date) */
until?: string;
/** Switch on/off the verbose mode */
verbose?: boolean;
}
export interface SelfUpdateCommandArgs {
/** Only check for a newer version, do not install */
check: boolean;
/** Force reinstall even if already on the latest version */
force: boolean;
}