dbm
Version:
68 lines (53 loc) • 2.58 kB
JavaScript
import Dbm from "../../index.js";
export {default as WebSocketConnection} from "./WebSocketConnection.js";
export {default as WebSocketRequest} from "./WebSocketRequest.js";
export {default as GraphApi} from "./GraphApi.js";
export {default as ApiConnection} from "./ApiConnection.js";
export {default as ApiRequest} from "./ApiRequest.js";
export {default as CachedRequests} from "./CachedRequests.js";
export * as decode from "./decode/index.js";
export * as admin from "./admin/index.js";
export const setup = function(aWsPath, aApiPath) {
let webSocketConnection = new Dbm.graphapi.webclient.WebSocketConnection();
webSocketConnection.setup(aWsPath);
let apiConnection = new Dbm.graphapi.webclient.ApiConnection();
apiConnection.setup(aApiPath);
let graphApi = new Dbm.graphapi.webclient.GraphApi();
graphApi.setWebsocketConnection(webSocketConnection);
graphApi.setApiConnection(apiConnection);
graphApi.item.register("graphApi");
let cachedRequests = new Dbm.graphapi.webclient.CachedRequests();
cachedRequests.item.register("cachedGraphApi");
}
export const requireObjectEncoding = function(aObject, aEncoding, aCommand) {
console.log("requireObjectEncoding");
if(aObject["has/encoding/" + aEncoding]) {
console.log(aObject, aEncoding);
if(aCommand) {
aCommand.perform(null, null);
}
}
else {
let graphApi = Dbm.getRepositoryItem("cachedGraphApi").controller;
let request = graphApi.requestItem(aObject.id, [aEncoding]);
if(aCommand) {
Dbm.flow.runWhenMatched(request.properties.status, Dbm.loading.LoadingStatus.LOADED, aCommand);
}
}
}
export const loadData = function(aType, aData, aCallback = null) {
let request = Dbm.getGraphApi().requestData(aType, aData);
if(aCallback) {
let callbackCommand = Dbm.commands.callFunction(aCallback, [Dbm.core.source.staticObject(request, "data")]);
Dbm.flow.runWhenMatched(request.properties.status, Dbm.loading.LoadingStatus.LOADED, callbackCommand);
}
return request.properties.data;
}
export const performAction = function(aType, aData, aCallback = null) {
let request = Dbm.getGraphApi().performAction(aType, aData);
if(aCallback) {
let callbackCommand = Dbm.commands.callFunction(aCallback, [Dbm.core.source.staticObject(request, "data")]);
Dbm.flow.runWhenMatched(request.properties.status, Dbm.loading.LoadingStatus.LOADED, callbackCommand);
}
return request.properties.data;
}