very-simple-orm
Version:
This is simple orm for typesript/javascript projects
111 lines • 2.5 kB
TypeScript
/** used in table cor creatation */
/**
* string and size
*/
interface StringType {
String: "String";
size?: number;
}
/**
* property number and autoincrement
*/
interface NumberType {
Number: "Number";
autoIncrement?: Boolean;
}
/**
* enum and enum values
*/
interface EnumType {
Enum: "Enum";
enumValues: any[];
}
/**
* Date
*/
interface DateType {
Date: "Date";
}
/**
* DateTime
*/
interface DateTimeType {
DateTime: "DateTime";
}
/**
* Boolean
*/
interface BooleanType {
Boolean: "Boolean";
}
/**
* double
*/
interface DoubleType {
Double: "Double";
}
/**
* Text
*/
interface TextType {
Text: "Text";
}
interface CURRENT_TIMESTAMP_TYPE {
CURRENT_TIMESTAMP: "CURRENT_TIMESTAMP";
}
interface NULL_TYPE {
NULL: "NULL";
}
interface AS_DEFINED_TYPE {
AS_DEFINED: "AS DEFINED";
value: any;
}
interface FIELD {
/**
* name of the field
*/
fieldName: string;
/**
* example type : {"String" : "string", "size" : 123}
*
* StringType has 'size' as one more property
*
* NumberType has 'autoIncrement' as one more property
*
* EnumType has "enumValues" as one more property
*/
type: StringType | NumberType | EnumType | DateType | DateTimeType | TextType | BooleanType | DoubleType | TextType;
/**
* is the filed primery key
*/
PrimeryKey?: boolean;
/**
* exaple { "AS_DEFINED_TYPE" : "AS_DEFINED_TYPE", value ; "India"}
* AS_DEFINED_TYPE has on property of value
*/
default?: CURRENT_TIMESTAMP_TYPE | NULL_TYPE | AS_DEFINED_TYPE;
unique?: boolean;
/**
* false means required
* true means not required
*/
null?: boolean;
/**
* This is function is field validadtor before insert and update operations
* @fieldValue value is value of the current field use this inside your custom validadtion function
* return true if success or return false in faliure of validation
*/
validate?: (fieldValue: any) => boolean;
}
/**
* each field of table
/**
* Table interface
*/
interface TABLE {
tableName: string;
fields: FIELD[];
}
export type { TABLE, FIELD };
export type { StringType, NumberType, EnumType, DateType, DateTimeType, BooleanType, DoubleType, TextType, CURRENT_TIMESTAMP_TYPE, NULL_TYPE, AS_DEFINED_TYPE };
//# sourceMappingURL=tableInterface.d.ts.map