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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,8 +1,8 @@
import { AttributeAlias } from "./alias"; import { AttributeAlias } from "./alias.js";
import { Attribute, DB, Table } from "./db"; import { Attribute, DB, Table } from "./db.js";
import { BooleanModifier, Modifier } from "./dbStructure"; import { BooleanModifier, Modifier } from "./dbStructure.js";
import { Handler } from "./defaultHandler"; import { Handler } from "./defaultHandler.js";
import { allModifierInput, primaryData, selectElements, selectFromElements, serializeReturn } from "./types"; import { allModifierInput, primaryData, selectElements, selectFromElements, serializeReturn } from "./types.js";
export class Query { export class Query {
@ -101,7 +101,7 @@ export class selectQuery {
const builder = this.serialize(handler); const builder = this.serialize(handler);
const s = handler.builders.query(builder); const s = handler.builders.query(builder);
let readResp = await db.query(s, printQuery); 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 { AttributeAlias } from "./alias.js";
import { Attribute } from "./db"; import { Attribute } from "./db.js";
import { primaryData } from "./types"; import { primaryData } from "./types.js";
export class singleResponse { export class singleResponse {
[key: string]: primaryData | any; [key: string]: primaryData | any;
@ -15,7 +15,9 @@ export class singleResponse {
export class readResponse extends Array<singleResponse>{ export class readResponse extends Array<singleResponse>{
constructor(rows: ({ [key: string]: primaryData })[]) { constructor(rows: ({ [key: string]: primaryData })[]) {
super(); 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 { AttributeAlias, TableAlias } from "./alias.js";
import { Attribute, Table } from "./db"; import { Attribute, Table } from "./db.js";
import { Aggregation, BooleanModifier, Datatype, Joins, Modifier } from "./dbStructure"; import { Aggregation, BooleanModifier, Datatype, Joins, Modifier } from "./dbStructure.js";
import { QueryBuilder, selectQuery } from "./query"; import { QueryBuilder, selectQuery } from "./query.js";
export type primaryData = string | number | boolean | null; export type primaryData = string | number | boolean | null;
export type allModifierInput = primaryData | Modifier | selectQuery | Attribute | AttributeAlias | Aggregation; export type allModifierInput = primaryData | Modifier | selectQuery | Attribute | AttributeAlias | Aggregation;

View file

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