Compare commits

...

3 commits

Author SHA1 Message Date
ea5954a9ff Merge pull request 'changed to es6' (#14) from dev into main
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
Reviewed-on: #14
2023-02-27 18:00:21 +01:00
cbac881a49 bug fix
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2023-02-27 17:59:16 +01:00
53cb448e36 upgrade to es6 and catch conn errors
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2023-02-27 16:33:27 +01:00
11 changed files with 53 additions and 43 deletions

6
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "dblang",
"version": "1.0.0",
"version": "0.7.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "dblang",
"version": "1.0.0",
"version": "0.7.0",
"license": "UNLICENSED",
"dependencies": {
"mariadb": "^3.0.2",
@ -19,7 +19,7 @@
"typescript": "^4.9.4"
},
"engines": {
"node": ">= 14"
"node": ">= 16"
}
},
"node_modules/@esbuild/android-arm": {

View file

@ -1,10 +1,10 @@
{
"name": "dblang",
"version": "0.6.2",
"version": "0.7.0",
"description": "",
"main": "dist/db.js",
"types": "dist/db.d.ts",
"type": "commonjs",
"type": "module",
"directories": {
"dist": "dist"
},
@ -22,7 +22,7 @@
"pg": "^8.9.0"
},
"engines": {
"node": ">= 14"
"node": ">= 16"
},
"devDependencies": {
"@types/node": "^18.11.18",

View file

@ -1,5 +1,5 @@
import { Attribute, DB, Table } from "./db"
import { Handler } from "./defaultHandler";
import { Attribute, DB, Table } from "./db.js"
import { Handler } from "./defaultHandler.js";
export class AttributeAlias {
name: string;

View file

@ -1,12 +1,17 @@
import mariadb from 'mariadb';
import { checkConstraint, Constraint, Datatype, foreignConstraint, uniqueConstraint } from './dbStructure';
import { Handler } from './defaultHandler';
import { Query } from './query';
import { attributeSettings, extendedAttributeSettings, onAction, dbType } from './types';
import { TableAlias } from "./alias"
import { insertResponse, readResponse, writeResponse, singleResponse } from "./responses"
import { checkConstraint, Constraint, Datatype, foreignConstraint, uniqueConstraint } from './dbStructure.js';
import { Handler } from './defaultHandler.js';
import { Query } from './query.js';
import { attributeSettings, extendedAttributeSettings, onAction, dbType } from './types.js';
import { TableAlias } from "./alias.js"
import { insertResponse, readResponse, writeResponse, singleResponse } from "./responses.js"
//import { postgresHandler } from "./postgresHandler"
declare module "mariadb" {
interface Pool{
on(ev: 'error', callback: () => void): Pool;
}
}
export class DB {
tables: Table[] = [];
@ -21,6 +26,8 @@ export class DB {
this.type = databaseType;
if (databaseType == dbType.mariadb) {
this.mariaPool = mariadb.createPool({ host, user, password, port, database, connectionLimit, multipleStatements: true });
// catch errors
this.mariaPool.on("error",()=>{});
this.handler = new Handler(this);
}
/*else if (databaseType == dbType.postgres) {
@ -170,7 +177,7 @@ export class Table {
}
}
export * from './funcs';
export * from './funcs.js';
export { onAction };
export { dbType as databaseType }
export { readResponse, writeResponse, insertResponse, singleResponse }

View file

@ -1,7 +1,7 @@
import { Attribute, Table } from "./db";
import { Handler } from "./defaultHandler";
import { QueryBuilder } from "./query";
import { allModifierInput, joinElements, joinType, onAction, primaryData, serializeReturn } from "./types";
import { Attribute, Table } from "./db.js";
import { Handler } from "./defaultHandler.js";
import { QueryBuilder } from "./query.js";
import { allModifierInput, joinElements, joinType, onAction, primaryData, serializeReturn } from "./types.js";
export class Datatype {
type: string;

View file

@ -1,8 +1,8 @@
import { AttributeAlias, TableAlias } from "./alias";
import { Attribute, DB, insertResponse, readResponse, Table, writeResponse } from "./db"
import { Aggregation, checkConstraint, joinCross, Datatype, foreignConstraint, Modifier, joinNatural, onJoin, uniqueConstraint, usingJoin } from "./dbStructure"
import { insertQuery, Query, QueryBuilder, removeQuery, selectQuery, updateQuery } from "./query"
import { allModifierInput, joinType, onAction, primaryData } from "./types"
import { AttributeAlias, TableAlias } from "./alias.js";
import { Attribute, DB, insertResponse, readResponse, Table, writeResponse } from "./db.js"
import { Aggregation, checkConstraint, joinCross, Datatype, foreignConstraint, Modifier, joinNatural, onJoin, uniqueConstraint, usingJoin } from "./dbStructure.js"
import { insertQuery, Query, QueryBuilder, removeQuery, selectQuery, updateQuery } from "./query.js"
import { allModifierInput, joinType, onAction, primaryData } from "./types.js"
export class Handler {
db: DB;

View file

@ -1,7 +1,7 @@
import { Attribute, Table } from "./db";
import { Aggregation, BooleanModifier, checkConstraint, Datatype, foreignConstraint, joinCross, joinNatural, usingJoin, onJoin, NumberModifier, StringModifier, uniqueConstraint } from "./dbStructure";
import { insertQuery, removeQuery, selectQuery, updateQuery } from "./query";
import { allModifierInput, joinType, selectElements, selectFromElements } from "./types";
import { Attribute, Table } from "./db.js";
import { Aggregation, BooleanModifier, checkConstraint, Datatype, foreignConstraint, joinCross, joinNatural, usingJoin, onJoin, NumberModifier, StringModifier, uniqueConstraint } from "./dbStructure.js";
import { insertQuery, removeQuery, selectQuery, updateQuery } from "./query.js";
import { allModifierInput, joinType, selectElements, selectFromElements } from "./types.js";
//modifiers
export const and = (...args: BooleanModifier[]) => new BooleanModifier("and", args);

View file

@ -1,8 +1,8 @@
import { AttributeAlias } from "./alias";
import { Attribute, DB, Table } from "./db";
import { BooleanModifier, Modifier } from "./dbStructure";
import { Handler } from "./defaultHandler";
import { allModifierInput, primaryData, selectElements, selectFromElements, serializeReturn } from "./types";
import { AttributeAlias } from "./alias.js";
import { Attribute, DB, Table } from "./db.js";
import { BooleanModifier, Modifier } from "./dbStructure.js";
import { Handler } from "./defaultHandler.js";
import { allModifierInput, primaryData, selectElements, selectFromElements, serializeReturn } from "./types.js";
export class Query {
@ -101,7 +101,7 @@ export class selectQuery {
const builder = this.serialize(handler);
const s = handler.builders.query(builder);
let readResp = await db.query(s, printQuery);
return db.getHandler().responses.readResponse(readResp);
return handler.responses.readResponse(readResp);
}
}

View file

@ -1,6 +1,6 @@
import { AttributeAlias } from "./alias";
import { Attribute } from "./db";
import { primaryData } from "./types";
import { AttributeAlias } from "./alias.js";
import { Attribute } from "./db.js";
import { primaryData } from "./types.js";
export class singleResponse {
[key: string]: primaryData | any;
@ -15,7 +15,9 @@ export class singleResponse {
export class readResponse extends Array<singleResponse>{
constructor(rows: ({ [key: string]: primaryData })[]) {
super();
this.push(...rows.map(r => new singleResponse(r)));
for(let i = 0; i < rows.length; i++){
this[i] = new singleResponse(rows[i])
}
}
}

View file

@ -1,7 +1,7 @@
import { AttributeAlias, TableAlias } from "./alias";
import { Attribute, Table } from "./db";
import { Aggregation, BooleanModifier, Datatype, Joins, Modifier } from "./dbStructure";
import { QueryBuilder, selectQuery } from "./query";
import { AttributeAlias, TableAlias } from "./alias.js";
import { Attribute, Table } from "./db.js";
import { Aggregation, BooleanModifier, Datatype, Joins, Modifier } from "./dbStructure.js";
import { QueryBuilder, selectQuery } from "./query.js";
export type primaryData = string | number | boolean | null;
export type allModifierInput = primaryData | Modifier | selectQuery | Attribute | AttributeAlias | Aggregation;

View file

@ -1,6 +1,7 @@
{
"compilerOptions": {
"module": "CommonJS",
"target": "ES6",
"module": "ES6",
"lib": ["es6"],
"types": ["node"],
"declaration": true,