wallchpaper
Version:
Change wallpaper after an adjustable time
43 lines • 1.47 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const vm_1 = __importDefault(require("vm"));
const notify_1 = require("../notify");
const paths_1 = require("./paths");
const lodash_merge_1 = __importDefault(require("lodash.merge"));
function validateSyntax(code) {
try {
return new vm_1.default.Script(code, { filename: paths_1.configFile, displayErrors: true });
}
catch (error) {
notify_1.notify(error);
}
}
function extract(script) {
const module = {};
const context = vm_1.default.createContext({ module });
script.runInNewContext && script.runInContext(context);
if (!module.exports) {
throw new Error('Error reading Wallchpaper configuration: `module.exports` not set');
}
return module.exports;
}
function extractDefault(configCode) {
return extract(validateSyntax(configCode));
}
exports.extractDefault = extractDefault;
function init(configs) {
const script = validateSyntax(configs.userConfig);
if (script) {
const userConfigFile = extract(script);
if (!userConfigFile.config) {
return configs.defaultConfig;
}
return lodash_merge_1.default(configs.defaultConfig, userConfigFile);
}
return configs.defaultConfig;
}
exports.init = init;
//# sourceMappingURL=init.js.map