npm

@clipboard-health/contract-core
TypeScript icon, indicating that this package has built-in type declarations

0.8.3 • Public • Published

@clipboard-health/contract-core

Shared Zod schemas for Clipboard Health's contracts.

Table of contents

Install

npm install @clipboard-health/contract-core

Usage

Zod schemas

// ./examples/schemas.ts

import { apiErrors, booleanString, nonEmptyString, uuid } from "@clipboard-health/contract-core";
import { type ZodError } from "zod";

function logError(error: unknown) {
  console.error((error as ZodError).issues[0]!.message);
}

apiErrors.parse({
  errors: [
    {
      code: "NotFound",
      detail: "Resource 'b146a790-9ed1-499f-966d-6c4905dc667f' not found",
      id: "6191a8a0-96ff-4d4b-8e0f-746a5ab215f9",
      status: "404",
      title: "Not Found",
    },
  ],
});

booleanString.parse("true");

try {
  booleanString.parse("invalid");
} catch (error) {
  logError(error);
  // => Invalid enum value. Expected 'true' | 'false', received 'invalid'
}

nonEmptyString.parse("hello");
try {
  nonEmptyString.parse("");
} catch (error) {
  logError(error);
  // => String must contain at least 1 character(s)
}

// UUID validation examples
uuid.parse("b8d617bb-edef-4262-a6e3-6cc807fa1b26");
try {
  uuid.parse("invalid");
} catch (error) {
  logError(error);
  // => Invalid UUID format
}

Local development commands

See package.json scripts for a list of commands.

Readme

Keywords

none

Package Sidebar

Install

npm i @clipboard-health/contract-core

Weekly Downloads

242

Version

0.8.3

License

MIT

Unpacked Size

8.59 kB

Total Files

20

Last publish

Collaborators

  • user_engineer
  • sharedenginner_cbh
  • mikecookcbh