diff --git a/src/Schema/encodedAsJsonValue.ts b/src/Schema/encodedAsJsonValue.ts deleted file mode 100644 index 93bf8b1..0000000 --- a/src/Schema/encodedAsJsonValue.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { Schema } from "@effect/schema" -import type { Jsonifiable } from "type-fest" -import type { PrismaJson } from "../Types" - - -/** - * Takes a schema of which the encoded value satisfies `Jsonifiable` and returns the same schema with Prisma's `JsonValue` as its encoded type instead. - * This allows you use to use jsonifiable schemas to strongly type `Json` database fields in Prisma. - * - * This is needed because type-fest's `Jsonifiable` and `JsonValue` types do not satisfy Prisma's `JsonValue`, and as such we need to perform a cast. - */ -export const encodedAsJsonValue = (schema: Schema.Schema) => - schema as Schema.Schema diff --git a/src/Schema/encodedAsPrismaJsonValue.ts b/src/Schema/encodedAsPrismaJsonValue.ts new file mode 100644 index 0000000..55d7cdc --- /dev/null +++ b/src/Schema/encodedAsPrismaJsonValue.ts @@ -0,0 +1,13 @@ +import type { Schema } from "@effect/schema" +import type { JsonValue } from "type-fest" +import type { PrismaJson } from "../Types" + + +/** + * Takes a schema of which the encoded value satisfies type-fest `JsonValue` and returns the same schema with Prisma's `JsonValue` as its encoded type instead. + * This allows you use to use jsonifiable schemas to strongly type `Json` database fields in Prisma. + * + * This is needed because Prisma's `JsonValue` is poorly implemented and does not work well with some types, such as readonly arrays. + */ +export const encodedAsPrismaJsonValue = (schema: Schema.Schema) => + schema as Schema.Schema diff --git a/src/Schema/index.ts b/src/Schema/index.ts index 30da332..662dcbd 100644 --- a/src/Schema/index.ts +++ b/src/Schema/index.ts @@ -1,6 +1,6 @@ export * from "./Class" export * from "./DateTime" -export * from "./encodedAsJsonValue" +export * from "./encodedAsPrismaJsonValue" export * from "./Jsonifiable" export * from "./Kind" export * from "./makeJsonifiable"