@anycli/config
Version:
base config object and standard interfaces for anycli components
64 lines (63 loc) • 1.61 kB
TypeScript
export interface PJSON {
[k: string]: any;
dependencies?: {
[name: string]: string;
};
anycli: {
schema?: number;
};
}
export declare namespace PJSON {
interface Plugin extends PJSON {
name: string;
version: string;
anycli: PJSON['anycli'] & {
schema?: number;
title?: string;
description?: string;
hooks?: {
[name: string]: (string | string[]);
};
commands?: string;
plugins?: string[];
devPlugins?: string[];
topics?: {
[k: string]: {
description?: string;
subtopics?: Plugin['anycli']['topics'];
hidden?: boolean;
};
};
};
}
interface CLI extends Plugin {
anycli: Plugin['anycli'] & {
schema?: number;
bin?: string;
npmRegistry?: string;
scope?: string;
dirname?: string;
};
}
interface User extends PJSON {
private?: boolean;
anycli: PJSON['anycli'] & {
plugins?: (string | PluginTypes.User | PluginTypes.Link)[];
};
}
type PluginTypes = PluginTypes.User | PluginTypes.Link | {
root: string;
};
namespace PluginTypes {
interface User {
type: 'user';
name: string;
tag?: string;
}
interface Link {
type: 'link';
name: string;
root: string;
}
}
}