Prettier triggered
This commit is contained in:
parent
fe681b6017
commit
e6204dade4
1 changed files with 35 additions and 28 deletions
63
meta.js
63
meta.js
|
@ -1,67 +1,74 @@
|
||||||
// This is a copy of https://github.com/pd4d10/userscript-meta/blob/master/index.js
|
// This is a copy of https://github.com/pd4d10/userscript-meta/blob/master/index.js
|
||||||
'use strict'
|
"use strict";
|
||||||
|
|
||||||
function isUndefined(val) {
|
function isUndefined(val) {
|
||||||
return typeof val === 'undefined'
|
return typeof val === "undefined";
|
||||||
}
|
}
|
||||||
|
|
||||||
function isObject(val) {
|
function isObject(val) {
|
||||||
return typeof val === 'object' && val !== null
|
return typeof val === "object" && val !== null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse metadata to an object
|
// Parse metadata to an object
|
||||||
function parse(meta) {
|
function parse(meta) {
|
||||||
if (typeof meta !== 'string') {
|
if (typeof meta !== "string") {
|
||||||
throw new Error('`Parse`\'s first argument should be a string')
|
throw new Error("`Parse`'s first argument should be a string");
|
||||||
}
|
}
|
||||||
|
|
||||||
return meta.split(/[\r\n]/)
|
return meta
|
||||||
.filter(function (line) { // remove blank line
|
.split(/[\r\n]/)
|
||||||
return /\S+/.test(line) &&
|
.filter(function (line) {
|
||||||
line.indexOf('==UserScript==') === -1 &&
|
// remove blank line
|
||||||
line.indexOf('==/UserScript==') === -1
|
return (
|
||||||
|
/\S+/.test(line) &&
|
||||||
|
line.indexOf("==UserScript==") === -1 &&
|
||||||
|
line.indexOf("==/UserScript==") === -1
|
||||||
|
);
|
||||||
})
|
})
|
||||||
.reduce(function (obj, line) {
|
.reduce(function (obj, line) {
|
||||||
var arr = line.trim().replace(/^\/\//, '').trim().split(/\s+/)
|
var arr = line.trim().replace(/^\/\//, "").trim().split(/\s+/);
|
||||||
var key = arr[0].slice(1)
|
var key = arr[0].slice(1);
|
||||||
var value = arr.slice(1).join(' ')
|
var value = arr.slice(1).join(" ");
|
||||||
|
|
||||||
if (isUndefined(obj[key])) {
|
if (isUndefined(obj[key])) {
|
||||||
obj[key] = value
|
obj[key] = value;
|
||||||
} else if (Array.isArray(obj[key])) {
|
} else if (Array.isArray(obj[key])) {
|
||||||
obj[key].push(value)
|
obj[key].push(value);
|
||||||
} else {
|
} else {
|
||||||
obj[key] = [obj[key], value]
|
obj[key] = [obj[key], value];
|
||||||
}
|
}
|
||||||
|
|
||||||
return obj
|
return obj;
|
||||||
}, {})
|
}, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getLine(key, value) {
|
function getLine(key, value) {
|
||||||
// For field which has multiple values, like `match`
|
// For field which has multiple values, like `match`
|
||||||
if (Array.isArray(value)) {
|
if (Array.isArray(value)) {
|
||||||
return value.map(function (value) {
|
return value
|
||||||
return getLine(key, value)
|
.map(function (value) {
|
||||||
}).join('')
|
return getLine(key, value);
|
||||||
|
})
|
||||||
|
.join("");
|
||||||
}
|
}
|
||||||
|
|
||||||
return '// @' + key + ' ' + value + '\n'
|
return "// @" + key + " " + value + "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stringify metadata from an object
|
// Stringify metadata from an object
|
||||||
function stringify(obj) {
|
function stringify(obj) {
|
||||||
if (!isObject(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)
|
var meta = Object.keys(obj)
|
||||||
.map(function (key) {
|
.map(function (key) {
|
||||||
return getLine(key, obj[key])
|
return getLine(key, obj[key]);
|
||||||
}).join('')
|
})
|
||||||
|
.join("");
|
||||||
|
|
||||||
return '// ==UserScript==\n' + meta + '// ==/UserScript==\n'
|
return "// ==UserScript==\n" + meta + "// ==/UserScript==\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.parse = parse
|
exports.parse = parse;
|
||||||
exports.stringify = stringify
|
exports.stringify = stringify;
|
||||||
|
|
Loading…
Reference in a new issue