Some major changes:

- Enhance the error report system
- The SDK now allows to create sub-directory when building and releasing
This commit is contained in:
Xuan Sang LE
2020-05-22 18:31:06 +02:00
parent 0abb49dadc
commit 9f184fc19b
17 changed files with 253 additions and 180 deletions

View File

@ -63,7 +63,7 @@ class BaseApplication extends this.OS.GUI.BaseModel
resolve()
.catch (e) =>
@_api.loaded q, @name, "FAIL"
reject e
reject __e e
bindKey: (k, f) ->
arr = k.split "-"

View File

@ -415,7 +415,7 @@ class FileDialog extends BasicDialog
.then (d) ->
return reject d if d.error
resolve d.result
.catch (e) -> reject e
.catch (e) -> reject __e e
setroot = (path) =>
path.asFileHandle().read().then (d) =>
if(d.error)

View File

@ -163,6 +163,13 @@ Date.prototype.toString = () ->
Date.prototype.timestamp = () ->
return @getTime() / 1000 | 0
# chaning error
Ant.__e = (e) ->
reason = new Error(e.toString())
reason.stack += "\nCaused By:\n" + e.stack
return reason
Ant.OS.API =
# the handle object could be a any remote or local handle to
# fetch user data, used by the API to make requests
@ -196,7 +203,7 @@ Ant.OS.API =
.fail (j, s, e) ->
Ant.OS.API.loaded q, p, "FAIL"
if e
reject e
reject __e e
else
reject(Ant.OS.API.throwe s)
@ -242,7 +249,7 @@ Ant.OS.API =
.fail (j, s, e) ->
Ant.OS.API.loaded q, p, "FAIL"
if e
reject e
reject __e e
else
reject(Ant.OS.API.throwe s)
o.remove()
@ -281,7 +288,7 @@ Ant.OS.API =
.fail (j, s, e) ->
Ant.OS.API.loaded q, p, "FAIL"
if e
reject e
reject __e e
else
reject(Ant.OS.API.throwe s)
@ -313,7 +320,7 @@ Ant.OS.API =
console.log "Loaded :", l
Ant.OS.announcer.trigger "sharedlibraryloaded", l
resolve undefined
.catch (e) -> reject e
.catch (e) -> reject __e e
when "js"
Ant.OS.API.script libfp.getlink()
.then (data) ->
@ -322,7 +329,7 @@ Ant.OS.API =
Ant.OS.announcer.trigger "sharedlibraryloaded", l
resolve(data)
.catch (e) ->
reject e
reject __e e
else
reject Ant.OS.API.throwe __("Invalid library: {0}", l)
else
@ -336,10 +343,10 @@ Ant.OS.API =
Ant.OS.announcer.observable.one "sharedlibraryloaded", (l) ->
libs.splice 0, 1
Ant.OS.API.require libs
.catch (e) -> reject e
.catch (e) -> reject __e e
.then (r) -> resolve(r)
Ant.OS.API.requires libs[0]
.catch (e) -> reject e
.catch (e) -> reject __e e
packages:
fetch: () ->
@ -381,7 +388,7 @@ Ant.OS.API =
Ant.OS.announcer.trigger "systemlocalechange", name
resolve d
.catch (e) ->
reject e
reject __e e
throwe: (n) ->
err = undefined
@ -405,7 +412,7 @@ Ant.OS.API =
return resolve $el.val() unless navigator.clipboard
navigator.clipboard.readText().then (d) ->
resolve d
.catch (e) -> reject e
.catch (e) -> reject __e e
# utilities functioncs

View File

@ -64,7 +64,7 @@ Ant.OS or=
.then () ->
resolve f()
.catch (e) ->
reject e
reject __e e
else
resolve f()
appByPid: (pid) ->

View File

