gzipper
Version:
CLI for compressing files.
49 lines • 3.52 kB
JavaScript
import path from 'node:path';
import { writeFile } from 'node:fs/promises';
import { CONFIG_FILE, CONFIG_FOLDER } from './constants.js';
import { getVersion, checkFileExists, readFile } from './helpers.js';
export class Config {
_configFile;
_configContent = new Map();
get configContent() {
return Object.fromEntries(this._configContent);
}
set configContent(value) {
this._configContent = new Map(Object.entries(value));
}
/**
* Creates an instance of Config.
*/
constructor() {
this._configFile = path.resolve(process.cwd(), CONFIG_FOLDER, CONFIG_FILE);
this.setProperty('version', getVersion());
}
/**
* Read config (.gzipperconfig).
*/
async readConfig() {
if (await checkFileExists(this._configFile)) {
const response = await readFile(this._configFile);
this._configContent = new Map(Object.entries(JSON.parse(response.toString())));
}
}
/**
* set additional data for property to config file (.gzipperconfig).
*/
setProperty(field, content) {
this._configContent.set(field, content);
}
/**
* delete property from config file (.gzipperconfig).
*/
deleteProperty(field) {
this._configContent.delete(field);
}
/**
* Init or update config (.gzipperconfig).
*/
async writeConfig() {
await writeFile(path.resolve(this._configFile), JSON.stringify(Object.fromEntries(this._configContent), null, 2));
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXJFLE1BQU0sT0FBTyxNQUFNO0lBQ0EsV0FBVyxDQUFTO0lBQzdCLGNBQWMsR0FBRyxJQUFJLEdBQUcsRUFBd0MsQ0FBQztJQUV6RSxJQUFJLGFBQWE7UUFDZixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLGFBQWEsQ0FBQyxLQUEyQjtRQUMzQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSDtRQUNFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFVBQVU7UUFDZCxJQUFJLE1BQU0sZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQzVDLE1BQU0sUUFBUSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksR0FBRyxDQUMzQixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FDaEQsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXLENBQ1QsS0FBUSxFQUNSLE9BQVU7UUFFVixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUE2QixLQUFRO1FBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxXQUFXO1FBQ2YsTUFBTSxTQUFTLENBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUNqRSxDQUFDO0lBQ0osQ0FBQztDQUNGIn0=