@docyrus/cli
Version:
DocyUI unified CLI tool for all frameworks
125 lines (117 loc) • 5.27 kB
TypeScript
type Framework = 'react' | 'vue' | 'svelte' | 'react-native';
declare const FRAMEWORK_CONFIG: {
readonly react: {
readonly name: "React";
readonly packageName: string | undefined;
readonly cliName: string | undefined;
readonly dependencies: readonly ["react", "react-dom"];
readonly configFiles: readonly ["package.json"];
readonly detectFiles: readonly ["package.json"];
readonly cssFile: "src/index.css";
};
readonly vue: {
readonly name: "Vue.js";
readonly packageName: string | undefined;
readonly cliName: string | undefined;
readonly dependencies: readonly ["vue"];
readonly configFiles: readonly ["package.json", "vite.config.js", "vite.config.ts"];
readonly detectFiles: readonly ["package.json"];
readonly cssFile: "src/style.css";
};
readonly svelte: {
readonly name: "Svelte";
readonly packageName: string | undefined;
readonly cliName: string | undefined;
readonly dependencies: readonly ["svelte"];
readonly configFiles: readonly ["package.json", "svelte.config.js"];
readonly detectFiles: readonly ["package.json", "svelte.config.js"];
readonly cssFile: "src/app.css";
};
readonly 'react-native': {
readonly name: "React Native";
readonly packageName: string | undefined;
readonly cliName: string | undefined;
readonly dependencies: readonly ["react-native"];
readonly configFiles: readonly ["package.json", "metro.config.js"];
readonly detectFiles: readonly ["package.json", "metro.config.js"];
readonly cssFile: null;
};
};
declare function detectFramework(cwd?: string): Promise<Framework | null>;
declare function selectFramework(detectedFramework?: Framework | null): Promise<Framework>;
declare function getFrameworkConfig(framework: Framework): {
readonly name: "React";
readonly packageName: string | undefined;
readonly cliName: string | undefined;
readonly dependencies: readonly ["react", "react-dom"];
readonly configFiles: readonly ["package.json"];
readonly detectFiles: readonly ["package.json"];
readonly cssFile: "src/index.css";
} | {
readonly name: "Vue.js";
readonly packageName: string | undefined;
readonly cliName: string | undefined;
readonly dependencies: readonly ["vue"];
readonly configFiles: readonly ["package.json", "vite.config.js", "vite.config.ts"];
readonly detectFiles: readonly ["package.json"];
readonly cssFile: "src/style.css";
} | {
readonly name: "Svelte";
readonly packageName: string | undefined;
readonly cliName: string | undefined;
readonly dependencies: readonly ["svelte"];
readonly configFiles: readonly ["package.json", "svelte.config.js"];
readonly detectFiles: readonly ["package.json", "svelte.config.js"];
readonly cssFile: "src/app.css";
} | {
readonly name: "React Native";
readonly packageName: string | undefined;
readonly cliName: string | undefined;
readonly dependencies: readonly ["react-native"];
readonly configFiles: readonly ["package.json", "metro.config.js"];
readonly detectFiles: readonly ["package.json", "metro.config.js"];
readonly cssFile: null;
};
declare function validateFrameworkProject(framework: Framework, cwd?: string): Promise<boolean>;
type InitOptions = {
framework?: Framework;
};
declare function initCommand(options?: InitOptions): Promise<void>;
interface AddCommandOptions {
all?: boolean;
framework?: Framework;
}
declare function addCommand(componentNames?: string[], options?: AddCommandOptions): Promise<void>;
interface ListCommandOptions {
framework?: Framework;
}
declare function listCommand(options?: ListCommandOptions): Promise<void>;
interface ColorCommandOptions {
custom?: string;
framework?: Framework;
}
declare function colorCommand(newColor?: string, options?: ColorCommandOptions): Promise<void>;
type PackageManager = 'npm' | 'yarn' | 'pnpm' | 'bun';
type DocyUIConfig = {
$schema?: string;
framework: Framework;
installMethod?: 'monolithic' | 'individual';
packageName?: string;
packageManager?: PackageManager;
components?: string[];
color: string;
customColorUrl?: string;
};
declare function getConfig(cwd?: string): Promise<DocyUIConfig | null>;
declare function writeConfig(config: DocyUIConfig, cwd?: string): Promise<void>;
type PackageJson = {
name?: string;
version?: string;
dependencies?: Record<string, string>;
devDependencies?: Record<string, string>;
[key: string]: unknown;
};
declare function getPackageJson(cwd?: string): Promise<PackageJson | null>;
declare function updatePackageJson(updates: Partial<PackageJson>, cwd?: string): Promise<void>;
declare function addDependencies(dependencies: Record<string, string>, isDev?: boolean, cwd?: string): Promise<void>;
export { type DocyUIConfig, FRAMEWORK_CONFIG, type Framework, type PackageJson, type PackageManager, addCommand, addDependencies, colorCommand, detectFramework, getConfig, getFrameworkConfig, getPackageJson, initCommand, listCommand, selectFramework, updatePackageJson, validateFrameworkProject, writeConfig };