@ -60,12 +60,12 @@ Ant.OS.GUI =
.then (d) ->
Ant.OS.GUI.pushServices srvs
.then () -> resolve()
.catch (e) -> reject e
.catch (e) -> reject __e e
.catch (e) ->
Ant.OS.announcer.osfail __("Unable to load: {0}", srv), e
Ant.OS.GUI.pushServices srvs
.then () -> resolve()
.catch (e) -> reject e
.catch (e) -> reject __e e
openDialog: (d, data) ->
new Promise (resolve, reject) ->
@ -91,7 +91,7 @@ Ant.OS.GUI =
if Ant.OS.APP[srv]
Ant.OS.PM.createProcess srv, Ant.OS.APP[srv]
.then (d) -> resolve d
.catch (e) -> reject e
.catch (e) -> reject __e e
else
Ant.OS.GUI.loadApp app
.then (a) ->
@ -99,8 +99,8 @@ Ant.OS.GUI =
return reject Ant.OS.API.throwe __("Service not found: {0}", ph)
Ant.OS.PM.createProcess srv, Ant.OS.APP[srv]
.then (d) -> resolve d
.catch (e) -> reject e
.catch (e) -> reject e
.catch (e) -> reject __e e
.catch (e) -> reject __e e
appsByMime: (mime) ->
metas = ( v for k, v of Ant.OS.setting.system.packages when v and v.app )
@ -173,9 +173,9 @@ Ant.OS.GUI =
Ant.OS.APP[app].style = el[0] if Ant.OS.APP[app]
resolve app
.catch (e) -> resolve app
.catch (e) -> reject e
.catch (e) -> reject __e e
#ok app
.catch (e) -> reject e
.catch (e) -> reject __e e
launch: (app, args) ->
if not Ant.OS.APP[app]
# first load it
@ -358,8 +358,9 @@ Ant.OS.GUI =
name = file.basename
file.parent().asFileHandle().mk(name).then (r) ->
ex = Ant.OS.API.throwe "OS.VFS"
if r.error then Ant.OS.announcer.osfail d.error, ex, d.error else fn()
.catch (e) ->
Ant.OS.announcer.osfail e.toString(), e
desktop[0].ready = (e) ->
e.observable = Ant.OS.announcer
window.onresize = () ->

View File

@ -79,7 +79,7 @@ Ant.OS.API.handle =
socket = new WebSocket proto + path
resolve(socket)
catch e
reject e
reject __e e
else
path = "#{Ant.OS.API.REST}/system/apigateway?ws=0"
Ant.OS.API.post path, d

View File

@ -185,7 +185,7 @@ class FileViewTag extends Ant.OS.GUI.BaseTag
return resolve undefined unless v.get("data").path
@get("fetch")(v.get("data").path)
.then (d) => resolve @getTreeData(d.sort @sortByType)
.catch (e) -> reject e
.catch (e) -> reject __e e
@refs.gridview.set "header", @header
@refs.treeview.set "dragndrop", true
@refs.listview.set "dragndrop", true

View File

