@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
29 lines (27 loc) • 907 B
JavaScript
import { Subject } from 'rxjs';
import { NativeQ } from '../data/native-q';
export class RpcSubjectServer {
rpc;
subject = new Subject();
constructor(rpc, command) {
this.rpc = rpc;
this.rpc.registerInboundHandler(command, this.handler.bind(this));
}
processNextForSubject(command, data) {
if (this.subject.closed) {
const message = MsftSme.getStrings().MsftSmeShell.Core.Error.RpcSubjectClosed.message;
throw new Error(message.format(command));
}
const deferredData = {
data: data,
deferred: NativeQ.defer()
};
this.subject.next(deferredData);
return deferredData.deferred.promise;
}
// eslint-disable-next-line unused-imports/no-unused-vars
handler(data) {
throw Error('Not implemented handler');
}
}
//# sourceMappingURL=rpc-subject-server.js.map