@materia/interfaces
Version:
89 lines (88 loc) • 1.8 kB
TypeScript
export interface IPackageJson {
name: string;
version?: string;
description?: string;
keywords?: string[];
homepage?: string;
bugs?: string | IBugs;
license?: string;
author?: string | IAuthor;
contributors?: string[] | IAuthor[];
files?: string[];
main?: string;
bin?: string | IBinMap;
man?: string | string[];
directories?: IDirectories;
repository?: string | IRepository;
scripts?: IScriptsMap;
config?: IConfig;
dependencies?: IDependencyMap;
devDependencies?: IDependencyMap;
peerDependencies?: IDependencyMap;
optionalDependencies?: IDependencyMap;
bundledDependencies?: string[];
engines?: IEngines;
os?: string[];
cpu?: string[];
preferGlobal?: boolean;
private?: boolean;
publishConfig?: IPublishConfig;
}
/**
* An author or contributor
*/
export interface IAuthor {
name: string;
email?: string;
homepage?: string;
}
/**
* A map of exposed bin commands
*/
export interface IBinMap {
[commandName: string]: string;
}
/**
* Issue tracker and contact email
*/
export interface IBugs {
email: string;
url: string;
}
export interface IConfig {
name?: string;
config?: Object;
}
/**
* A map of dependencies
*/
export interface IDependencyMap {
[dependencyName: string]: string;
}
/**
* CommonJS package structure
*/
export interface IDirectories {
lib?: string;
bin?: string;
man?: string;
doc?: string;
example?: string;
}
export interface IEngines {
node?: string;
npm?: string;
}
export interface IPublishConfig {
registry?: string;
}
/**
* A project repository
*/
export interface IRepository {
type: string;
url: string;
}
export interface IScriptsMap {
[scriptName: string]: string;
}