diff --git a/meta.js b/meta.js index 7c47536..63f0468 100644 --- a/meta.js +++ b/meta.js @@ -1,67 +1,74 @@ // This is a copy of https://github.com/pd4d10/userscript-meta/blob/master/index.js -'use strict' +"use strict"; function isUndefined(val) { - return typeof val === 'undefined' + return typeof val === "undefined"; } function isObject(val) { - return typeof val === 'object' && val !== null + return typeof val === "object" && val !== null; } // Parse metadata to an object function parse(meta) { - if (typeof meta !== 'string') { - throw new Error('`Parse`\'s first argument should be a string') + if (typeof meta !== "string") { + throw new Error("`Parse`'s first argument should be a string"); } - return meta.split(/[\r\n]/) - .filter(function (line) { // remove blank line - return /\S+/.test(line) && - line.indexOf('==UserScript==') === -1 && - line.indexOf('==/UserScript==') === -1 + return meta + .split(/[\r\n]/) + .filter(function (line) { + // remove blank line + return ( + /\S+/.test(line) && + line.indexOf("==UserScript==") === -1 && + line.indexOf("==/UserScript==") === -1 + ); }) .reduce(function (obj, line) { - var arr = line.trim().replace(/^\/\//, '').trim().split(/\s+/) - var key = arr[0].slice(1) - var value = arr.slice(1).join(' ') + var arr = line.trim().replace(/^\/\//, "").trim().split(/\s+/); + var key = arr[0].slice(1); + var value = arr.slice(1).join(" "); if (isUndefined(obj[key])) { - obj[key] = value + obj[key] = value; } else if (Array.isArray(obj[key])) { - obj[key].push(value) + obj[key].push(value); } else { - obj[key] = [obj[key], value] + obj[key] = [obj[key], value]; } - return obj - }, {}) + return obj; + }, {}); } function getLine(key, value) { // For field which has multiple values, like `match` if (Array.isArray(value)) { - return value.map(function (value) { - return getLine(key, value) - }).join('') + return value + .map(function (value) { + return getLine(key, value); + }) + .join(""); } - return '// @' + key + ' ' + value + '\n' + return "// @" + key + " " + value + "\n"; } // Stringify metadata from an object function stringify(obj) { if (!isObject(obj)) { - throw new Error('`Stringify`\'s first argument should be an object') + throw new Error("`Stringify`'s first argument should be an object"); } var meta = Object.keys(obj) .map(function (key) { - return getLine(key, obj[key]) - }).join('') + return getLine(key, obj[key]); + }) + .join(""); - return '// ==UserScript==\n' + meta + '// ==/UserScript==\n' + return "// ==UserScript==\n" + meta + "// ==/UserScript==\n"; } -exports.parse = parse -exports.stringify = stringify \ No newline at end of file +exports.parse = parse; +exports.stringify = stringify;