diff --git a/src/banner.ts b/src/banner.ts index 033c6f9..c2ce93e 100644 --- a/src/banner.ts +++ b/src/banner.ts @@ -24,11 +24,10 @@ export class Banner { return ' '.repeat(this.maxKeyLength - str.length) } - private addMetadata(key: string, value: string | number | boolean): void { - const isBoolean = typeof value === 'boolean' - if (isBoolean && !value) return - value = !isBoolean ? `${this.addSpaces(key)}${value}` : '' - this.header.push(`// @${key}${value}`) + private addMetadata(key: string, value: string | string[] | number | boolean): void { + value = Array.isArray(value) ? value.join(' ') : value === true ? '' : value + const spaces = this.addSpaces(key) + this.header.push(`// @${key}${spaces}${value}`) } generate(): string { diff --git a/src/types.ts b/src/types.ts index 6e72650..8d10fb3 100644 --- a/src/types.ts +++ b/src/types.ts @@ -18,7 +18,7 @@ export type GMWindow = typeof GMwindow[number] export type Grants = GMWindow | GMLiterals[number] export type HeaderConfig = { - [property: string]: string | boolean | number | string[] | undefined + [property: string]: any /** * The name of the script. @@ -146,7 +146,7 @@ export type HeaderConfig = { * Preloads resources that can by accessed * via `GM_getResourceURL` and `GM_getResourceText` by the script. */ - resource?: string[] | string + resource?: [string, string][] /** * This tag defines the domains (no top-level domains) including subdomains diff --git a/test/__snapshots__/banner.test.ts.snap b/test/__snapshots__/banner.test.ts.snap index a49f97c..353f731 100644 --- a/test/__snapshots__/banner.test.ts.snap +++ b/test/__snapshots__/banner.test.ts.snap @@ -9,7 +9,7 @@ exports[`banner default snapshot 1`] = ` // @namespace vitest // @connect vitest.dev // @license MIT -// @noframes +// @noframes // @icon https://vitest.dev/favicon.ico // @icon64 https://vitest.dev/favicon.ico // @exclude https://vitest.dev/guide/* @@ -19,7 +19,7 @@ exports[`banner default snapshot 1`] = ` // @downloadURL https://vitest.dev // @supportURL https://vitest.dev // @updateURL https://vitest.dev -// @resource https://vitest.dev +// @resource vitest https://vitest.dev // @require https://example.com/index.js // @grant GM_setValue // @grant GM.setValue diff --git a/test/banner.test.ts b/test/banner.test.ts index e8320ad..4e56590 100644 --- a/test/banner.test.ts +++ b/test/banner.test.ts @@ -20,7 +20,7 @@ const defaultBanner: HeaderConfig = { downloadURL: 'https://vitest.dev', supportURL: 'https://vitest.dev', updateURL: 'https://vitest.dev', - resource: 'https://vitest.dev', + resource: [['vitest', 'https://vitest.dev']], require: 'https://example.com/index.js', grant: [...grants], match: 'https://vitest.dev',