import * as plugins from './projectinfo.plugins.js'; import { ProjectinfoNpm } from './projectinfo.classes.npm.js'; import { ProjectinfoGit } from './projectinfo.classes.git.js'; export type TProjectType = 'git' | 'npm'; /** * class projectinfo automatically examines a given directory and exposes relevant info about it */ export class ProjectInfo { type: TProjectType = 'git'; npm: ProjectinfoNpm; git: ProjectinfoGit; private constructor(npm: ProjectinfoNpm, git: ProjectinfoGit) { this.npm = npm; this.git = git; if (npm.isNpm) { this.type = 'npm'; } } static async create(cwdArg: string): Promise { const npm = await ProjectinfoNpm.create(cwdArg); const git = new ProjectinfoGit(cwdArg); return new ProjectInfo(npm, git); } }