nope-js-browser
Version:
NoPE Runtime for the Browser. For nodejs please use nope-js-node
44 lines (43 loc) • 1.44 kB
JavaScript
/**
* @author Martin Karkowski
* @email m.karkowski@zema.de
* @desc [description]
*/
import { enableTimeSyncing, generateDefineMaster, generatePingServices, waitForDispatcher, } from "./connectivy";
import { enablingSyncingData } from "./data";
export { generateDefineMaster, generatePingServices, enableTimeSyncing as generateSyncServices, enablingSyncingData, waitForDispatcher, };
/**
* Helper to define simpler names for the Services
*/
export const SERVICES_NAME = {
defineMaster: generateDefineMaster,
pingService: generatePingServices,
timeSyncingService: enableTimeSyncing,
syncingDataService: enablingSyncingData,
};
/**
* Helper, which will enable all BaseServices
*
* @author M.Karkowski
* @export
* @param {INopeDispatcher} dispatcher The Dispatcher to use.
* @param {{
* services?: Array<keyof typeof SERVICES_NAME>;
* }} [opts]
* @return The provided Functions.
*/
export async function addAllBaseServices(dispatcher, opts = {}) {
await dispatcher.ready.waitFor();
let services = {};
if (opts.services) {
for (const name of opts.services) {
services = Object.assign(services, await SERVICES_NAME[name](dispatcher));
}
}
else {
for (const name in SERVICES_NAME) {
services = Object.assign(services, await SERVICES_NAME[name](dispatcher));
}
}
return services;
}