Invoker
This commit is contained in:
parent
ffe7882ad5
commit
5a6d350a8e
5
src/semantic-ui/index.js
Normal file
5
src/semantic-ui/index.js
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
// this would bundle all Semantic components
|
||||||
|
require("semantic-ui-less/semantic.less");
|
||||||
|
|
||||||
|
// this would bundle only our selected components through our local semantic.less file
|
||||||
|
// require("./semantic.less");
|
12
src/semantic-ui/semantic.less
Normal file
12
src/semantic-ui/semantic.less
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
/* We will be keeping the globals and 2 components: Button and Breadcrumbs */
|
||||||
|
|
||||||
|
|
||||||
|
/* Global */
|
||||||
|
& { @import "~semantic-ui-less/definitions/globals/reset"; }
|
||||||
|
& { @import "~semantic-ui-less/definitions/globals/site"; }
|
||||||
|
|
||||||
|
/* Elements */
|
||||||
|
& { @import "~semantic-ui-less/definitions/elements/button"; }
|
||||||
|
|
||||||
|
/* Collections */
|
||||||
|
& { @import "~semantic-ui-less/definitions/collections/breadcrumb"; }
|
6
src/semantic-ui/site/elements/button.variables
Normal file
6
src/semantic-ui/site/elements/button.variables
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
@backgroundColor: #aeaeae;
|
||||||
|
|
||||||
|
@primaryColor: #A05595;
|
||||||
|
@secondaryColor: #1C9BD5;
|
||||||
|
|
||||||
|
@fontWeight: normal;
|
95
src/semantic-ui/theme.config
Normal file
95
src/semantic-ui/theme.config
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
/*
|
||||||
|
|
||||||
|
████████╗██╗ ██╗███████╗███╗ ███╗███████╗███████╗
|
||||||
|
╚══██╔══╝██║ ██║██╔════╝████╗ ████║██╔════╝██╔════╝
|
||||||
|
██║ ███████║█████╗ ██╔████╔██║█████╗ ███████╗
|
||||||
|
██║ ██╔══██║██╔══╝ ██║╚██╔╝██║██╔══╝ ╚════██║
|
||||||
|
██║ ██║ ██║███████╗██║ ╚═╝ ██║███████╗███████║
|
||||||
|
╚═╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*******************************
|
||||||
|
Theme Selection
|
||||||
|
*******************************/
|
||||||
|
|
||||||
|
/* To override a theme for an individual element
|
||||||
|
specify theme name below
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Global */
|
||||||
|
@site : 'default';
|
||||||
|
@reset : 'default';
|
||||||
|
|
||||||
|
/* Elements */
|
||||||
|
@button : 'default';
|
||||||
|
@container : 'default';
|
||||||
|
@divider : 'default';
|
||||||
|
@flag : 'default';
|
||||||
|
@header : 'default';
|
||||||
|
@icon : 'default';
|
||||||
|
@image : 'default';
|
||||||
|
@input : 'default';
|
||||||
|
@label : 'default';
|
||||||
|
@list : 'default';
|
||||||
|
@loader : 'default';
|
||||||
|
@rail : 'default';
|
||||||
|
@reveal : 'default';
|
||||||
|
@segment : 'default';
|
||||||
|
@step : 'default';
|
||||||
|
|
||||||
|
/* Collections */
|
||||||
|
@breadcrumb : 'default';
|
||||||
|
@form : 'default';
|
||||||
|
@grid : 'default';
|
||||||
|
@menu : 'default';
|
||||||
|
@message : 'default';
|
||||||
|
@table : 'default';
|
||||||
|
|
||||||
|
/* Modules */
|
||||||
|
@accordion : 'default';
|
||||||
|
@checkbox : 'default';
|
||||||
|
@dimmer : 'default';
|
||||||
|
@dropdown : 'default';
|
||||||
|
@embed : 'default';
|
||||||
|
@modal : 'default';
|
||||||
|
@nag : 'default';
|
||||||
|
@popup : 'default';
|
||||||
|
@progress : 'default';
|
||||||
|
@rating : 'default';
|
||||||
|
@search : 'default';
|
||||||
|
@shape : 'default';
|
||||||
|
@sidebar : 'default';
|
||||||
|
@sticky : 'default';
|
||||||
|
@tab : 'default';
|
||||||
|
@transition : 'default';
|
||||||
|
|
||||||
|
/* Views */
|
||||||
|
@ad : 'default';
|
||||||
|
@card : 'default';
|
||||||
|
@comment : 'default';
|
||||||
|
@feed : 'default';
|
||||||
|
@item : 'default';
|
||||||
|
@statistic : 'default';
|
||||||
|
|
||||||
|
/*******************************
|
||||||
|
Folders
|
||||||
|
*******************************/
|
||||||
|
|
||||||
|
/* Path to theme packages */
|
||||||
|
@themesFolder : 'themes';
|
||||||
|
|
||||||
|
/* Path to site override folder */
|
||||||
|
@siteFolder : "./site";
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************
|
||||||
|
Import Theme
|
||||||
|
*******************************/
|
||||||
|
|
||||||
|
@import "~semantic-ui-less/theme.less";
|
||||||
|
/*
|
||||||
|
@fontPath : "../../../themes/@{theme}/assets/fonts";
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* End Config */
|
|
@ -1,6 +1,8 @@
|
||||||
import { ReducersMapObject } from 'redux';
|
import { ReducersMapObject } from 'redux';
|
||||||
import SagaWatcher from '@overflow/commons/redux/saga/SagaWatcher';
|
import SagaWatcher from '@overflow/commons/redux/saga/SagaWatcher';
|
||||||
|
|
||||||
|
import { Service as APIService } from '@overflow/commons/api/service';
|
||||||
|
|
||||||
import signInReducer from '@overflow/member/redux/reducer/signIn';
|
import signInReducer from '@overflow/member/redux/reducer/signIn';
|
||||||
import signUpReducer from '@overflow/member/redux/reducer/signUp';
|
import signUpReducer from '@overflow/member/redux/reducer/signUp';
|
||||||
import modifyMemberReducer from '@overflow/member/redux/reducer/modify';
|
import modifyMemberReducer from '@overflow/member/redux/reducer/modify';
|
||||||
|
@ -57,6 +59,8 @@ import AuthCrawlerRegistReducer from '@overflow/auth/redux/reducer/regist';
|
||||||
import AsyncRequest from '@overflow/app/redux/saga/AsyncRequest';
|
import AsyncRequest from '@overflow/app/redux/saga/AsyncRequest';
|
||||||
import AsyncRestRequest from '@overflow/app/redux/saga/AsyncRestRequest';
|
import AsyncRestRequest from '@overflow/app/redux/saga/AsyncRestRequest';
|
||||||
|
|
||||||
|
import DiscoveryService from '@overflow/discovery/api/service/DiscoveryService';
|
||||||
|
|
||||||
// Container Configuration
|
// Container Configuration
|
||||||
export interface ContainerConfig {
|
export interface ContainerConfig {
|
||||||
placeholderID: string;
|
placeholderID: string;
|
||||||
|
@ -70,7 +74,7 @@ export interface RPCConfig {
|
||||||
url: string;
|
url: string;
|
||||||
}
|
}
|
||||||
const rpcConfig: RPCConfig = {
|
const rpcConfig: RPCConfig = {
|
||||||
url: 'ws://192.168.1.209:19090/web',
|
url: 'ws://192.168.1.101:19090/web',
|
||||||
};
|
};
|
||||||
|
|
||||||
// REST Server Configuration
|
// REST Server Configuration
|
||||||
|
@ -143,6 +147,9 @@ const reduxConfig: ReduxConfig = {
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const serviceConfig: Map<string, APIService> = new Map([
|
||||||
|
['DiscoveryService', DiscoveryService],
|
||||||
|
]);
|
||||||
|
|
||||||
// Configuration
|
// Configuration
|
||||||
export interface Config {
|
export interface Config {
|
||||||
|
@ -150,6 +157,7 @@ export interface Config {
|
||||||
rpc: RPCConfig;
|
rpc: RPCConfig;
|
||||||
rest: RestConfig;
|
rest: RestConfig;
|
||||||
redux: ReduxConfig;
|
redux: ReduxConfig;
|
||||||
|
service: Map<string, APIService>;
|
||||||
}
|
}
|
||||||
|
|
||||||
const config: Config = {
|
const config: Config = {
|
||||||
|
@ -157,6 +165,7 @@ const config: Config = {
|
||||||
rpc: rpcConfig,
|
rpc: rpcConfig,
|
||||||
rest: restConfig,
|
rest: restConfig,
|
||||||
redux: reduxConfig,
|
redux: reduxConfig,
|
||||||
|
service: serviceConfig,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default config;
|
export default config;
|
||||||
|
|
|
@ -47,6 +47,8 @@ import WebSocketRPC from '@overflow/commons/websocket/WebSocketRPC';
|
||||||
import ReducerContext from '@overflow/commons/redux/ReducerContext';
|
import ReducerContext from '@overflow/commons/redux/ReducerContext';
|
||||||
import SagaWatcher from '@overflow/commons/redux/saga/SagaWatcher';
|
import SagaWatcher from '@overflow/commons/redux/saga/SagaWatcher';
|
||||||
|
|
||||||
|
import ServiceInvoker from '@overflow/commons/invoke/ServiceInvoker';
|
||||||
|
|
||||||
import appConfig, { Config, ReduxState } from './config';
|
import appConfig, { Config, ReduxState } from './config';
|
||||||
|
|
||||||
|
|
||||||
|
@ -105,6 +107,7 @@ class OFApplication {
|
||||||
|
|
||||||
private initRpcClient(): Promise<WebSocketRPC> {
|
private initRpcClient(): Promise<WebSocketRPC> {
|
||||||
const rpcClient = new Promise<WebSocketRPC>((resolve, reject) => {
|
const rpcClient = new Promise<WebSocketRPC>((resolve, reject) => {
|
||||||
|
let serviceInvoker = new ServiceInvoker(this.config.service);
|
||||||
let client = new WebSocketRPC(this.config.rpc.url);
|
let client = new WebSocketRPC(this.config.rpc.url);
|
||||||
client.initialize()
|
client.initialize()
|
||||||
.then(() => {
|
.then(() => {
|
||||||
|
|
5
src/ts/@overflow/commons/api/service/Service.ts
Normal file
5
src/ts/@overflow/commons/api/service/Service.ts
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
export abstract class Service {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Service;
|
1
src/ts/@overflow/commons/api/service/index.ts
Normal file
1
src/ts/@overflow/commons/api/service/index.ts
Normal file
|
@ -0,0 +1 @@
|
||||||
|
export * from './Service';
|
|
@ -1,13 +1,24 @@
|
||||||
|
import {Service} from '@overflow/commons/api/service';
|
||||||
|
|
||||||
export class ServiceInvoker {
|
export class ServiceInvoker {
|
||||||
|
private config: Map<string, Service>;
|
||||||
|
private instanceMap: Map<string, Object>;
|
||||||
|
|
||||||
private configMap: Map<string, Object>;
|
public constructor(config: Map<string, Service>) {
|
||||||
|
this.config = config;
|
||||||
|
this.instanceMap = new Map();
|
||||||
|
|
||||||
public constructor() {
|
this.initialize();
|
||||||
this.configMap = new Map();
|
}
|
||||||
|
|
||||||
|
private initialize(): void {
|
||||||
|
this.config.forEach((value, key) => {
|
||||||
|
this.instanceMap.set(key, Object.create(value));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public invoke(className: string, methodName: string, params?: any): void {
|
public invoke(className: string, methodName: string, params?: any): void {
|
||||||
let classObj: Object = this.configMap.get(className);
|
let classObj: Object = this.instanceMap.get(className);
|
||||||
if (classObj === null || classObj === undefined) {
|
if (classObj === null || classObj === undefined) {
|
||||||
console.log('Error: Cannot find the class. [' + className + ']');
|
console.log('Error: Cannot find the class. [' + className + ']');
|
||||||
return;
|
return;
|
||||||
|
@ -21,3 +32,4 @@ export class ServiceInvoker {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export default ServiceInvoker;
|
||||||
|
|
|
@ -44,13 +44,16 @@ export default class WebSocketRPC {
|
||||||
|
|
||||||
private requestQueue: Map<ID_TYPE, RequestQueue>;
|
private requestQueue: Map<ID_TYPE, RequestQueue>;
|
||||||
|
|
||||||
|
private serviceInvoker: ServiceInvoker;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* name
|
* name
|
||||||
*/
|
*/
|
||||||
public constructor(url: string) {
|
public constructor(url: string, serviceInvoker: ServiceInvoker) {
|
||||||
this.isReady = false;
|
this.isReady = false;
|
||||||
this.connStatus = WebSocketStatus.NOT_CONNECT;
|
this.connStatus = WebSocketStatus.NOT_CONNECT;
|
||||||
this.url = url;
|
this.url = url;
|
||||||
|
this.serviceInvoker = serviceInvoker;
|
||||||
this.onResponseListeners = new Map();
|
this.onResponseListeners = new Map();
|
||||||
this.requestQueue = new Map();
|
this.requestQueue = new Map();
|
||||||
}
|
}
|
||||||
|
@ -195,8 +198,7 @@ export default class WebSocketRPC {
|
||||||
let className = methodArr[0];
|
let className = methodArr[0];
|
||||||
let methodName = methodArr[1];
|
let methodName = methodArr[1];
|
||||||
|
|
||||||
let serviceInvoker: ServiceInvoker = new ServiceInvoker();
|
this.serviceInvoker.invoke(className, methodName, notification.Params);
|
||||||
serviceInvoker.invoke(className, methodName, notification.Params);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fireOnDisconnect(): void {
|
private fireOnDisconnect(): void {
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
|
import { Service } from '@overflow/commons/api/service';
|
||||||
|
|
||||||
export class DiscoveryService {
|
|
||||||
|
export class DiscoveryService extends Service {
|
||||||
// tslint:disable-next-line:no-empty
|
// tslint:disable-next-line:no-empty
|
||||||
public constructor() {
|
public constructor() {
|
||||||
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public done(): void {
|
public done(): void {
|
||||||
|
@ -10,3 +13,5 @@ export class DiscoveryService {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export default DiscoveryService;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user