Skip to content

Commit

Permalink
merge Serializable into Schema
Browse files Browse the repository at this point in the history
  • Loading branch information
gcanti committed Oct 15, 2024
1 parent 06f6d03 commit 4e23417
Show file tree
Hide file tree
Showing 33 changed files with 626 additions and 686 deletions.
2 changes: 2 additions & 0 deletions .changeset/cyan-sloths-lick.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@
Re-export modules from `effect`.

`ArrayFormatter` / `TreeFormatter` merged into `ParseResult` module.

`Serializable` module merged into `Schema` module.
10 changes: 6 additions & 4 deletions .changeset/six-crabs-itch.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ import {
JSONSchema,
ParseResult,
Pretty,
Schema,
Serializable
Schema
} from "@effect/schema"
```

Expand All @@ -33,8 +32,7 @@ import {
JSONSchema,
ParseResult,
Pretty,
Schema,
Serializable
Schema
} from "effect"
```

Expand All @@ -53,3 +51,7 @@ After
```ts
import { ArrayFormatter, TreeFormatter } from "effect/ParseResult"
```

### Serializable

Merged into `Schema` module.
9 changes: 4 additions & 5 deletions packages/ai/ai/src/AiToolkit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
* @since 1.0.0
*/
import type * as Schema from "@effect/schema/Schema"
import type * as Serializable from "@effect/schema/Serializable"
import * as Context from "effect/Context"
import * as Effect from "effect/Effect"
import * as Effectable from "effect/Effectable"
Expand Down Expand Up @@ -82,27 +81,27 @@ export declare namespace Tool {
export interface AnySchema {
readonly [Schema.TypeId]: any
readonly _tag: string
readonly Type: Serializable.SerializableWithResult.All
readonly Type: Schema.SerializableWithResult.All
readonly success: Schema.Schema.Any
}

/**
* @since 1.0.0
* @category tool
*/
export type Success<Tool extends AnySchema> = Serializable.WithResult.Success<Tool["Type"]>
export type Success<Tool extends AnySchema> = Schema.WithResult.Success<Tool["Type"]>

/**
* @since 1.0.0
* @category tool
*/
export type Failure<Tool extends AnySchema> = Serializable.WithResult.Failure<Tool["Type"]>
export type Failure<Tool extends AnySchema> = Schema.WithResult.Failure<Tool["Type"]>

/**
* @since 1.0.0
* @category tool
*/
export type Context<Tool extends AnySchema> = Serializable.WithResult.Context<Tool["Type"]>
export type Context<Tool extends AnySchema> = Schema.WithResult.Context<Tool["Type"]>

/**
* @since 1.0.0
Expand Down
3 changes: 1 addition & 2 deletions packages/cluster-browser/src/RpcBroadcastChannel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import { pipe } from "effect/Function"
import * as Queue from "effect/Queue"
import type * as RequestResolver from "effect/RequestResolver"
import * as Schema from "effect/Schema"
import type * as Serializable from "effect/Serializable"
import * as Stream from "effect/Stream"

class ClientRequest extends Schema.TaggedClass<ClientRequest>()("ClientRequest", {
Expand Down Expand Up @@ -73,7 +72,7 @@ export const make = <R extends RpcRouter.RpcRouter<any, any>>(
channelId: string
): RequestResolver.RequestResolver<
Rpc.Request<RpcRouter.RpcRouter.Request<R>>,
Serializable.SerializableWithResult.Context<RpcRouter.RpcRouter.Request<R>>
Schema.SerializableWithResult.Context<RpcRouter.RpcRouter.Request<R>>
> =>
RpcResolver.make((requests) => {
return Effect.gen(function*($) {
Expand Down
6 changes: 2 additions & 4 deletions packages/cluster/src/Message.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import type * as Exit_ from "effect/Exit"
import type * as PrimaryKey from "effect/PrimaryKey"
import type * as Schema from "effect/Schema"
import type * as Serializable from "effect/Serializable"
import type * as Types from "effect/Types"
import * as internal from "./internal/message.js"

Expand All @@ -16,7 +15,7 @@ import * as internal from "./internal/message.js"
* @category models
*/
export interface Message<A, AI, E, EI>
extends Serializable.SerializableWithResult<any, any, never, A, AI, E, EI, never>, PrimaryKey.PrimaryKey
extends Schema.SerializableWithResult<any, any, never, A, AI, E, EI, never>, PrimaryKey.PrimaryKey
{}

/**
Expand Down Expand Up @@ -70,8 +69,7 @@ export namespace Message {
* @since 1.0.0
* @category utils
*/
export type Exit<S> = S extends Serializable.WithResult<infer A, infer _AI, infer E, infer _EI, infer _R> ?
Exit_.Exit<A, E>
export type Exit<S> = S extends Schema.WithResult<infer A, infer _AI, infer E, infer _EI, infer _R> ? Exit_.Exit<A, E>
: never
}

