UNPKG

@tsdi/pack

Version:

@tsdi/pack is simple build tasks, base on AOP, Ioc container, via @tsdi. dev build pack activities.

73 lines (71 loc) 3.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WatchActivity = void 0; var tslib_1 = require("tslib"); var ioc_1 = require("@tsdi/ioc"); var components_1 = require("@tsdi/components"); var activities_1 = require("@tsdi/activities"); var rxjs_1 = require("rxjs"); var operators_1 = require("rxjs/operators"); var NodeActivity_1 = require("../NodeActivity"); var chokidar = require('chokidar'); /** * watch activity. * * @export * @class WatchActivity * @extends {BuildHandleActivity} */ var WatchActivity = /** @class */ (function (_super) { tslib_1.__extends(WatchActivity, _super); function WatchActivity() { return _super !== null && _super.apply(this, arguments) || this; } WatchActivity.prototype.execute = function (ctx) { return tslib_1.__awaiter(this, void 0, void 0, function () { var watchSrc, options, watcher, defer; var _this = this; return tslib_1.__generator(this, function (_a) { watchSrc = this.watch; options = this.options; watcher = chokidar.watch(ctx.platform.normalizeSrc(watchSrc), Object.assign({ ignored: /[\/\\]\./, ignoreInitial: true, cwd: ctx.platform.getRootPath() }, options)); defer = ioc_1.PromiseUtil.defer(); rxjs_1.fromEventPattern(function (handler) { watcher.on('add', function (paths) { return handler(paths); }); watcher.on('change', function (paths) { return handler(paths); }); watcher.on('unlink', function (paths) { return handler(paths); }); watcher.on('unlinkDir', function (paths) { return handler(paths); }); }, function (handler) { watcher.close(); }) .pipe(operators_1.bufferTime(300), operators_1.filter(function (c) { return c.length > 0; })) .subscribe(function (chg) { ctx.getExector().runActivity(_this.body); }); defer.promise; return [2 /*return*/]; }); }); }; WatchActivityAnn = function () { return { "name": "WatchActivity", "params": { "execute": ["ctx"] } }; }; tslib_1.__decorate([ components_1.Input(), tslib_1.__metadata("design:type", Object) ], WatchActivity.prototype, "watch", void 0); tslib_1.__decorate([ components_1.Input('watchOptions'), tslib_1.__metadata("design:type", Object) ], WatchActivity.prototype, "options", void 0); tslib_1.__decorate([ components_1.Input({ bindingType: 'dynamic' }), tslib_1.__metadata("design:type", Object) ], WatchActivity.prototype, "body", void 0); WatchActivity = tslib_1.__decorate([ activities_1.Task('watch') ], WatchActivity); return WatchActivity; }(NodeActivity_1.NodeActivity)); exports.WatchActivity = WatchActivity; //# sourceMappingURL=../sourcemaps/tasks/WatchActivity.js.map