adajs
Version:
Integrated Web Framework
167 lines (165 loc) • 4.72 kB
JavaScript
let { BondViewGroup, StaticViewGroup, View, ViewConnector, ViewGroup } = require("./src/view");
let { DataSet, DataSetHelper, Service, TransactDataSet } = require("./src/dataset");
let factory = require("./src/util/factory");
let client = require("./src/hmr/client");
let { PROXYSTATE, VIEWTAG, ROOTELEMENTNAME } = require("./src/util/const");
let { Dispatcher } = require("./src/dispatcher");
let Passable = require("./src/passable");
let { view, root, action, handler, subscribe, compute, binder } = require("./src/annotation");
let {
clone,
encodeHTML,
excuteStyle,
extend,
hashCode,
isArray,
isEqual,
isFunction,
isObject,
isPlainObject,
isQueryString,
isString,
isBrowser,
randomid
} = require("./src/util/helper");
let BrowserContext = require("./src/context/browser");
let env = require("./src/env");
if (isBrowser()) {
let context = new BrowserContext();
env.develop = true;
context.window.Ada = {
modules: context.loader.moduleLoader,
init(initer) {
factory.init(context, initer);
},
boot: function (ops) {
ops.context = context;
factory.boot(ops);
},
unpack(info) {
context.loader.decompress(info);
},
installModule(name, module) {
context.loader.moduleLoader.set(name, module);
},
view(dom) {
let target = null;
if (!dom) {
target = context.document.getElementById(ROOTELEMENTNAME)[VIEWTAG];
} else {
target = dom[VIEWTAG];
}
return target;
},
viewTypeString(view) {
if (view instanceof BondViewGroup) {
return "BondViewGroup";
} else if (view instanceof StaticViewGroup) {
return "StaticViewGroup";
} else if (view instanceof ViewGroup) {
return "ViewGroup";
} else if (view instanceof View) {
return "View";
} else if (view instanceof ViewConnector) {
return "ViewConnector";
} else {
return "UNKNOW";
}
},
viewTree(dom) {
let next = (view) => {
console.group(`${this.viewTypeString(view)} [${view.getClassName()}]`);
console.log(view);
if (view.getChildren && view.getChildren().length > 0) {
console.group(`CHILDREN`);
view.getChildren().forEach(child => {
next(child);
});
console.groupEnd();
}
console.groupEnd();
};
next(this.view(dom));
return "";
},
findView(id) {
let result = null;
let next = (view) => {
if (view.getId() === id) {
result = view;
return true;
} else {
if (view.getChildren && view.getChildren().length > 0) {
return view.getChildren().some(child => {
return next(child);
});
} else {
return false;
}
}
};
next(this.view());
return result;
},
log(...paras) {
console.log(...paras.map(value => {
if (!!value && !!value[PROXYSTATE]) {
return value[PROXYSTATE]._data;
} else {
return value;
}
}));
return "";
},
client,
recover(info) {
factory.recover(context, info);
},
startLogger() {
context.logger.on = true;
return "Logger Started";
},
stopLogger() {
context.logger.on = false;
return "Logger Stopped";
}
};
client.client.start(context);
Dispatcher.request = context.request;
}
module.exports = {
View,
ViewGroup,
StaticViewGroup,
BondViewGroup,
Service,
ViewConnector,
DataSet,
TransactDataSet,
DataSetHelper,
Dispatcher,
Passable,
util: {
randomid,
hashCode,
isString,
isFunction,
isEqual,
isObject,
isPlainObject,
isArray,
isQueryString,
excuteStyle,
encodeHTML,
extend,
clone
},
view,
root,
action,
handler,
subscribe,
compute,
binder,
env
};