MCPcopy Create free account
hub / github.com/Maccoder3/MAC-MD / reload

Function reload

lib/plugins.js:54–85  ·  view source on GitHub ↗
(
  conn,
  pluginFolder = pluginFolder,
  pluginFilter = pluginFilter,
  _ev,
  filename
)

Source from the content-addressed store, hash-verified

52}
53
54async function reload(
55 conn,
56 pluginFolder = pluginFolder,
57 pluginFilter = pluginFilter,
58 _ev,
59 filename
60) {
61 if (pluginFilter(filename)) {
62 let dir = global.__filename(join(pluginFolder, filename), true)
63 if (filename in plugins) {
64 if (existsSync(dir)) conn.logger.info(` updated plugin - '${filename}'`)
65 else {
66 conn?.logger.warn(`deleted plugin - '${filename}'`)
67 return delete plugins[filename]
68 }
69 } else conn?.logger.info(`new plugin - '${filename}'`)
70 let err = syntaxerror(readFileSync(dir), filename, {
71 sourceType: 'module',
72 allowAwaitOutsideFunction: true,
73 })
74 if (err) conn.logger.error(`syntax error while loading '${filename}'\n${format(err)}`)
75 else
76 try {
77 const module = await importFile(global.__filename(dir)).catch(console.error)
78 if (module) plugins[filename] = module
79 } catch (e) {
80 conn?.logger.error(`error require plugin '${filename}\n${format(e)}'`)
81 } finally {
82 plugins = Object.fromEntries(Object.entries(plugins).sort(([a], [b]) => a.localeCompare(b)))
83 }
84 }
85}
86
87export {
88 pluginFolder,

Callers

nothing calls this directly

Calls 1

pluginFilterFunction · 0.85

Tested by

no test coverage detected