webpack-userscript
Advanced tools
Comparing version
@@ -7,2 +7,10 @@ /** | ||
const pkgVersion = packageJson.version | ||
const pkgDescription = packageJson.description | ||
const pkgAuthor = packageJson.author | ||
const pkgHomepage = packageJson.homepage | ||
const pkgSupportUrl = typeof packageJson.bugs === 'string' ? packageJson.bugs | ||
: typeof packageJson.bugs === 'object' && | ||
typeof packageJson.bugs.url === 'string' ? packageJson.bugs.url | ||
: '' | ||
// return user defined headers | ||
@@ -13,10 +21,34 @@ let _headerFn = typeof headerFnOrObj === 'function' ? headerFnOrObj | ||
const headerObj = _headerFn(data) | ||
return { | ||
return trimFalsyLeaves({ | ||
name: pkgName, | ||
version: pkgVersion, | ||
author: pkgAuthor, | ||
description: pkgDescription, | ||
homepage: pkgHomepage, | ||
supportURL: pkgSupportUrl, | ||
match: headerObj.include || headerObj.match ? '' : '*://*/*', | ||
// override default headers | ||
...(typeof headerObj === 'object' ? headerObj : {}) | ||
} | ||
}) | ||
} | ||
} | ||
function trimFalsyLeaves (obj) { | ||
if (Array.isArray(obj)) { | ||
const filtered = obj.filter(Boolean) | ||
return filtered.length > 0 ? filtered : undefined | ||
} | ||
if (typeof obj === 'string') { | ||
return obj.trim() || undefined | ||
} | ||
if (typeof obj === 'object') { | ||
const filtered = Object.entries(obj) | ||
.filter(([ , value ]) => Boolean(trimFalsyLeaves(value))) | ||
return filtered.length > 0 ? filtered.reduce((newObj, [ key, value ]) => { | ||
newObj[key] = value | ||
return newObj | ||
}, {}) : undefined | ||
} | ||
return obj | ||
} |
{ | ||
"name": "webpack-userscript", | ||
"version": "2.0.1", | ||
"version": "2.1.0", | ||
"description": "A Webpack4+ plugin for userscript projects.", | ||
@@ -5,0 +5,0 @@ "repository": { |
12996
8.49%236
14.01%