Download packages/schema/src/schema.ts from SaylorTwift/opencode: direct link, hf CLI and curl.
- Browser
- Download file 1.23 kB
-
https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/schema/src/schema.ts
- Command line
-
hf download hf://SaylorTwift/opencode/packages/schema/src/schema.ts
-
curl -L -o schema.ts https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/schema/src/schema.ts
1.23 kB
| import { DateTime, Option, Schema, SchemaGetter } from "effect" | |
| export const PositiveInt = Schema.Int.check(Schema.isGreaterThan(0)) | |
| export const NonNegativeInt = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)) | |
| export const RelativePath = Schema.String.pipe(Schema.brand("RelativePath")) | |
| export type RelativePath = typeof RelativePath.Type | |
| export const AbsolutePath = Schema.String.pipe(Schema.brand("AbsolutePath")) | |
| export type AbsolutePath = typeof AbsolutePath.Type | |
| export const optional = <S extends Schema.Top>(schema: S) => | |
| Schema.optionalKey(schema).pipe( | |
| Schema.decodeTo(Schema.optional(Schema.toType(schema)), { | |
| decode: SchemaGetter.passthrough({ strict: false }), | |
| encode: SchemaGetter.transformOptional(Option.filter((value) => value !== undefined)), | |
| }), | |
| ) | |
| export const statics = | |
| <S extends object, M extends Record<string, unknown>>(methods: (schema: S) => M) => | |
| (schema: S): S & M => | |
| Object.assign(schema, methods(schema)) | |
| export const DateTimeUtcFromMillis = Schema.Finite.pipe( | |
| Schema.decodeTo(Schema.DateTimeUtc, { | |
| decode: SchemaGetter.transform((value) => DateTime.makeUnsafe(value)), | |
| encode: SchemaGetter.transform((value) => DateTime.toEpochMillis(value)), | |
| }), | |
| ) | |