import * as fs from 'fs';
import * as path from 'path';
import { IPackageConfig } from "./interfaces/IPackageConfig";
import { IPackageConfigExtractor } from "./interfaces/IPackageConfigExtractor";
export class PackageConfigExtractor implements IPackageConfigExtractor {
/**
* @type {BufferEncoding}
*/
private static encoding: BufferEncoding = 'utf8';
/**
* @type {IPackageConfig}
*/
private config: IPackageConfig;
constructor () {
this.config = PackageConfigExtractor.getPackageConfig();
}
/**
* @returns {IPackageConfig}
*/
private static getPackageConfig (): IPackageConfig {
return <IPackageConfig>JSON.parse(
fs.readFileSync(
path.join(
path.dirname(
fs.realpathSync(process.argv[1])
),
'../package.json'
),
PackageConfigExtractor.encoding
)
);
}
/**
* @returns {IPackageConfig}
*/
public getConfig (): IPackageConfig {
return this.config;
}
}
|