typescript common lib

This commit is contained in:
Jan Prochazka 2020-02-01 19:57:07 +01:00
parent 8291885d56
commit d22058382f
15 changed files with 3434 additions and 94 deletions

View File

@ -1,2 +0,0 @@
react: yarn react-start
electron: yarn wait-electron

3373
api/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -16,6 +16,7 @@
"nedb-promises": "^4.0.1",
"pg": "^7.17.0",
"socket.io": "^2.3.0",
"@dbgate/lib": "file:../lib",
"uuid": "^3.4.0"
},
"scripts": {

View File

@ -6,7 +6,7 @@ const { fork } = require('child_process');
const DatabaseAnalyser = require('../engines/default/DatabaseAnalyser');
module.exports = {
/** @type {import('../types').OpenedDatabaseConnection[]} */
/** @type {import('@dbgate/lib').OpenedDatabaseConnection[]} */
opened: [],
requests: {},
@ -48,7 +48,7 @@ module.exports = {
return newOpened;
},
/** @param {import('../types').OpenedDatabaseConnection} conn */
/** @param {import('@dbgate/lib').OpenedDatabaseConnection} conn */
async sendRequest(conn, message) {
const msgid = uuidv1();
const promise = new Promise((resolve, reject) => {

View File

@ -1,7 +1,7 @@
class DatabaseAnalyser {
/**
*
* @param {import('../../types').EngineDriver} driver
* @param {import('@dbgate/lib').EngineDriver} driver
*/
constructor(pool, driver) {
this.pool = pool;
@ -11,7 +11,7 @@ class DatabaseAnalyser {
async runAnalysis() {}
}
/** @returns {import('../../types').DatabaseInfo} */
/** @returns {import('@dbgate/lib').DatabaseInfo} */
DatabaseAnalyser.createEmptyStructure = () => ({
tables: [],
});

View File

@ -1,8 +1,7 @@
/** @return {import('../types').EngineDriver} */
/** @return {import('@dbgate/lib').EngineDriver} */
function getDriver(connection) {
const { engine } = connection;
return require(`./${engine}`);
}
module.exports = getDriver;

View File

@ -3,7 +3,8 @@
"module": "commonjs",
"allowJs": true,
"checkJs": true,
"noEmit": true
"noEmit": true,
"moduleResolution": "node",
},
"include": [
"src"

View File

@ -46,6 +46,9 @@
esutils "^2.0.2"
js-tokens "^4.0.0"
"@dbgate/lib@file:../lib":
version "0.1.0"
"@types/lodash@^4.14.149":
version "4.14.149"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz#1342d63d948c6062838fbf961012f74d4e638440"

1
lib/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
lib

17
lib/package.json Normal file
View File

@ -0,0 +1,17 @@
{
"version": "0.1.0",
"name": "@dbgate/lib",
"main": "lib/index.js",
"typings": "lib/index.d.ts",
"scripts": {
"prepare": "yarn build",
"build": "tsc"
},
"files": [
"lib"
],
"devDependencies": {
"@types/node": "^13.7.0",
"typescript": "^3.7.5"
}
}

View File

@ -1,4 +1,4 @@
import { ChildProcess } from 'child_process';
import { ChildProcess } from "child_process";
export interface QueryResult {
rows: any[];
@ -16,14 +16,13 @@ export interface EngineDriver {
export interface NamedObjectInfo {
pureName: string;
schemaName: string;
}
export interface TableInfo extends NamedObjectInfo {
}
export interface TableInfo extends NamedObjectInfo {}
export interface DatabaseInfo {
tables: TableInfo[];
}
}
export interface OpenedDatabaseConnection {
conid: string;
@ -31,3 +30,7 @@ export interface OpenedDatabaseConnection {
structure: DatabaseInfo;
subprocess: ChildProcess;
}
export function sum(a: number, b: number) {
return a + b;
}

11
lib/tsconfig.json Normal file
View File

@ -0,0 +1,11 @@
{
"compilerOptions": {
"target": "ES2015",
"module": "commonjs",
"declaration": true,
"outDir": "lib"
},
"include": [
"src/**/*"
]
}

13
lib/yarn.lock Normal file
View File

@ -0,0 +1,13 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@types/node@^13.7.0":
version "13.7.0"
resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.0.tgz#b417deda18cf8400f278733499ad5547ed1abec4"
integrity sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==
typescript@^3.7.5:
version "3.7.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.5.tgz#0692e21f65fd4108b9330238aac11dd2e177a1ae"
integrity sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==

View File

@ -1,14 +0,0 @@
{
"name": "dbgate",
"version": "0.1.0",
"private": true,
"scripts": {
"electron": "cross-env ELECTRON_START_URL=http://localhost:5000 electron ./electron",
"start": "nf start",
"serve": "node src/api/index.js",
"wait-electron": "node electron/src/electron-wait-react"
},
"devDependencies": {
"foreman": "^3.0.1"
}
}

View File

@ -1,66 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
commander@^2.15.1:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
debug@^3.0.0:
version "3.2.6"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
dependencies:
ms "^2.1.1"
eventemitter3@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb"
integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==
follow-redirects@^1.0.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f"
integrity sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==
dependencies:
debug "^3.0.0"
foreman@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/foreman/-/foreman-3.0.1.tgz#805f28afc5a4bbaf08dbb1f5018c557dcbb8a410"
integrity sha512-ek/qoM0vVKpxzkBUQN9k4Fs7l0XsHv4bqxuEW6oqIS4s0ouYKsQ19YjBzUJKTFRumFiSpUv7jySkrI6lfbhjlw==
dependencies:
commander "^2.15.1"
http-proxy "^1.17.0"
mustache "^2.2.1"
shell-quote "^1.6.1"
http-proxy@^1.17.0:
version "1.18.0"
resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a"
integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==
dependencies:
eventemitter3 "^4.0.0"
follow-redirects "^1.0.0"
requires-port "^1.0.0"
ms@^2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
mustache@^2.2.1:
version "2.3.2"
resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz#a6d4d9c3f91d13359ab889a812954f9230a3d0c5"
integrity sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==
requires-port@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
shell-quote@^1.6.1:
version "1.7.2"
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==