Skip to content
This repository was archived by the owner on Jul 20, 2026. It is now read-only.

Commit cb3e478

Browse files
authored
Switch from zod/v4 to zod/mini for better tree shaking (#337)
1 parent 4e987e7 commit cb3e478

36 files changed

Lines changed: 146 additions & 137 deletions

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/vscode-container-client/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.5.3 - 9 February 2026
2+
### Changed
3+
* Switching from `zod/v4` to `zod/mini` for better tree shaking. [#337](https://github.com/microsoft/vscode-docker-extensibility/pull/337)
4+
15
## 0.5.2 - 1 December 2025
26
### Changed
37
* Updated to use `zod` v4. [#319](https://github.com/microsoft/vscode-docker-extensibility/pull/319)

packages/vscode-container-client/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@microsoft/vscode-container-client",
33
"author": "Microsoft Corporation",
4-
"version": "0.5.2",
4+
"version": "0.5.3",
55
"description": "Extensibility model for implementing container runtime providers (shared by VS and VS Code)",
66
"license": "See LICENSE in the project root for license information.",
77
"repository": {

packages/vscode-container-client/src/clients/DockerClient/DockerContextRecord.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
* Licensed under the MIT License. See LICENSE in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { z } from 'zod/v4';
6+
import * as z from 'zod/mini';
77

88
export const DockerContextRecordSchema = z.object({
99
Name: z.string(),
1010
Current: z.boolean(),
11-
Description: z.string().optional(),
12-
DockerEndpoint: z.string().optional(),
11+
Description: z.optional(z.string()),
12+
DockerEndpoint: z.optional(z.string()),
1313
});

packages/vscode-container-client/src/clients/DockerClient/DockerInspectContextRecord.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
* Licensed under the MIT License. See LICENSE in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { z } from 'zod/v4';
6+
import * as z from 'zod/mini';
77

88
export const DockerInspectContextRecordSchema = z.object({
99
Name: z.string(),
10-
Metadata: z.object({
11-
Description: z.string().optional(),
12-
}).optional(),
10+
Metadata: z.optional(z.object({
11+
Description: z.optional(z.string()),
12+
})),
1313
});

packages/vscode-container-client/src/clients/DockerClientBase/DockerEventRecord.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Licensed under the MIT License. See LICENSE in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { z } from 'zod/v4';
6+
import * as z from 'zod/mini';
77
import { EventActionSchema, EventTypeSchema } from '../../contracts/ZodEnums';
88

99
export const DockerEventRecordSchema = z.object({

packages/vscode-container-client/src/clients/DockerClientBase/DockerInfoRecord.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
* Licensed under the MIT License. See LICENSE in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { z } from 'zod/v4';
6+
import * as z from 'zod/mini';
77
import { ContainerOSSchema } from '../../contracts/ZodEnums';
88

99
export const DockerInfoRecordSchema = z.object({
10-
OperatingSystem: z.string().optional(),
11-
OSType: ContainerOSSchema.optional(),
10+
OperatingSystem: z.optional(z.string()),
11+
OSType: z.optional(ContainerOSSchema),
1212
});

packages/vscode-container-client/src/clients/DockerClientBase/DockerInspectContainerRecord.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { toArray } from '@microsoft/vscode-processutils';
7-
import { z } from 'zod/v4';
7+
import * as z from 'zod/mini';
88
import { InspectContainersItem, InspectContainersItemBindMount, InspectContainersItemMount, InspectContainersItemNetwork, InspectContainersItemVolumeMount, PortBinding } from '../../contracts/ContainerClient';
99
import { dayjs } from '../../utils/dayjs';
1010
import { parseDockerLikeImageName } from '../../utils/parseDockerLikeImageName';
1111
import { normalizeIpAddress } from './normalizeIpAddress';
1212
import { parseDockerLikeEnvironmentVariables } from './parseDockerLikeEnvironmentVariables';
1313

1414
const DockerInspectContainerPortHostSchema = z.object({
15-
HostIp: z.string().optional(),
16-
HostPort: z.string().optional(),
15+
HostIp: z.optional(z.string()),
16+
HostPort: z.optional(z.string()),
1717
});
1818

1919
const DockerInspectContainerBindMountSchema = z.object({
@@ -45,29 +45,29 @@ const DockerInspectContainerNetworkSchema = z.object({
4545

4646
const DockerInspectContainerConfigSchema = z.object({
4747
Image: z.string(),
48-
Status: z.string().optional(),
48+
Status: z.optional(z.string()),
4949
Entrypoint: z.union([z.array(z.string()), z.string(), z.null()]),
5050
Cmd: z.union([z.array(z.string()), z.string(), z.null()]),
51-
Env: z.union([z.array(z.string()), z.null()]).optional(),
52-
Labels: z.union([z.record(z.string(), z.string()), z.null()]).optional(),
53-
WorkingDir: z.union([z.string(), z.null()]).optional(),
51+
Env: z.optional(z.union([z.array(z.string()), z.null()])),
52+
Labels: z.optional(z.union([z.record(z.string(), z.string()), z.null()])),
53+
WorkingDir: z.optional(z.union([z.string(), z.null()])),
5454
});
5555

5656
const DockerInspectContainerHostConfigSchema = z.object({
57-
PublishAllPorts: z.union([z.boolean(), z.null()]).optional(),
58-
Isolation: z.string().optional(),
57+
PublishAllPorts: z.optional(z.union([z.boolean(), z.null()])),
58+
Isolation: z.optional(z.string()),
5959
});
6060

6161
const DockerInspectContainerNetworkSettingsSchema = z.object({
62-
Networks: z.record(z.string(), DockerInspectContainerNetworkSchema).nullable().optional(),
63-
IPAddress: z.string().optional(),
64-
Ports: z.record(z.string(), z.array(DockerInspectContainerPortHostSchema).nullable().optional()).nullable().optional(),
62+
Networks: z.nullish(z.record(z.string(), DockerInspectContainerNetworkSchema)),
63+
IPAddress: z.optional(z.string()),
64+
Ports: z.nullish(z.record(z.string(), z.nullish(z.array(DockerInspectContainerPortHostSchema)))),
6565
});
6666

6767
const DockerInspectContainerStateSchema = z.object({
68-
Status: z.string().optional(),
69-
StartedAt: z.string().optional(),
70-
FinishedAt: z.string().optional(),
68+
Status: z.optional(z.string()),
69+
StartedAt: z.optional(z.string()),
70+
FinishedAt: z.optional(z.string()),
7171
});
7272

7373
export const DockerInspectContainerRecordSchema = z.object({

packages/vscode-container-client/src/clients/DockerClientBase/DockerInspectImageRecord.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,21 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { toArray } from '@microsoft/vscode-processutils';
7-
import { z } from 'zod/v4';
7+
import * as z from 'zod/mini';
88
import { ImageNameInfo, InspectImagesItem, PortBinding } from "../../contracts/ContainerClient";
99
import { dayjs } from '../../utils/dayjs';
1010
import { parseDockerLikeImageName } from "../../utils/parseDockerLikeImageName";
1111
import { parseDockerLikeEnvironmentVariables } from "./parseDockerLikeEnvironmentVariables";
1212

1313
const DockerInspectImageConfigSchema = z.object({
14-
Entrypoint: z.union([z.array(z.string()), z.string(), z.null()]).optional(),
15-
Cmd: z.union([z.array(z.string()), z.string(), z.null()]).optional(),
16-
Env: z.array(z.string()).optional(),
17-
Labels: z.record(z.string(), z.string()).nullable().optional(),
18-
ExposedPorts: z.record(z.string(), z.unknown()).nullable().optional(),
19-
Volumes: z.record(z.string(), z.unknown()).nullable().optional(),
20-
WorkingDir: z.string().nullable().optional(),
21-
User: z.string().nullable().optional(),
14+
Entrypoint: z.optional(z.union([z.array(z.string()), z.string(), z.null()])),
15+
Cmd: z.optional(z.union([z.array(z.string()), z.string(), z.null()])),
16+
Env: z.optional(z.array(z.string())),
17+
Labels: z.nullish(z.record(z.string(), z.string())),
18+
ExposedPorts: z.nullish(z.record(z.string(), z.unknown())),
19+
Volumes: z.nullish(z.record(z.string(), z.unknown())),
20+
WorkingDir: z.nullish(z.string()),
21+
User: z.nullish(z.string()),
2222
});
2323

2424
export const DockerInspectImageRecordSchema = z.object({
@@ -28,8 +28,8 @@ export const DockerInspectImageRecordSchema = z.object({
2828
RepoDigests: z.array(z.string()),
2929
Architecture: z.string(),
3030
Os: z.string(),
31-
Created: z.string().nullable().optional(),
32-
User: z.string().optional(),
31+
Created: z.nullish(z.string()),
32+
User: z.optional(z.string()),
3333
});
3434

3535
type DockerInspectImageRecord = z.infer<typeof DockerInspectImageRecordSchema>;

packages/vscode-container-client/src/clients/DockerClientBase/DockerInspectNetworkRecord.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Licensed under the MIT License. See LICENSE in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { z } from 'zod/v4';
6+
import * as z from 'zod/mini';
77
import { InspectNetworksItem, NetworkIpamConfig } from '../../contracts/ContainerClient';
88
import { dayjs } from '../../utils/dayjs';
99

@@ -14,7 +14,7 @@ const DockerIpamConfigSchema = z.object({
1414

1515
const DockerIpamSchema = z.object({
1616
Driver: z.string(),
17-
Config: z.array(DockerIpamConfigSchema).optional(),
17+
Config: z.optional(z.array(DockerIpamConfigSchema)),
1818
});
1919

2020
export const DockerInspectNetworkRecordSchema = z.object({

0 commit comments

Comments
 (0)