| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| import { Resolver, ResolverListener, registerResolver } from './resolver'; |
| import { Endpoint } from './subchannel-address'; |
| import { GrpcUri } from './uri-parser'; |
| import { ChannelOptions } from './channel-options'; |
|
|
| class UdsResolver implements Resolver { |
| private hasReturnedResult = false; |
| private endpoints: Endpoint[] = []; |
| constructor( |
| target: GrpcUri, |
| private listener: ResolverListener, |
| channelOptions: ChannelOptions |
| ) { |
| let path: string; |
| if (target.authority === '') { |
| path = '/' + target.path; |
| } else { |
| path = target.path; |
| } |
| this.endpoints = [{ addresses: [{ path }] }]; |
| } |
| updateResolution(): void { |
| if (!this.hasReturnedResult) { |
| this.hasReturnedResult = true; |
| process.nextTick( |
| this.listener.onSuccessfulResolution, |
| this.endpoints, |
| null, |
| null, |
| null, |
| {} |
| ); |
| } |
| } |
|
|
| destroy() { |
| this.hasReturnedResult = false; |
| } |
|
|
| static getDefaultAuthority(target: GrpcUri): string { |
| return 'localhost'; |
| } |
| } |
|
|
| export function setup() { |
| registerResolver('unix', UdsResolver); |
| } |
|
|