Expand Down
5 changes: 2 additions & 3 deletions packages/cluster/src/SerializedEnvelope.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
*/
import * as PrimaryKey from "effect/PrimaryKey"
import * as Schema from "effect/Schema"
import * as Serializable from "effect/Serializable"
import { TypeIdSchema } from "./internal/utils.js"
import * as RecipientAddress from "./RecipientAddress.js"
import * as SerializedMessage from "./SerializedMessage.js"
Expand Down Expand Up @@ -41,10 +40,10 @@ export class SerializedEnvelope extends Schema.Class<SerializedEnvelope>(Seriali
messageId: Schema.String,
body: SerializedMessage.schema
}) {
get [Serializable.symbol]() {
get [Schema.symbolSerializable]() {
return this.constructor
}
get [Serializable.symbolResult]() {
get [Schema.symbolWithResult]() {
return { Success: Schema.Void, Failure: Schema.Never }
}
get [PrimaryKey.symbol]() {
Expand Down
9 changes: 4 additions & 5 deletions packages/cluster/src/internal/message.ts
Original file line number Diff line number Diff line change
@@ -1,36 +1,35 @@
import * as PrimaryKey from "effect/PrimaryKey"
import * as Schema from "effect/Schema"
import * as Serializable from "effect/Serializable"
import type * as Types from "effect/Types"
import type * as Message from "../Message.js"

/** @internal */
export function isMessageWithResult(value: unknown): value is Message.Message<unknown, unknown, unknown, unknown> {
return (
typeof value === "object" && value !== null &&
Serializable.symbolResult in value
Schema.symbolWithResult in value
)
}

/** @internal */
export function exitSchema<A extends Message.Message.Any>(
message: A
): Schema.Schema<Message.Message.Exit<A>, unknown> {
return Serializable.exitSchema(message as any) as any
return Schema.exitSchema(message as any) as any
}

/** @internal */
export function successSchema<A extends Message.Message.Any>(
message: A
): Schema.Schema<Message.Message.Success<A>, unknown> {
return Serializable.successSchema(message as any) as any
return Schema.successSchema(message as any) as any
}

/** @internal */
export function failureSchema<A extends Message.Message.Any>(
message: A
): Schema.Schema<Message.Message.Error<A>, unknown> {
return Serializable.failureSchema(message as any) as any
return Schema.failureSchema(message as any) as any
}

/**
Expand Down
2 changes: 1 addition & 1 deletion packages/effect/dtslint/SchemaSerializable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ const failureSchema = <Req extends Schema.TaggedRequest.All>(req: Req) =>
failureSchema(new TR({ id: 1 }))

const selfSchema = <Req extends Schema.TaggedRequest.All>(req: Req) =>
Serializable.selfSchema(Serializable.asSerializable(req))
Serializable.serializableSchema(Serializable.asSerializable(req))

// $ExpectType Schema<TR, Encoded<{ readonly _tag: tag<"TR">; } & { id: typeof NumberFromString; }>, never>
selfSchema(new TR({ id: 1 }))
Expand Down
Loading

0 comments on commit 4e23417

Please sign in to comment.