js-green-licenses
Version:
JavaScript package.json license checker
63 lines (62 loc) • 2.25 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import { GitHubRepository } from './github';
export { GitHubRepository } from './github';
export interface LicenseCheckerOptions {
dev?: boolean;
verbose?: boolean;
}
export interface NonGreenLicense {
packageName: string;
version: string;
licenseName: string | null;
parentPackages: string[];
}
export interface CheckError {
err: Error;
packageName: string;
versionSpec: string;
parentPackages: string[];
}
export interface DefaultHandlerOptions {
setExitCode?: boolean;
}
export declare class LicenseChecker extends EventEmitter {
private readonly processedPackages;
private readonly failedPackages;
private readonly localPackages;
private readonly opts;
private config;
private greenLicenseExpr;
private allowlistedLicenses;
constructor({ dev, verbose }?: LicenseCheckerOptions);
on(event: 'non-green-license', listener: (arg: NonGreenLicense) => void): this;
on(event: 'package.json', listener: (filePath: string) => void): this;
on(event: 'end', listener: () => void): this;
on(event: 'error', listener: (checkError: CheckError) => void): this;
emit(event: 'non-green-license', arg: NonGreenLicense): boolean;
emit(event: 'package.json', filePath: string): boolean;
emit(event: 'end'): boolean;
emit(event: 'error', checkError: CheckError): boolean;
private init;
private getLicense;
private correctLicenseName;
private isPackageAllowlisted;
private isGreenLicense;
private getPackageJson;
private checkLicenses;
private checkLicensesForDeps;
private checkPackageJson;
private checkPackageJsonContent;
private getLocalPackageJsonFiles;
checkLocalDirectory(directory: string): Promise<void>;
checkRemotePackage(pkg: string): Promise<void>;
/** @param prPath Must be in a form of <owner>/<repo>/pull/<id>. */
prPathToGitHubRepoAndId(prPath: string): {
repo: GitHubRepository;
prId: number;
};
checkGitHubPR(repo: GitHubRepository, mergeCommitSha: string): Promise<void>;
/** set default event handlers for CLI output. */
setDefaultHandlers(options?: DefaultHandlerOptions): void;
}