UNPKG

@enspirit/emb

Version:

A replacement for our Makefile-for-monorepos

45 lines (44 loc) 1.31 kB
import * as z from 'zod'; import { AbstractOperation } from '../../../operations/index.js'; /** * https://docs.docker.com/reference/api/engine/version/v1.37/#tag/Container/operation/ContainerList */ const schema = z .object({ all: z .boolean() .optional() .describe('Return all containers. By default, only running containers are shown'), filters: z .object({ label: z.array(z.string()).describe('Labels on the container'), }) .optional() .describe('Filters to process on the container list,'), limit: z .int() .positive() .optional() .describe('Return this number of most recently created containers, including non-running ones.'), }) .optional(); export class ListContainersOperation extends AbstractOperation { constructor() { super(schema); } async _run(input) { let filters = {}; if (input?.filters?.label) { filters.label = input.filters.label; } // Let's not even pass empty filters if (Object.keys(filters).length === 0) { filters = undefined; } return this.context.docker.listContainers({ all: input?.all, filters, limit: input?.limit, }); } }