API Reference
Last updated:
API Reference
Complete API documentation for Prisma DMMF transformer.
transformDMMF()
Transform Prisma DMMF to JSON Schema v7.
function transformDMMF(
dmmf: DMMF.Document,
options?: TransformOptions
): JSONSchema7Parameters:
dmmf- Prisma DMMF document fromprisma._getDmmf()options- Transformation options (optional)
Returns: JSON Schema v7 document
Example:
import { transformDMMF } from "@visulima/prisma-dmmf-transformer";
const schema = transformDMMF(dmmf, {
includeRequiredFields: "true",
});getJSONSchemaProperty()
Get JSON Schema property for a specific DMMF field.
function getJSONSchemaProperty(
field: DMMF.Field,
options?: TransformOptions
): JSONSchema7DefinitionParameters:
field- DMMF field definitionoptions- Transformation options (optional)
Returns: JSON Schema property definition
Example:
import { getJSONSchemaProperty } from "@visulima/prisma-dmmf-transformer";
const property = getJSONSchemaProperty(field, {
persistOriginalType: "true",
});TransformOptions
Configuration options for transformation.
interface TransformOptions {
keepRelationScalarFields?: "true" | "false";
includeRequiredFields?: "true" | "false";
persistOriginalType?: "true" | "false";
schemaId?: string;
}keepRelationScalarFields
Include foreign key fields in the schema.
- Type:
"true" | "false" - Default:
"false"
includeRequiredFields
Add required array to schemas.
- Type:
"true" | "false" - Default:
"false"
persistOriginalType
Preserve Prisma type information.
- Type:
"true" | "false" - Default:
"false"
schemaId
Set schema $id property.
- Type:
string - Default:
undefined
Type Definitions
DefinitionMap
Tuple of model name and JSON Schema definition.
type DefinitionMap = [name: string, definition: JSONSchema7Definition];PropertyMap
Tuple with property metadata.
type PropertyMap = [...DefinitionMap, PropertyMetaData];PropertyMetaData
Metadata about a property.
interface PropertyMetaData {
hasDefaultValue: boolean;
isScalar: boolean;
required: boolean;
}ModelMetaData
Metadata about a model.
interface ModelMetaData {
enums: ReadonlyDeep<DMMF.DatamodelEnum[]>;
}PrismaPrimitive
Prisma scalar types.
type PrismaPrimitive =
| "String"
| "Boolean"
| "Int"
| "BigInt"
| "Float"
| "Decimal"
| "DateTime"
| "Json"
| "Bytes";JSONSchema7
The output schema follows JSON Schema Draft 7:
interface JSONSchema7 {
$schema: string;
$id?: string;
type: string;
definitions: Record<string, JSONSchema7Definition>;
properties: Record<string, JSONSchema7Definition>;
}DMMF Types
From @prisma/generator-helper:
DMMF.Document
interface Document {
datamodel: Datamodel;
schema: Schema;
mappings: Mappings;
}DMMF.Model
interface Model {
name: string;
fields: Field[];
primaryKey: PrimaryKey | null;
uniqueFields: string[][];
uniqueIndexes: UniqueIndex[];
}DMMF.Field
interface Field {
name: string;
kind: FieldKind;
type: string;
isRequired: boolean;
isList: boolean;
isUnique: boolean;
isId: boolean;
isReadOnly: boolean;
hasDefaultValue: boolean;
default?: FieldDefault;
relationName?: string;
relationFromFields?: string[];
relationToFields?: string[];
}