170 похожих чатов

Const Multimap = require('multimap'); const fs = require('fs'); const path = require('path'); const

chokidar = require('chokidar');
const commands = new Multimap();

function getOldAndNewModule(modulepath) {
let prev, next
const cache = require.cache[require.resolve(modulepath)]
prev = cache ? cache.exports : null;
delete require.cache[require.resolve(modulepath)];
try {
next = require(modulepath);
} catch {
next = null
}
return { next, prev }
}

function refreshModule(modulepath) {
const { prev, next } = getOldAndNewModule(modulepath)
if (prev) commands.delete(prev.name, prev);
if (next) commands.set(next.name, next);
}

const root = path.resolve("modules")
const watcher = chokidar.watch(root, { persistent: true, depth: 2, ignoreInitial: true })

watcher.on("all", (event, path) => {
console.log(path)
refreshModule(path)
show()
});

fs.readdirSync(root).forEach(function (name) {
const fullname = path.join(root, name)
refreshModule(fullname)
})

show()

function show() {
console.log("------------------")
for (const key of commands.keys()) {
const handlers = commands.get(key)
console.log(key, "=>", handlers)
console.log("Executing")
handlers.forEach(x => x.run())
}
console.log("------------------")
}

1 ответов

9 просмотров
Feanorx- Автор вопроса

Тут правильная

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Народ всем привет Подскажите, как включить самописные dll библиотеки в итоговую сборку Сейчас при запуске dev сервера локально формируется папка build, из которой запускается...
Андрей
4
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
8
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Доброе утро! Не совсем понятно как установить счетчик яндекс метрики на сайт. И потом ещё цели проставить?
Евгения
18
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Я конечно собираюсь вдумчиво прочитать про условные переходы и так далее, но сейчас мне так лень Как сравнить 2 строки в ассемблере?
Alexey
10
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Карта сайта