UNPKG

wallchpaper

Version:

Change wallpaper after an adjustable time

43 lines 1.47 kB
"use strict"; 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