0.1.16 • Published 4 months ago
@wanyne/orm v0.1.16
Wanyne-ORM
Database connection
import {
Database,
DatabaseClient,
FieldType,
FieldFlag,
} from '../src/index.mjs';
const database = new Database(
new DatabaseClient.MySQL({
host: 'localhost',
port: 3306,
user: 'username',
password: 'password',
database: 'database',
})
);
Create table
const test = await database.setTable('test', {
str: [FieldType.STRING(64), FieldFlag.NOTNULL(), FieldFlag.UNIQUE()],
num: [FieldType.NUMBER(true), FieldFlag.NOTNULL()],
json: [FieldType.JSON(), FieldFlag.NOTNULL()],
date: [FieldType.DATETIME(), FieldFlag.NOTNULL()],
});
const doom = await database.setTable('doom', {
str: [
FieldType.STRING(64),
FieldFlag.FOREIGN(test.field('str'), 'CASCADE', 'CASCADE'),
],
sans: [FieldType.STRING(128), FieldFlag.NOTNULL()],
});
CRUD
await doom.create({
record: {
name: 'test1',
email: 'sus',
},
});
const res = await test.read({
record: ['name', 'num', 'json', 'date'],
filter: `name : "%str% & a > 10 | b = "a"`,
page: 2,
size: 10,
sort: {
date: 'ASC',
},
});
await test.update({
record: {
name: 'sans',
},
filter: {
name: 'test1',
},
});
await test.delete({
filter: {
name: 'test1',
},
});