diff --git a/build/build.js b/build/build.js index 5c82dcb..14e0e0f 100755 --- a/build/build.js +++ b/build/build.js @@ -16,6 +16,7 @@ See the License for the specific language governing permissions and limitations under the License. */ +import { processPlugin } from './utils/plugin.js'; import { readdir } from 'node:fs/promises'; import { join } from 'node:path'; import { pathToFileURL } from 'node:url'; @@ -24,6 +25,12 @@ const dir = './build/plugins'; const files = await readdir(dir); +const tryToProcessPlugin = async function tryToProcessPlugin (plugin) { + if (typeof plugin.default === 'function') { + await processPlugin(plugin.default); + } +}; + (await Promise.all( files .filter((file) => file.endsWith('.js')) @@ -31,12 +38,5 @@ const files = await readdir(dir); import(pathToFileURL(join(dir, file)).href) ) )).forEach( - async (plugin) => { - try { - const result = plugin.default(); - if (result instanceof Promise) await result; - } catch (err) { - if (!(err instanceof TypeError)) throw err; - } - } + async (plugin) => tryToProcessPlugin(plugin) ); \ No newline at end of file diff --git a/build/utils/plugin.js b/build/utils/plugin.js new file mode 100644 index 0000000..cd755ab --- /dev/null +++ b/build/utils/plugin.js @@ -0,0 +1,25 @@ +/* +Copyright 2026 Seekra + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +const runPlugin = async function runPlugin (plugin) { + const result = plugin(); + if (result instanceof Promise) return await result; + else return result; +}; + +export const processPlugin = async function processPlugin (plugin) { + await runPlugin(plugin); +}; \ No newline at end of file