PATH:
usr
/
local
/
lib
/
node_modules
/
ghost-cli
/
lib
/
utils
'use strict'; const isPlainObject = require('lodash/isPlainObject'); const _get = require('lodash/get'); const _set = require('lodash/set'); const _has = require('lodash/has'); const fs = require('fs-extra'); /** * Config class. Basic wrapper around a json file, but handles * nested properties editing, default values, and saving * * @class Config */ class Config { /** * Constructs the config instance * * @param {string} filename Filename to load */ constructor(filename) { if (!filename) { throw new Error('Config file not specified.'); } this.file = filename; this.values = Config.exists(this.file) || {}; } /** * Gets a value from the config file. Uses the lodash `get` method * * @param {string} key Key to get * @param {any} defaultValue Value to return if config value doesn't exist * @return {any} Value in the config file if it exists, otherwise null * * @method get * @public */ get(key, defaultValue) { return _get(this.values, key, defaultValue); } /** * Sets a value in the config. * If 'value' is null, removes the key from the config * * @param {string} key Key to set * @param {any} value Value to set at `key` * @return Config This config instance * * @method get * @public */ set(key, value) { if (isPlainObject(key)) { Object.assign(this.values, key); return this; } // Setting a value to null removes it from the config if (value === null) { delete this.values[key]; return this; } _set(this.values, key, value); return this; } /** * Checks if a value exists for 'key' in the config * * @param {string} key Key to check * @return bool Whether or not the config value exists * * @method has * @public */ has(key) { return _has(this.values, key); } /** * Saves the config file to disk * * @method save * @public */ save() { // Write with spaces to make the files easier to edit manually fs.writeJsonSync(this.file, this.values, {spaces: 2}); return this; } /** * Checks whether or not a config file exists * @param {string} filename Filename to check * * @static * @method exists * @public */ static exists(filename) { try { const result = fs.readJsonSync(filename); return result; } catch (e) { return false; } } } module.exports = Config;
[-] needed-migrations.js
[edit]
[-] port-polling.js
[edit]
[+]
..
[-] local-process.js
[edit]
[-] get-proxy-agent.js
[edit]
[-] url.js
[edit]
[-] check-valid-install.js
[edit]
[-] use-ghost-user.js
[edit]
[-] config.js
[edit]
[-] yarn.js
[edit]
[-] dir-is-empty.js
[edit]
[-] pre-checks.js
[edit]
[-] find-extensions.js
[edit]
[-] check-root-user.js
[edit]
[-] version.js
[edit]