Plugins: support .cjs module extension
| @@ -17,7 +17,7 @@ const loadedPlugins = new Map(); | |||
| 17 | * @param {string} file Path to file | 17 | * @param {string} file Path to file |
| 18 | * @returns {boolean} True if file is a CommonJS module | 18 | * @returns {boolean} True if file is a CommonJS module |
| 19 | */ | 19 | */ |
| 20 | const isCommonJS = (file) => path.extname(file) === '.js'; | 20 | const isCommonJS = (file) => path.extname(file) === '.js' || path.extname(file) === '.cjs'; |
| 21 | 21 | ||
| 22 | /** | 22 | /** |
| 23 | * Determine if a file is an ECMAScript module. | 23 | * Determine if a file is an ECMAScript module. |
| @@ -35,7 +35,7 @@ const isESModule = (file) => path.extname(file) === '.mjs'; | |||
| 35 | */ | 35 | */ |
| 36 | export async function loadPlugins(app, pluginsPath) { | 36 | export async function loadPlugins(app, pluginsPath) { |
| 37 | const exitHooks = []; | 37 | const exitHooks = []; |
| 38 | const emptyFn = () => {}; | 38 | const emptyFn = () => { }; |
| 39 | 39 | ||
| 40 | // Server plugins are disabled. | 40 | // Server plugins are disabled. |
| 41 | if (!enableServerPlugins) { | 41 | if (!enableServerPlugins) { |
| @@ -90,19 +90,15 @@ async function loadFromDirectory(app, pluginDirectoryPath, exitHooks) { | |||
| 90 | } | 90 | } |
| 91 | } | 91 | } |
| 92 | 92 | ||
| 93 | // Plugin is a CommonJS module. | 93 | // Plugin is a module file. |
| 94 | const cjsFilePath = path.join(pluginDirectoryPath, 'index.js'); | 94 | const fileTypes = ['index.js', 'index.cjs', 'index.mjs']; |
| 95 | if (fs.existsSync(cjsFilePath)) { | ||
| 96 | if (await loadFromFile(app, cjsFilePath, exitHooks)) { | ||
| 97 | return; | ||
| 98 | } | ||
| 99 | } | ||
| 100 | 95 | ||
| 101 | // Plugin is an ECMAScript module. | 96 | for (const fileType of fileTypes) { |
| 102 | const esmFilePath = path.join(pluginDirectoryPath, 'index.mjs'); | 97 | const filePath = path.join(pluginDirectoryPath, fileType); |
| 103 | if (fs.existsSync(esmFilePath)) { | 98 | if (fs.existsSync(filePath)) { |
| 104 | if (await loadFromFile(app, esmFilePath, exitHooks)) { | 99 | if (await loadFromFile(app, filePath, exitHooks)) { |
| 105 | return; | 100 | return; |
| 101 | } | ||
| 106 | } | 102 | } |
| 107 | } | 103 | } |
| 108 | } | 104 | } |