123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- "use strict";
- var utils = require("./utils");
- var fileUtils = require("./file-utils");
- var Rx = require("rx");
- var fromEvent = Rx.Observable.fromEvent;
- var fileHandler = require("./file-event-handler");
- module.exports = function (bs) {
- var events = {
- /**
- * File reloads
- * @param data
- */
- "file:reload": function (data) {
- bs.io.sockets.emit("file:reload", data);
- },
- /**
- * Browser Reloads
- */
- "browser:reload": function () {
- bs.io.sockets.emit("browser:reload");
- },
- /**
- * Browser Notify
- * @param data
- */
- "browser:notify": function (data) {
- bs.io.sockets.emit("browser:notify", data);
- },
- /**
- * Things that happened after the service is running
- * @param data
- */
- "service:running": function (data) {
- var mode = bs.options.get("mode");
- var open = bs.options.get("open");
- if (mode === "proxy" ||
- mode === "server" ||
- open === "ui" ||
- open === "ui-external") {
- utils.openBrowser(data.url, bs.options, bs);
- }
- // log about any file watching
- if (bs.watchers) {
- bs.events.emit("file:watching", bs.watchers);
- }
- },
- /**
- * Option setting
- * @param data
- */
- "options:set": function (data) {
- if (bs.io) {
- bs.io.sockets.emit("options:set", data);
- }
- },
- /**
- * Plugin configuration setting
- * @param data
- */
- "plugins:configure": function (data) {
- if (data.active) {
- bs.pluginManager.enablePlugin(data.name);
- }
- else {
- bs.pluginManager.disablePlugin(data.name);
- }
- bs.setOption("userPlugins", bs.getUserPlugins());
- },
- "plugins:opts": function (data) {
- if (bs.pluginManager.pluginOptions[data.name]) {
- bs.pluginManager.pluginOptions[data.name] = data.opts;
- bs.setOption("userPlugins", bs.getUserPlugins());
- }
- }
- };
- Object.keys(events).forEach(function (event) {
- bs.events.on(event, events[event]);
- });
- var reloader = fileHandler
- .applyReloadOperators(fromEvent(bs.events, "_browser:reload"), bs.options)
- .subscribe(function () {
- bs.events.emit("browser:reload");
- });
- var coreNamespacedWatchers = fromEvent(bs.events, "file:changed")
- .filter(function () {
- return bs.options.get("codeSync");
- })
- .filter(function (x) {
- return x.namespace === "core";
- });
- var handler = fileHandler
- .fileChanges(coreNamespacedWatchers, bs.options)
- .subscribe(function (x) {
- if (x.type === "reload") {
- bs.events.emit("browser:reload", x);
- }
- if (x.type === "inject") {
- x.files.forEach(function (data) {
- if (!bs.paused && data.namespace === "core") {
- bs.events.emit("file:reload", fileUtils.getFileInfo(data, bs.options));
- }
- });
- }
- });
- bs.registerCleanupTask(function () {
- handler.dispose();
- reloader.dispose();
- });
- };
- //# sourceMappingURL=internal-events.js.map
|