very-simple-orm
Version:
This is simple orm for typesript/javascript projects
63 lines (56 loc) • 1.95 kB
text/typescript
/**
* this conatiins sql string and values as arguments
*/
interface SQL_VALUES{
sql:string;
values:any[];
}
/**
* For inserting into many records and updating many record
*/
interface SQL_VALUES_MANY{
sql:string;
values:any[][];
}
/**
* filed name it value
*/
interface FIELD_NAME_VALUE{
fieldName:string,
value:any
}
/**
* Field name value and its operator.
*/
interface FIELD_NAME_VALUE_OPERATOR extends FIELD_NAME_VALUE{
separator : "AND" | "OR" | "NONE";
operator : "=" | "!=" | "LIKE"
}
interface JOIN{
type : "INNER JOIN" | "LEFT JOIN" | "RIGHT JOIN" | "CROSS JOIN",
otherTable:string,
anotherTable?:string;
otherTableSelectField ?: string[],
otherTableJoinField:string,
anotherTableJoinField?:string
thistableJoinField?:string
}
interface SELECT{
selectById(_idField:FIELD_NAME_VALUE, _selectedFields ?:string[], _orderBy?:{fields:string[], by:"ASC" | "DESC"}, _limit?:number, _offset?:number):SQL_VALUES
select(_clauseFields?:FIELD_NAME_VALUE_OPERATOR[], _selectedFields ?:string[], _orderBy?:{fields:string[], by:"ASC" | "DESC"}, _limit?:number, _offset?:number, _join ?:JOIN[]):SQL_VALUES
}
interface UPADTE{
updateById(_field:FIELD_NAME_VALUE, _updateFields:FIELD_NAME_VALUE[]):SQL_VALUES;
update(_updateFields:FIELD_NAME_VALUE[], _clauseFileds:FIELD_NAME_VALUE_OPERATOR[] ):SQL_VALUES
}
interface INSERT{
insert(_insertFields:FIELD_NAME_VALUE[]):SQL_VALUES;
insertMany(_insertFields: FIELD_NAME_VALUE[][]): SQL_VALUES_MANY;
}
interface DELETE{
deleteById(_field:FIELD_NAME_VALUE):SQL_VALUES;
delete(_clauseField: FIELD_NAME_VALUE_OPERATOR[]): SQL_VALUES;
}
interface SQL_MASTER extends SELECT, UPADTE, INSERT, DELETE{
}
export type {SQL_VALUES, SQL_VALUES_MANY,FIELD_NAME_VALUE, FIELD_NAME_VALUE_OPERATOR, SELECT, JOIN,UPADTE, INSERT, DELETE, SQL_MASTER}