"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = require("fs"); const main_1 = require("./main"); function readMeta(name) { let paths = main_1.AllPaths.script(name); let urls = main_1.AllPaths.url; var meta = { name: name, namespace: 'zomo.dev', match: '', excludematch: '', version: '0.0.0', description: '', icon: '', require: '', resource: '', runat: '', noframes: false, grant: '', injectinto: '', downloadURL: paths.url, supportURL: urls.support, homepageURL: urls.base, unwrap: false, }; let metaPath = paths.meta; if ((0, fs_1.existsSync)(metaPath) && (0, fs_1.lstatSync)(metaPath).isFile()) { try { let args = JSON.parse((0, fs_1.readFileSync)(metaPath).toString()); let key; for (key in meta) { let val = args[key]; //cases where the value is empty if (val === undefined) continue; if (val === false) continue; if (val === '') continue; meta[key] = val; } } catch (e) { console.log(e); } } else { console.log(`${metaPath} not found, using default metadata`); } const keyConversion = { injectinto: 'inject-into', excludematch: 'exclude-match', }; return { meta, metaString: `// ==UserScript== ${Object.keys(meta) .filter(key => { let val = meta[key]; if (val === undefined) return false; if (val === false) return false; if (val === '') return false; return true; }) .map(key => { let val = meta[key]; let key_str = key in keyConversion ? keyConversion[key] : key; key_str = key_str.padEnd(12, ' '); if (typeof val === 'boolean') { //bool if (val) return `// @${key_str}`; } else if (typeof val === 'string') { //string return `// @${key_str} ${val}`; } else if (Array.isArray(val)) { //multiple return val.map(v => `// @${key_str} ${v}`).join('\n'); } else if (typeof val === 'object') { //multilingual let langs = val; return Object.keys(langs) .map(lang => { let langStr = lang === 'default' ? '' : `:${lang}`; return `// @${key_str}${langStr} ${langs[lang]}`; }) .join('\n'); } return ''; }) .filter(l => l.length) .join('\n')} // ==/UserScript== `, }; } exports.default = readMeta; //# sourceMappingURL=readmeta.js.map