UNPKG

the-moby-effect

Version:
74 lines 3.05 kB
import * as Context from "effect/Context"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; import * as HttpClient from "effect/unstable/http/HttpClient"; import * as HttpApi from "effect/unstable/httpapi/HttpApi"; import * as HttpApiClient from "effect/unstable/httpapi/HttpApiClient"; import * as HttpApiEndpoint from "effect/unstable/httpapi/HttpApiEndpoint"; import * as HttpApiGroup from "effect/unstable/httpapi/HttpApiGroup"; import { MobyConnectionOptions } from "../../MobyConnection.js"; import { makeAgnosticHttpClientLayer } from "../../MobyPlatforms.js"; import { RegistryDistributionInspect } from "../generated/index.js"; import { DockerError } from "./circular.js"; import { InternalServerError, NotFound, Unauthorized } from "./errors.js"; /** @see https://docs.docker.com/reference/api/engine/latest/#tag/Distribution/operation/DistributionInspect */ const inspectDistributionEndpoint = /*#__PURE__*/HttpApiEndpoint.get("inspect", "/:name/json", { params: { name: Schema.String }, success: RegistryDistributionInspect, // 200 OK error: [Unauthorized, // 401 Unauthorized NotFound, // 404 Name not found InternalServerError // 500 Server error ] }); /** @see https://docs.docker.com/reference/api/engine/latest/#tag/Distribution */ const DistributionsGroup = /*#__PURE__*/HttpApiGroup.make("distributions").add(inspectDistributionEndpoint).prefix("/distribution"); /** * @since 1.0.0 * @category HttpApi * @see https://docs.docker.com/reference/api/engine/latest/#tag/Distribution */ export const DistributionsApi = /*#__PURE__*/HttpApi.make("distributions").add(DistributionsGroup); /** * @since 1.0.0 * @category Services * @see https://docs.docker.com/reference/api/engine/latest/#tag/Distribution */ export class Distributions extends /*#__PURE__*/Context.Service()("@the-moby-effect/endpoints/Distributions", { make: /*#__PURE__*/Effect.gen(function* () { const httpClient = yield* HttpClient.HttpClient; const DistributionsError = DockerError.WrapForModule("distributions"); const client = yield* HttpApiClient.group(DistributionsApi, { group: "distributions", httpClient }); const inspect_ = name => client.inspect({ params: { name } }).pipe(Effect.mapError(DistributionsError("inspect"))); return { inspect: inspect_ }; }) }) {} /** * @since 1.0.0 * @category Layers * @see https://docs.docker.com/reference/api/engine/latest/#tag/Distribution */ export const DistributionsLayer = /*#__PURE__*/Layer.effect(Distributions, Distributions.make); /** * @since 1.0.0 * @category Layers * @see https://docs.docker.com/reference/api/engine/latest/#tag/Distribution */ export const DistributionsLayerLocalSocket = /*#__PURE__*/DistributionsLayer.pipe(/*#__PURE__*/Layer.provide(/*#__PURE__*/makeAgnosticHttpClientLayer(/*#__PURE__*/MobyConnectionOptions.socket({ socketPath: "/var/run/docker.sock" })))); //# sourceMappingURL=distribution.js.map