mirror of
https://github.com/esiur/esiur-js.git
synced 2026-04-03 21:48:21 +00:00
1.6.0
This commit is contained in:
@@ -28,10 +28,10 @@
|
||||
|
||||
export default class CustomResourceEvent
|
||||
{
|
||||
constructor(issuer, receivers, params)
|
||||
constructor(issuer, receivers, args)
|
||||
{
|
||||
this.issuer = issuer;
|
||||
this.receivers = receivers;
|
||||
this.params = params;
|
||||
this.args = args;
|
||||
}
|
||||
}
|
||||
@@ -234,7 +234,7 @@ export default class Instance extends IEventHandler
|
||||
return function(args)
|
||||
{
|
||||
if (args instanceof CustomResourceEvent)
|
||||
self._emitResourceEvent(args.issuer, args.receivers, name, args.params);
|
||||
self._emitResourceEvent(args.issuer, args.receivers, name, args.args);
|
||||
else
|
||||
self._emitResourceEvent(null, null, name, args);
|
||||
};
|
||||
|
||||
@@ -46,7 +46,7 @@ export default class EventTemplate extends MemberTemplate
|
||||
var name = super.compose();
|
||||
if (this.expansion != null) {
|
||||
var exp = DC.stringToBytes(this.expansion);
|
||||
return rt.addUint8(0x50)
|
||||
return rt.addUint8(this.listenable ? 0x58 : 0x50)
|
||||
.addUint8(name.length)
|
||||
.addUint8Array(name)
|
||||
.addUint32(exp.length)
|
||||
@@ -54,7 +54,7 @@ export default class EventTemplate extends MemberTemplate
|
||||
.toArray();
|
||||
}
|
||||
else
|
||||
return rt.addUint8(0x40)
|
||||
return rt.addUint8(this.listenable ? 0x48 : 0x40)
|
||||
.addUint8(name.length)
|
||||
.addUint8Array(name)
|
||||
.toArray();
|
||||
|
||||
@@ -123,6 +123,7 @@ export default class ResourceTemplate {
|
||||
et.name = template.events[i].name;
|
||||
et.index = i;
|
||||
et.expansion = template.events[i].help;
|
||||
et.listenable = template.events[i].listenable;
|
||||
this.events.push(et);
|
||||
}
|
||||
|
||||
@@ -266,9 +267,11 @@ export default class ResourceTemplate {
|
||||
{
|
||||
var et = new EventTemplate();
|
||||
et.index = eventIndex++;
|
||||
var expansion = ((data.getUint8(offset++) & 0x10) == 0x10);
|
||||
var expansion = ((data.getUint8(offset) & 0x10) == 0x10);
|
||||
et.listenable = ((data.getUint8(offset++) & 0x8) == 0x8);
|
||||
var len = data.getUint8(offset++);
|
||||
et.name = data.getString(offset, len);
|
||||
|
||||
offset += len;
|
||||
|
||||
if (expansion) // expansion ?
|
||||
|
||||
@@ -58,22 +58,38 @@ export class WH extends IEventHandler
|
||||
this._urlRegex = /^(?:([^\s|:]*):\/\/([^\/]*)\/?)/;
|
||||
}
|
||||
|
||||
newInstance(type, properties)
|
||||
{
|
||||
var proxyType = ResourceProxy.getProxy(type);
|
||||
var res = new proxyType();
|
||||
if (properties != null)
|
||||
Object.assign(res, properties);
|
||||
return type;
|
||||
}
|
||||
|
||||
new(type, name, store = null, parent = null, manager = null, attributes = null, properties = null)
|
||||
{
|
||||
var proxyType = ResourceProxy.getProxy(type);
|
||||
|
||||
var rt = new AsyncReply();
|
||||
|
||||
var res = new proxyType();
|
||||
|
||||
if (properties != null)
|
||||
Object.assign(res, properties);
|
||||
|
||||
this.put(res, name, store, parent, null, 0, manager, attributes)
|
||||
.then((ok)=>rt.trigger(res))
|
||||
.error((ex)=>rt.triggerError(ex));
|
||||
if (store != null || parent != null || res instanceof IStore)
|
||||
{
|
||||
var rt = new AsyncReply();
|
||||
|
||||
return rt;
|
||||
this.put(res, name, store, parent, null, 0, manager, attributes)
|
||||
.then((ok)=>rt.trigger(res))
|
||||
.error((ex)=>rt.triggerError(ex));
|
||||
|
||||
return rt;
|
||||
}
|
||||
else
|
||||
{
|
||||
return new AsyncReply(res);
|
||||
}
|
||||
}
|
||||
|
||||
getById(id)
|
||||
@@ -103,7 +119,6 @@ export class WH extends IEventHandler
|
||||
else
|
||||
rt.triggerError(store);
|
||||
}).error(ex=>{
|
||||
Warehouse.remove(resource);
|
||||
rt.triggerError(ex);
|
||||
});
|
||||
}
|
||||
@@ -176,7 +191,7 @@ export class WH extends IEventHandler
|
||||
}
|
||||
|
||||
put(resource, name, store, parent, customTemplate = null, age = 0, manager = null, attributes = null){
|
||||
|
||||
|
||||
var rt = new AsyncReply();
|
||||
|
||||
resource.instance = new Instance(this.resourceCounter++, name, resource, store, customTemplate, age);
|
||||
@@ -202,6 +217,7 @@ export class WH extends IEventHandler
|
||||
let self = this;
|
||||
|
||||
const initResource = ()=>{
|
||||
|
||||
self.resources.add(resource.instance.id, resource);
|
||||
|
||||
if (self.warehouseIsOpen)
|
||||
@@ -210,16 +226,22 @@ export class WH extends IEventHandler
|
||||
if (resource instanceof IStore)
|
||||
resource.trigger(ResourceTrigger.Open).then(y=>{ rt.trigger(true);
|
||||
self._emit("connected", resource)
|
||||
}).error(ex => rt.triggerError(ex));
|
||||
}).error(ex => {
|
||||
Warehouse.remove(resource);
|
||||
rt.triggerError(ex)
|
||||
});
|
||||
else
|
||||
rt.trigger(true);
|
||||
|
||||
}).error(ex=>rt.triggerError(ex));
|
||||
}).error(ex => {
|
||||
Warehouse.remove(resource);
|
||||
rt.triggerError(ex)
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
if (resource instanceof IStore)
|
||||
self._emit("connected", resource);
|
||||
if (resource instanceof IStore)
|
||||
self._emit("connected", resource);
|
||||
rt.trigger(true);
|
||||
}
|
||||
}
|
||||
@@ -232,7 +254,11 @@ export class WH extends IEventHandler
|
||||
else
|
||||
store.put(resource).then(ok=>{
|
||||
initResource();
|
||||
}).error(ex=>rt.triggerError(ex));
|
||||
}).error(ex=> {
|
||||
// failed to put
|
||||
Warehouse.remove(resource);
|
||||
rt.triggerError(ex);
|
||||
});
|
||||
|
||||
return rt;
|
||||
}
|
||||
@@ -268,8 +294,7 @@ export class WH extends IEventHandler
|
||||
|
||||
getTemplateByType(type)
|
||||
{
|
||||
//debugger;
|
||||
|
||||
|
||||
let className = type.prototype.constructor.name;
|
||||
|
||||
if (className.startsWith("E_"))
|
||||
|
||||
Reference in New Issue
Block a user