Files
recap/node_modules/@start9labs/start-sdk/base/lib/interfaces/Host.d.ts
T

102 lines
3.2 KiB
TypeScript

import { Effects } from '../Effects';
import { Origin } from './Origin';
import { AddSslOptions } from '../osBindings';
import { Security } from '../osBindings';
import { BindOptions } from '../osBindings';
import { AlpnInfo } from '../osBindings';
export { AddSslOptions, Security, BindOptions };
export declare const knownProtocols: {
readonly http: {
readonly secure: null;
readonly defaultPort: 80;
readonly withSsl: "https";
readonly alpn: AlpnInfo;
readonly addXForwardedHeaders: true;
};
readonly https: {
readonly secure: {
readonly ssl: true;
};
readonly defaultPort: 443;
readonly addXForwardedHeaders: true;
};
readonly ws: {
readonly secure: null;
readonly defaultPort: 80;
readonly withSsl: "wss";
readonly alpn: AlpnInfo;
readonly addXForwardedHeaders: true;
};
readonly wss: {
readonly secure: {
readonly ssl: true;
};
readonly defaultPort: 443;
readonly addXForwardedHeaders: true;
};
readonly ssh: {
readonly secure: {
readonly ssl: false;
};
readonly defaultPort: 22;
readonly addXForwardedHeaders: false;
};
readonly dns: {
readonly secure: {
readonly ssl: false;
};
readonly defaultPort: 53;
readonly addXForwardedHeaders: false;
};
};
export type Scheme = string | null;
type KnownProtocols = typeof knownProtocols;
type ProtocolsWithSslVariants = {
[K in keyof KnownProtocols]: KnownProtocols[K] extends {
withSsl: string;
} ? K : never;
}[keyof KnownProtocols];
type NotProtocolsWithSslVariants = Exclude<keyof KnownProtocols, ProtocolsWithSslVariants>;
type BindOptionsByKnownProtocol = {
protocol: ProtocolsWithSslVariants;
preferredExternalPort?: number;
addSsl?: Partial<AddSslOptions>;
} | {
protocol: NotProtocolsWithSslVariants;
preferredExternalPort?: number;
addSsl?: AddSslOptions;
};
export type BindOptionsByProtocol = BindOptionsByKnownProtocol | (BindOptions & {
protocol: null;
});
export declare class MultiHost {
readonly options: {
effects: Effects;
id: string;
};
constructor(options: {
effects: Effects;
id: string;
});
/**
* @description Use this function to bind the host to an internal port and configured options for protocol, security, and external port.
*
* @param internalPort - The internal port to be bound.
* @param options - The protocol options for this binding.
* @returns A multi-origin that is capable of exporting one or more service interfaces.
* @example
* In this example, we bind a previously created multi-host to port 80, then select the http protocol and request an external port of 8332.
*
* ```
const uiMultiOrigin = await uiMulti.bindPort(80, {
protocol: 'http',
preferredExternalPort: 8332,
})
* ```
*/
bindPort(internalPort: number, options: BindOptionsByProtocol): Promise<Origin>;
private bindPortForUnknown;
private bindPortForKnown;
private getSslProto;
}