import * as plugins from './projectinfo.plugins.js';

export class ProjectinfoNpm {
  isNpm: boolean = false;
  packageJson: any;
  name: string;
  version: string;
  status: string;
  license: string;
  git: plugins.smartstring.GitRepo;

  constructor(cwdArg: string, optionsArg: { gitAccessToken?: string } = {}) {
    let resolvedCwd = plugins.path.resolve(cwdArg);
    if (plugins.smartfile.fs.fileExists(plugins.path.join(resolvedCwd, 'package.json'))) {
      this.isNpm = true;
      this.packageJson = plugins.smartfile.fs.toObjectSync(
        plugins.path.join(resolvedCwd, 'package.json'),
        'json'
      );
      this.name = this.packageJson.name;
      this.version = this.packageJson.version;
      this.status = 'ok';
      this.license = this.packageJson.license;
      if (this.packageJson.repository) {
        this.git = new plugins.smartstring.GitRepo(
          this.packageJson.repository.url,
          optionsArg.gitAccessToken
        );
      }
    }
  }
}
