forked from phcode-dev/staging.phcode.dev
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathLiveDevServerManager.js
More file actions
1 lines (1 loc) · 1.21 KB
/
LiveDevServerManager.js
File metadata and controls
1 lines (1 loc) · 1.21 KB
1
define(function(require,exports,module){const ProjectManager=require("project/ProjectManager");let _serverProviders=[];function _providerSort(a,b){return b.priority-a.priority}function getServer(localPath){let provider,server,i,highestPriorityServer;for(i=0;i<_serverProviders.length;i++)if((provider=_serverProviders[i])._createdServer&&provider._createdServer.getProjectRoot()===ProjectManager.getProjectRoot().fullPath||(provider._createdServer=provider.create()),server=provider._createdServer,highestPriorityServer||(highestPriorityServer=server),server.canServe(localPath))return server;return highestPriorityServer}function registerServer(provider,priority){if(provider.create){var providerObj={};return providerObj.create=provider.create,providerObj.priority=priority||0,_serverProviders.push(providerObj),_serverProviders.sort(_providerSort),providerObj}console.error("Incompatible live development server provider")}function removeServer(provider){var i;for(i=0;i<_serverProviders.length;i++)provider===_serverProviders[i]&&_serverProviders.splice(i,1)}exports.getProvider=getServer,exports.registerProvider=registerServer,exports.getServer=getServer,exports.registerServer=registerServer,exports.removeServer=removeServer});