UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

1 lines 5.74 kB
{"version":3,"sources":["../../../packages/core/rpc/rpc-outbound.ts"],"names":[],"mappings":"AACA,OAAO,EACH,eAAe,EACf,OAAO,EAEP,mBAAmB,EAEnB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,WAAW,EACX,aAAa,EAEb,WAAW,EACX,aAAa,EACb,eAAe,EACf,iBAAiB,EAEpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;;GAGG;AACH,qBAAa,WAAY,SAAQ,OAAO;IACpC;;;;;;OAMG;gBACS,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAQhE;;;;OAIG;IACI,WAAW,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAQtD;;;;;OAKG;IACI,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAKtD;;;;;OAKG;IACI,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAKtD;;;;;OAKG;IACI,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD;;;;;OAKG;IACI,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAM3D;;;;;OAKG;IACI,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKlE;;;;;OAKG;IACI,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAKtD;;;;;OAKG;IACH,OAAO,CAAC,YAAY;CAGvB","file":"rpc-outbound.d.ts","sourcesContent":["import { NativeQ } from '../data/native-q';\r\nimport {\r\n RpcActivateData,\r\n RpcBase,\r\n rpcCommandVersion,\r\n RpcDeactivateResult,\r\n RpcInboundCommands,\r\n RpcInboundHandlers,\r\n RpcInitData,\r\n RpcInitResult,\r\n RpcOpenData,\r\n RpcOpenResult,\r\n RpcOutboundCommands,\r\n RpcPingData,\r\n RpcPingResult,\r\n RpcShutdownData,\r\n RpcShutdownResult,\r\n RpcType\r\n} from './rpc-base';\r\nimport { RpcChannel } from './rpc-channel';\r\n\r\n/**\r\n * RpcToModule class.\r\n * - Shell uses the instance to communicate to the Module (tool).\r\n */\r\nexport class RpcOutbound extends RpcBase {\r\n /**\r\n * Initiates a new instance of the RpcToModule class.\r\n *\r\n * @param rpcChannel the rpc channel.\r\n * @param name the public name of the module.\r\n * @param origin the origin url.\r\n */\r\n constructor(rpcChannel: RpcChannel, name: string, origin: string) {\r\n super(rpcChannel, name, origin, RpcType.Outbound);\r\n const commands = Object.keys(RpcInboundCommands);\r\n commands.forEach((command) => {\r\n this.register(command, this.emptyHandler);\r\n });\r\n }\r\n\r\n /**\r\n * Registers all handlers at once.\r\n *\r\n * @param handlers the module handlers.\r\n */\r\n public registerAll(handlers: RpcInboundHandlers): void {\r\n const handlerNames = Object.keys(handlers);\r\n handlerNames.forEach((handlerName) => {\r\n const command = RpcBase.handlerToCommandName(handlerName);\r\n this.register(command, handlers[handlerName]);\r\n });\r\n }\r\n\r\n /**\r\n * The init command.\r\n *\r\n * @param data the RpcInitData data.\r\n * @return Promise<void> the promise object.\r\n */\r\n public init(data: RpcInitData): Promise<RpcInitResult> {\r\n return this.rpcChannel.post<RpcInitData, RpcInitResult>(\r\n this, { command: RpcOutboundCommands[RpcOutboundCommands.Init], version: rpcCommandVersion, data: data });\r\n }\r\n\r\n /**\r\n * The open command. (30 seconds waiting time)\r\n *\r\n * @param data the RpcOpenData object.\r\n * @return Promise<RpcOpenResult> the promise object of RpcOpenResult.\r\n */\r\n public open(data: RpcOpenData): Promise<RpcOpenResult> {\r\n return this.rpcChannel.post<RpcOpenData, RpcOpenResult>(\r\n this, { command: RpcOutboundCommands[RpcOutboundCommands.Open], version: rpcCommandVersion, data: data }, 30 * 1000);\r\n }\r\n\r\n /**\r\n * The activate command.\r\n *\r\n * @param data the void object.\r\n * @return Promise<void> the promise object.\r\n */\r\n public activate(data: RpcActivateData): Promise<void> {\r\n return this.rpcChannel.post<RpcActivateData, void>(\r\n this, { command: RpcOutboundCommands[RpcOutboundCommands.Activate], version: rpcCommandVersion, data: data });\r\n }\r\n\r\n /**\r\n * The deactivate 2 command used with polling deactivation.\r\n *\r\n * @param data the void object.\r\n * @return Promise<RpcDeactivateResult> the promise object.\r\n */\r\n public deactivate2(data: any): Promise<RpcDeactivateResult> {\r\n // ignore if it gets timed out because the frame could be gone already.\r\n return this.rpcChannel.post<any, RpcDeactivateResult>(\r\n this, { command: RpcOutboundCommands[RpcOutboundCommands.Deactivate2], version: rpcCommandVersion, data: data }, -1);\r\n }\r\n\r\n /**\r\n * The shutdown command.\r\n *\r\n * @param data the RpcShutdownData object.\r\n * @return Promise<RpcShutdownResult> the promise object.\r\n */\r\n public shutdown(data: RpcShutdownData): Promise<RpcShutdownResult> {\r\n return this.rpcChannel.post<RpcShutdownData, RpcShutdownResult>(\r\n this, { command: RpcOutboundCommands[RpcOutboundCommands.Shutdown], version: rpcCommandVersion, data: data });\r\n }\r\n\r\n /**\r\n * The ping command.\r\n *\r\n * @param data the RpcPingData object.\r\n * @return Promise<RpcPingResult> the promise object.\r\n */\r\n public ping(data: RpcPingData): Promise<RpcPingResult> {\r\n return this.rpcChannel.retryPost<RpcPingData>(\r\n this, { command: RpcOutboundCommands[RpcOutboundCommands.Ping], version: rpcCommandVersion, data: data }, 40, 250);\r\n }\r\n\r\n /**\r\n * The empty handler to response always resolved.\r\n *\r\n * @param data the node context.\r\n * @return Promise<any> the promise.\r\n */\r\n private emptyHandler(): Promise<any> {\r\n return NativeQ.resolved<any>('emptyHandler');\r\n }\r\n}\r\n"]}