Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
egg-watcher
Advanced tools
File watcher plugin for egg
In worker process:
Start watching file(s).
Stop watching file(s).
In agent process:
Start watching file(s).
Stop watching file(s).
development
ModeThere's a built-in development mode which works in local(env is local
). Once files on disk is modified it will emit a change
event immediately.
Say we want to build a custom event source plugin (package name: egg-watcher-custom
, eggPlugin.name: watcherCustom
).
Firstly define our custom event source like this:
// {plugin_root}/lib/custom_event_source.js
const Base = require('sdk-base');
class CustomEventSource extends Base {
// `opts` comes from app.config[${eventSourceName}]
// `eventSourceName` will be registered later in
// `config.watcher.eventSources` as the key shown below
constructor(opts) {
super(opts);
this.ready(true);
}
watch(path) {
// replace this with your desired way of watching,
// when aware of any change, emit a `change` event
// with an info object containing `path` property
// specifying the changed directory or file.
this._h = setInterval(() => {
this.emit('change', { path });
}, 1000);
}
unwatch() {
// replace this with your implementation
if (this._h) {
clearInterval(this._h);
}
}
}
module.exports = CustomEventSource;
Event source implementations varies according to your running environment. When working with vagrant, docker, samba or such other non-standard way of development, you should use a different watch API specific to what you are working with.
Then add your custom event source to config:
// config.default.js
exports.watcher = {
eventSources: {
custom: require('../lib/custom_event_source'),
},
};
Choose to use your custom watching mode in your desired env.
// config.${env}.js
exports.watcher = {
type: 'custom',
};
// this will pass to your CustomEventSource constructor as opts
exports.watcherCustom = {
// foo: 'bar',
};
If possible, plugins named like egg-watcher-${customName}
(egg-watcher-vagrant
eg.) are recommended.
Please open an issue here.
4.0.0 (2024-12-18)
part of https://github.com/eggjs/egg/issues/3644
https://github.com/eggjs/egg/issues/5257
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->New Features
Introduced new configuration files for managing watcher settings in different environments (default, local, unittest).
Added a new Boot
class to manage application lifecycle and watcher
initialization.
Implemented Watcher
class for monitoring file changes with event
handling.
Added DevelopmentEventSource
and DefaultEventSource
classes for
specific event source management.
Bug Fixes
Enhanced path handling in various modules to ensure correct file watching functionality.
Documentation
README.md
with project name change and improved structure.Tests
Introduced new unit tests for watcher functionality and refactored existing test files to improve clarity and structure.
Chores
Removed deprecated configuration files and streamlined project structure.
fixes
9ab2eed
] - fix: spell error on watcher.js (#13) (zoomdong <1344492820@qq.com>)others
ffd3720
] - chore: update travis (TZ | 天猪 <atian25@qq.com>)others
0c5269a
] - refactor: reduce same logic codes and add more log (#11) (fengmk2 <fengmk2@gmail.com>)others
c1d8460
] - refactor: use async function and support egg@2 (#10) (Yiyu He <dead_horse@qq.com>)FAQs
file watcher plugin for egg
We found that egg-watcher demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 7 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.