UNPKG

@ofzza/adventofcode

Version:
59 lines 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Configuration = void 0; const tslib_1 = require("tslib"); // Dependencies const fs_1 = require("fs"); const path_1 = require("path"); // Import default configuration const default_json_1 = (0, tslib_1.__importDefault)(require("./default.json")); (0, tslib_1.__exportStar)(require("./types"), exports); /** * Implements configuration reading and processing functionality */ class Configuration { /** * Gets initialized configuration (and initializes it if not already initialized) */ static get config() { return Configuration._config; } /** * Gets task execution CWD (same as location of configuration file) */ static get cwd() { return Configuration._cwd; } /** * Writes default configuration into a config file */ static writeDefault(path) { try { const absolutePath = (0, path_1.join)(process.cwd(), path); (0, fs_1.writeFileSync)(absolutePath, JSON.stringify(default_json_1.default, null, 2)); } catch (err) { throw err; } } /** * Reads and parses configuration */ static initialize(path) { try { this._cwd = (0, path_1.dirname)(path); const absolutePath = (0, path_1.join)(process.cwd(), path); let syntax = (0, fs_1.readFileSync)(absolutePath).toString(); syntax = syntax .split('\n') .filter(line => !line.trim().startsWith('//')) .join('\n'); this._config = JSON.parse(syntax); } catch (err) { throw err; } } } exports.Configuration = Configuration; //# sourceMappingURL=index.js.map