@ -108,11 +108,11 @@ class BaseFileHandle
return resolve(@info) if @ready
@meta()
.then (d) =>
return reject Ant.OS.API.throwe d.error if d.errors
return reject Ant.OS.API.throwe __("{0}: {1}", d.error, @path) if d.errors
@info = d.result
@ready = true
resolve(d.result)
.catch (e) -> reject e
.catch (e) -> reject __e e
read: (t) ->
new Promise (resolve, reject) =>
@ -122,8 +122,8 @@ class BaseFileHandle
.then (d) ->
# Ant.OS.announcer.ostrigger "VFS", { m: "read", file: me }
resolve d
.catch (e) -> reject e
.catch (e) -> reject e
.catch (e) -> reject __e e
.catch (e) -> reject __e e
write: (t) ->
new Promise (resolve, reject) =>
@ -131,7 +131,7 @@ class BaseFileHandle
.then (r) =>
Ant.OS.announcer.ostrigger "VFS", { m: "write", file: @ }
resolve r
.catch (e) -> reject e
.catch (e) -> reject __e e
mk: (d) ->
new Promise (resolve, reject) =>
@ -141,8 +141,8 @@ class BaseFileHandle
.then (d) =>
Ant.OS.announcer.ostrigger "VFS", { m: "mk", file: @ }
resolve d
.catch (e) -> reject e
.catch (e) -> reject e
.catch (e) -> reject __e e
.catch (e) -> reject __e e
remove: () ->
new Promise (resolve, reject) =>
@ -152,8 +152,8 @@ class BaseFileHandle
.then (d) =>
Ant.OS.announcer.ostrigger "VFS", { m: "remove", file: @ }
resolve d
.catch (e) -> reject e
.catch (e) -> reject e
.catch (e) -> reject __e e
.catch (e) -> reject __e e
upload: () ->
new Promise (resolve, reject) =>
@ -163,8 +163,8 @@ class BaseFileHandle
.then (d) =>
Ant.OS.announcer.ostrigger "VFS", { m: "upload", file: @ }
resolve d
.catch (e) -> reject e
.catch (e) -> reject e
.catch (e) -> reject __e e
.catch (e) -> reject __e e
publish: () ->
new Promise (resolve, reject) =>
@ -174,8 +174,8 @@ class BaseFileHandle
.then (d) =>
Ant.OS.announcer.ostrigger "VFS", { m: "publish", file: @ }
resolve d
.catch (e) -> reject e
.catch (e) -> reject e
.catch (e) -> reject __e e
.catch (e) -> reject __e e
download: () ->
new Promise (resolve, reject) =>
@ -185,8 +185,8 @@ class BaseFileHandle
.then (d) =>
Ant.OS.announcer.ostrigger "VFS", { m: "download", file: @ }
resolve d
.catch (e) -> reject e
.catch (e) -> reject e
.catch (e) -> reject __e e
.catch (e) -> reject __e e
move: (d) ->
new Promise (resolve, reject) =>
@ -196,8 +196,8 @@ class BaseFileHandle
.then (data) =>
Ant.OS.announcer.ostrigger "VFS", { m: "move", file: d.asFileHandle() }
resolve data
.catch (e) -> reject e
.catch (e) -> reject e
.catch (e) -> reject __e e
.catch (e) -> reject __e e
execute: () ->
new Promise (resolve, reject) =>
@ -207,8 +207,8 @@ class BaseFileHandle
.then (d) =>
Ant.OS.announcer.ostrigger "VFS", { m: "execute", file: @ }
resolve d
.catch (e) -> reject e
.catch (e) -> reject e
.catch (e) -> reject __e e
.catch (e) -> reject __e e
getlink: () -> @path
@ -238,10 +238,10 @@ class RemoteFileHandle extends Ant.OS.API.VFS.BaseFileHandle
meta: () ->
new Promise (resolve, reject) =>
Ant.OS.API.handle.fileinfo @path
.then (d) ->
return reject Ant.OS.API.throwe d.error if d.error
.then (d) =>
return reject Ant.OS.API.throwe __("{0}: {1}", d.error, @path) if d.error
resolve d
.catch (e) -> reject e
.catch (e) -> reject __e e
getlink: () ->
@ -262,19 +262,21 @@ class RemoteFileHandle extends Ant.OS.API.VFS.BaseFileHandle
# t is base64 or undefined
new Promise (resolve, reject) =>
if t is "base64"
Ant.OS.API.handle.write(@path, @cache).then (d) ->
return reject Ant.OS.API.throwe d.error if d.error
Ant.OS.API.handle.write(@path, @cache).then (d) =>
return reject Ant.OS.API.throwe __("{0}: {1}", d.error, @path) if d.error
resolve d
.catch (e) -> reject e
.catch (e) -> reject __e e
else
@b64(t)
.then (r) =>
Ant.OS.API.handle.write @path, r
.then (result) ->
return reject Ant.OS.API.throwe result.error if result.error
.then (result) =>
if result.error
return reject Ant.OS.API.throwe __(
"{0}: {1}", result.error, @path)
resolve result
.catch (e) -> reject e
.catch (e) -> reject e
.catch (e) -> reject __e e
.catch (e) -> reject __e e
_mk: (d) ->
new Promise (resolve, reject) =>
@ -284,27 +286,27 @@ class RemoteFileHandle extends Ant.OS.API.VFS.BaseFileHandle
if @info.type is "file"
return reject Ant.OS.API.throwe __("{0} is not a directory", @path)
Ant.OS.API.handle.mkdir "#{@path}/#{d}"
.then (d) ->
return reject Ant.OS.API.throwe d.error if d.error
.then (d) =>
return reject Ant.OS.API.throwe __("{0}: {1}", d.error, @path) if d.error
resolve d
.catch (e) -> reject e
.catch (e) -> reject __e e
_rm: () ->
new Promise (resolve, reject) =>
Ant.OS.API.handle.delete @path
.then (d) ->
return reject Ant.OS.API.throwe d.error if d.error
.then (d) =>
return reject Ant.OS.API.throwe __("{0}: {1}", d.error, @path) if d.error
resolve d
.catch (e) -> reject e
.catch (e) -> reject __e e
_mv: (d) ->
new Promise (resolve, reject) =>
Ant.OS.API.handle.move @path, d
.then (d) ->
return reject Ant.OS.API.throwe d.error if d.error
.then (d) =>
return reject Ant.OS.API.throwe __("{0}: {1}", d.error, @path) if d.error
resolve d
.catch (e) -> reject e
.catch (e) -> reject __e e
_up: () ->
@ -312,10 +314,10 @@ class RemoteFileHandle extends Ant.OS.API.VFS.BaseFileHandle
if @info.type isnt "dir"
return reject Ant.OS.API.throwe __("{0} is not a file", @path)
Ant.OS.API.handle.upload @path
.then (d) ->
return reject Ant.OS.API.throwe d.error if d.error
.then (d) =>
return reject Ant.OS.API.throwe __("{0}: {1}", d.error, @path) if d.error
resolve d
.catch (e) -> reject e
.catch (e) -> reject __e e
_down: () ->
new Promise (resolve, reject) =>
@ -327,15 +329,15 @@ class RemoteFileHandle extends Ant.OS.API.VFS.BaseFileHandle
Ant.OS.API.saveblob @basename, blob
resolve()
.catch (e) ->
reject e
reject __e e
_pub: () ->
new Promise (resolve, reject) =>
Ant.OS.API.handle.sharefile @path, true
.then (d) ->
return reject Ant.OS.API.throwe d.error if d.error
.then (d) =>
return reject Ant.OS.API.throwe __("{0}: {1}", d.error, @path) if d.error
resolve d
.catch (e) -> reject e
.catch (e) -> reject __e e
Ant.OS.API.VFS.register "^(home|desktop|os|Untitled)$", RemoteFileHandle
@ -415,18 +417,18 @@ class SharedFileHandle extends Ant.OS.API.VFS.BaseFileHandle
_wr: (d, t) ->
new Promise (resolve, reject) =>
Ant.OS.API.handle.write @path, d
.then (d) ->
return reject Ant.OS.API.throwe d.error if d.error
.then (d) =>
return reject Ant.OS.API.throwe __("{0}: {1}", d.error, @path) if d.error
resolve d
.catch (e) -> reject e
.catch (e) -> reject __e e
_rm: () ->
new Promise (resolve, reject) =>
Ant.OS.API.handle.sharefile @basename, false
.then (d) ->
return reject Ant.OS.API.throwe d.error if d.error
.then (d) =>
return reject Ant.OS.API.throwe __("{0}: {1}", d.error, @path) if d.error
resolve d
.catch (e) -> reject e
.catch (e) -> reject __e e
_down: () ->
new Promise (resolve, reject) =>
@ -437,7 +439,7 @@ class SharedFileHandle extends Ant.OS.API.VFS.BaseFileHandle
blob = new Blob [data], { type: "octet/stream" }
Ant.OS.API.saveblob @basename, blob
resolve()
.catch (e) -> reject e
.catch (e) -> reject __e e
_pub: () ->
return new Promise (resolve, reject) => resolve { result: @basename }