@adpt/cloud
Version:
AdaptJS cloud component library
69 lines • 2.42 kB
TypeScript
import Adapt, { BuildHelpers, DeferredComponent } from "@adpt/core";
import { ServiceProps } from "../Service";
import { DockerContainerProps } from "./types";
/**
* Props for {@link docker.ServiceContainerSet}
*
* @public
*/
export interface ServiceContainerSetProps extends ServiceProps {
/**
* Props to apply to all {@link docker.DockerContainer}s within this
* ServiceContainerSet. If a prop is specified in the source {@link Container}
* component and in `containerProps`, `containerProps` will take
* precedence.
*/
containerProps?: Partial<DockerContainerProps>;
/**
* If set, all children of this ServiceContainerSet that support the
* `dockerHost` prop will get this value, overriding any other value for
* this prop.
*/
dockerHost?: string;
}
/**
* A component for mapping a group of abstract {@link Container}s and
* {@link NetworkService}s to Docker {@link docker.DockerContainer | DockerContainer}s
* and {@link docker.NetworkService}s.
*
* @remarks
* This component is intended to be used to replace {@link Container} and
* {@link NetworkService} components that are grouped together, as the
* only children of a common parent in a pattern that looks like this:
* ```tsx
* <Service>
* <Container ... />
* <Container ... />
* <NetworkService ... />
* </Service>
* ```
* `ServiceContainerSet` maps those abstract components into Docker components
* like this:
* ```tsx
* <Group>
* <docker.DockerContainer ... >
* <docker.DockerContainer ... >
* <docker.NetworkService ... >
* </Group>
* ```
* An example style rule to do this is:
* ```tsx
* {Service}
* {Adapt.rule((matchedProps) => {
* const { handle, ...remainingProps } = matchedProps;
* return <ServiceContainerSet {...remainingProps} />;
* })}
* ```
*
* Currently, {@link docker.NetworkService} implements the {@link NetworkServiceInstance}
* interface, but does not deploy a network proxy component. So the Docker
* ServiceContainerSet component applies the network port configuration specified by
* the {@link NetworkService}s to their target
* {@link docker.DockerContainer | DockerContainer}s.
*
* @public
*/
export declare class ServiceContainerSet extends DeferredComponent<ServiceContainerSetProps> {
build(helpers: BuildHelpers): Adapt.AdaptElement<Adapt.AnyProps>;
}
//# sourceMappingURL=ServiceContainerSet.d.ts.map