@msugiura/rawsql-prisma
Version:
Prisma integration for rawsql-ts - Dynamic SQL generation with type safety and hierarchical JSON serialization
53 lines (52 loc) • 1.33 kB
TypeScript
/**
* Enhanced JsonMapping with TypeScript type information for automatic compatibility validation
*/
import { JsonMapping } from 'rawsql-ts';
/**
* Type property definition for automatic type validation
*/
export interface TypePropertyInfo {
type: 'string' | 'number' | 'boolean' | 'Date' | 'object' | 'array';
required: boolean;
arrayElementType?: string;
objectInterface?: string;
}
/**
* Type information for entities in JsonMapping
*/
export interface EntityTypeInfo {
interface?: string;
importPath?: string;
properties?: {
[propertyName: string]: TypePropertyInfo;
};
}
/**
* Enhanced JsonMapping with type information for automatic validation
*/
export interface EnhancedJsonMapping extends JsonMapping {
typeInfo?: {
interface: string;
importPath: string;
};
rootEntity: JsonMapping['rootEntity'] & {
typeInfo?: EntityTypeInfo;
};
nestedEntities: Array<JsonMapping['nestedEntities'][0] & {
typeInfo?: EntityTypeInfo;
}>;
}
/**
* Type validation result
*/
export interface TypeValidationResult {
isValid: boolean;
errors: string[];
missingProperties: string[];
extraProperties: string[];
typeConflicts: Array<{
property: string;
expected: string;
actual: string;
}>;
}