@akala/core
Version:
73 lines • 2.34 kB
JavaScript
;
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("./base"));
require("./rest");
require("./json-rpc-ws");
const helpers_1 = require("../helpers");
const each_1 = require("../each");
var api;
(function (api_1) {
function jsonrpcws(api) {
return new (helpers_1.module('$api').resolve('jsonrpcws'))(api);
}
api_1.jsonrpcws = jsonrpcws;
function rest(api) {
return new (helpers_1.module('$api').resolve('rest'))(api);
}
api_1.rest = rest;
})(api = exports.api || (exports.api = {}));
function server(api, config) {
return function (impl) {
var implInstance = new impl();
buildServer(api, config, implInstance);
return implInstance;
};
}
exports.server = server;
function buildServer(api, config, implInstance) {
each_1.each(config, function (cfg, key) {
if (cfg === false)
return;
var builderCtor = helpers_1.module('$api').resolve(key);
if (builderCtor) {
var builder = new builderCtor(api);
if (builder.createServer)
builder.createServer(cfg, implInstance);
}
});
}
exports.buildServer = buildServer;
function client(api, config) {
return function (impl) {
var implInstance = new impl();
buildClient(api, config, implInstance);
return implInstance;
};
}
exports.client = client;
function buildClient(api, config, implInstance) {
each_1.each(config, function (cfg, key) {
if (cfg === false)
return;
createClient(key, api, cfg, implInstance);
});
}
exports.buildClient = buildClient;
function createServerProxy(builderName, api, client) {
var builder = helpers_1.module('$api').resolve(builderName);
if (!builder)
return null;
return new builder(api).createServerProxy(client);
}
exports.createServerProxy = createServerProxy;
function createClient(builderName, api, client, clientImplementation) {
var builder = helpers_1.module('$api').resolve(builderName);
if (!builder)
return null;
return new builder(api).createClient(client, clientImplementation);
}
exports.createClient = createClient;
//# sourceMappingURL=index.js.map