|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import { ServiceDefinition } from './make-client'; |
|
import { Server, UntypedServiceImplementation } from './server'; |
|
|
|
interface GetServiceDefinition { |
|
(): ServiceDefinition; |
|
} |
|
|
|
interface GetHandlers { |
|
(): UntypedServiceImplementation; |
|
} |
|
|
|
const registeredAdminServices: { |
|
getServiceDefinition: GetServiceDefinition; |
|
getHandlers: GetHandlers; |
|
}[] = []; |
|
|
|
export function registerAdminService( |
|
getServiceDefinition: GetServiceDefinition, |
|
getHandlers: GetHandlers |
|
) { |
|
registeredAdminServices.push({ getServiceDefinition, getHandlers }); |
|
} |
|
|
|
export function addAdminServicesToServer(server: Server): void { |
|
for (const { getServiceDefinition, getHandlers } of registeredAdminServices) { |
|
server.addService(getServiceDefinition(), getHandlers()); |
|
} |
|
} |
|
|