monolayer / schema / enumerated
Function: enumerated()
enumerated<
Value>(enumerated):PgEnum<Value>
Column that stores a static, ordered set of values.
Type Parameters
| Type Parameter |
|---|
Value extends string |
Parameters
| Parameter | Type |
|---|---|
enumerated | EnumType<Value> |
Returns
PgEnum<Value>
Remarks
Kysely database schema type definition
ts
const role = enumType("role", ["admin", "user"]);
const roleColumn = enumerated(role);
type RoleColumn = {
readonly __select__: "admin" | "user" | null;
readonly __insert__: "admin" | "user" | null | undefined;
readonly __update__: "admin" | "user" | null;
};Nullability and optionality will change according to the column's constraints, generated values, and default data values.
Zod Schema
Types:
ts
// enumType("role", ["admin", "user"]);
{
input?: "admin" | "user" | null | undefined;
output?: "admin" | "user" | null | undefined;
}Nullability and optionality will change according to the column's constraints, generated values, and default data values.
Validations:
- Explicit
undefinedvalues are rejected. - Input values must be an enum value, or
null.
Example
ts
import { enumerated, enumType, schema, table } from "monolayer/pg";
import { zodSchema } from "monolayer/zod";
const role = enumType("role", ["admin", "user"]);
const dbSchema = schema({
types: [role],
tables: {
example: table({
columns: {
role: enumerated(role),
},
}),
},
});
// Kysely database schema type
type DB = typeof dbSchema.infer;
// Zod Schema
const schema = zodSchema(database.tables.example);See
PostgreSQL Docs: enumerated types