@softwareventures/maintain-project
Version:
Automatically create and maintain TypeScript projects with standard settings for Software Ventures Limited
44 lines (43 loc) • 1.68 kB
TypeScript
import type { GitHost, GitHostOptions } from "../git/git-host.js";
import type { NpmPackage, NpmPackageOptions } from "../npm/npm-package.js";
import type { NodeVersions } from "../node/node-versions.js";
import type { SpdxLicense } from "../license/spdx/spdx.js";
import type { GitProject } from "../git/git-project.js";
import type { TslintProject } from "../tslint/tslint-project.js";
import type { EslintProject } from "../eslint/eslint-project.js";
export interface Project {
readonly path: string;
readonly npmPackage: NpmPackage;
readonly git?: GitProject | undefined;
readonly gitHost?: GitHost | undefined;
readonly node: NodeVersions;
readonly target: "npm" | "webapp";
readonly tslint?: TslintProject | undefined;
readonly eslint?: EslintProject | undefined;
readonly author: {
readonly name?: string | undefined;
readonly email?: string | undefined;
};
readonly license: {
readonly spdxLicense?: SpdxLicense | undefined;
readonly year: number;
readonly copyrightHolder?: string | undefined;
};
}
export interface ProjectOptions {
readonly path: string;
readonly npmPackage?: NpmPackageOptions | undefined;
readonly gitHost?: GitHostOptions | undefined;
readonly target?: "npm" | "webapp" | undefined;
readonly author?: undefined | {
readonly name?: string | undefined;
readonly email?: string | undefined;
};
readonly license?: undefined | {
readonly spdxLicense?: SpdxLicense | undefined;
readonly copyrightHolder?: string | undefined;
};
}
export type ProjectSource = Project | {
readonly path: string;
};