@dot-event/watchman
Version:
dot-event watchman operation
91 lines (77 loc) • 1.83 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _default;
var _argv = require("@dot-event/argv");
var _fs = _interopRequireDefault(require("@dot-event/fs"));
var _log = _interopRequireDefault(require("@dot-event/log"));
var _spawn = _interopRequireDefault(require("@dot-event/spawn"));
var _store = _interopRequireDefault(require("@dot-event/store"));
var _argv2 = require("./watchman/argv");
// Packages
// Helpers
// Composer
function _default(options) {
const {
events
} = options;
if (events.ops.has("watchman")) {
return options;
}
(0, _fs.default)({
events
});
(0, _log.default)({
events
});
(0, _spawn.default)({
events
});
(0, _store.default)({
events
});
events.withOptions({
cwd: process.cwd()
}).onAny({
watchman: _argv.argvRelay,
watchmanCreate: watchman,
watchmanRemove: watchman.bind({
remove: true
}),
watchmanSetupOnce: _argv2.argv
});
return options;
}
async function watchman(options) {
const {
events,
props
} = options;
const {
remove
} = this || {};
const {
projectPath,
operations
} = events.get(props);
const {
triggers
} = operations.watchman;
for (const trigger of triggers) {
const payload = ["trigger", projectPath, trigger];
if (remove) {
await events.spawn([...props, "removeWatchman"], {
args: ["trigger-del", projectPath, trigger.name],
command: "watchman"
});
} else {
await events.spawn([...props, "createWatchman"], {
args: ["-c", `watchman -j <<-EOT\n${JSON.stringify(payload)}\nEOT`],
command: "sh"
});
}
}
}
//# sourceMappingURL=watchman.js.map