@cypress/core-desktop-gui
Version:
Desktop GUI for managing Cypress projects.
63 lines (46 loc) • 1.34 kB
text/coffeescript
.module "Entities", (Entities, App, Backbone, Marionette, $, _) ->
stringify = (err) ->
[err.name, err.message].join(": ")
class Entities.Project extends Entities.Model
defaults:
loading: false
initialize: ->
loaded: ->
isLoading: ->
!!
setName: ->
name:
getNameFromPath: ->
_(.split("/")).last()
setClientUrl: (url, display) ->
clientUrl: url
clientUrlDisplay: display
setError: (err) ->
if err.portInUse
"error", stringify(err)
reset: ->
props = {
error: null
portInUse: null
clientUrl: null
clientUrlDisplay: null
}
class Entities.ProjectsCollection extends Entities.Collection
model: Entities.Project
getProjectByPath: (path) ->
API =
getProjects: ->
projects = new Entities.ProjectsCollection
App.ipc("get:project:paths").then (paths) ->
projects.add _(paths).map (path) -> {path: path}
projects.trigger("fetched")
projects
App.reqres.setHandler "project:entities", ->
API.getProjects()