feat(lib/plugins): add sourceURL to external plugin scripts

This commit is contained in:
PalmDevs 2026-07-31 16:48:04 +07:00
parent 1497e8ef8d
commit ffce0e2cf2
No known key found for this signature in database
GPG key ID: 6FAE8F8677ACA8BA

View file

@ -160,7 +160,7 @@ export function registerExternalPlugin(external: ExternalPlugin) {
const id = internal
? registerInternalPlugin(
manifest,
createOptionsFactory(script),
createOptionsFactory(manifest.id, script),
essential || enabledByDefault ? PluginFlags.Enabled : 0,
InternalPluginFlags.Internal |
(essential ? InternalPluginFlags.Essential : 0) |
@ -168,7 +168,7 @@ export function registerExternalPlugin(external: ExternalPlugin) {
)
: registerPlugin(
manifest,
createOptionsFactory(script),
createOptionsFactory(manifest.id, script),
enabledByDefault ? PluginFlags.Enabled : 0,
)
@ -235,11 +235,18 @@ function assertIsFunction(
throw new Error(`${name} must be a function, got ${typeof value}`)
}
function createOptionsFactory(script?: string): PluginOptionsFactory {
function createOptionsFactory(
id: string,
script?: string,
): PluginOptionsFactory {
if (!script) return () => ({})
return () => {
const opts = new Function('revenge', 'plugin', `return ${script}`)(
const opts = new Function(
'revenge',
'plugin',
`return ${script}\n//# sourceURL=Revenge:Plugin:${id}`,
)(
pUnscopedApi,
// See types.consumers.ts
(opts: PluginOptions) => opts,