diff --git a/package-lock.json b/package-lock.json index 5f49542a..7f781899 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,9 +26,9 @@ } }, "@azure/core-auth": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.2.0.tgz", - "integrity": "sha512-KUl+Nwn/Sm6Lw5d3U90m1jZfNSL087SPcqHLxwn2T6PupNKmcgsEbDjHB25gDvHO4h7pBsTlrdJAY7dz+Qk8GA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.3.0.tgz", + "integrity": "sha512-kSDSZBL6c0CYdhb+7KuutnKGf2geeT+bCJAgccB0DD7wmNJSsQPcF7TcuoZX83B7VK4tLz/u+8sOO/CnCsYp8A==", "requires": { "@azure/abort-controller": "^1.0.0", "tslib": "^2.0.0" @@ -15818,9 +15818,9 @@ "integrity": "sha512-DcC+inWZvN6fiTyxv+9uhFoTRC9C8LTeApVl1N7JJTTCzto6yhuaI423DzPPqDk10z4naL2mF9g/eNhUfxuMpA==" }, "sqlectron-db-core": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/sqlectron-db-core/-/sqlectron-db-core-0.8.1.tgz", - "integrity": "sha512-hLEe7YmEfWOgZvKBQyhkEgkdLStA3ZNG6CkXhPDv7rYeklnurUUDXnLGubvHS3RWdONIPsUdiHEQroOzNWO/zg==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/sqlectron-db-core/-/sqlectron-db-core-0.9.0.tgz", + "integrity": "sha512-+j0roHtU1DuBrw/Yev3truM+E397nlKIw5Rb7d/zPTjqt/tMcb5yV5ddfp4QqvVw62Gv5UqzP+mtGbaJ08f2fg==", "requires": { "cassandra-driver": "^3.1.1", "debug": "^4.3.1", diff --git a/package.json b/package.json index 13be39da..e46f7f0b 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "lodash.defaultsdeep": "^4.6.0", "lodash.omit": "^4.5.0", "mkdirp": "^1.0.4", - "sqlectron-db-core": "^0.8.1", + "sqlectron-db-core": "^0.9.0", "uuid": "^8.3.2", "valida2": "^2.6.1" }, diff --git a/scripts/link-sqlectron-db-core.sh b/scripts/link-sqlectron-db-core.sh index 1632e71b..4a227724 100755 --- a/scripts/link-sqlectron-db-core.sh +++ b/scripts/link-sqlectron-db-core.sh @@ -3,4 +3,3 @@ set -e rm -rf node_modules/sqlectron-db-core npm link ../sqlectron-db-core -npm run postinstall # rebuild native deps diff --git a/src/browser/core/db.ts b/src/browser/core/db.ts index 38befa12..81a87a4e 100644 --- a/src/browser/core/db.ts +++ b/src/browser/core/db.ts @@ -1,12 +1,16 @@ import { WebContents, BrowserWindow, IpcMainInvokeEvent, IpcMainEvent } from 'electron'; import * as db from 'sqlectron-db-core'; -import { ADAPTERS } from 'sqlectron-db-core'; -import { Database, setSelectLimit } from 'sqlectron-db-core/database'; -import type { Adapter } from 'sqlectron-db-core/adapters'; -import type { QueryRowResult } from 'sqlectron-db-core/adapters/abstract_adapter'; -import type { DatabaseFilter, SchemaFilter } from 'sqlectron-db-core/filters'; -import { Server as DBServer, LegacyServerConfig } from 'sqlectron-db-core/server'; +import { ADAPTERS, setSelectLimit } from 'sqlectron-db-core'; +import type { + Database, + Adapter, + QueryRowResult, + DatabaseFilter, + SchemaFilter, + Server as DBServer, + LegacyServerConfig, +} from 'sqlectron-db-core'; import omit from 'lodash.omit'; import { Server } from '../../common/types/server'; import { SqlectronDB } from '../../common/types/api'; diff --git a/src/browser/core/index.ts b/src/browser/core/index.ts index 9987d414..03012d08 100644 --- a/src/browser/core/index.ts +++ b/src/browser/core/index.ts @@ -1,4 +1,4 @@ -import { setLogger } from 'sqlectron-db-core/logger'; +import { setLogger } from 'sqlectron-db-core'; import { getConn } from './db'; import * as config from './config'; import * as servers from './servers'; diff --git a/src/browser/core/limit.ts b/src/browser/core/limit.ts index 61e891bc..f04d7e3f 100644 --- a/src/browser/core/limit.ts +++ b/src/browser/core/limit.ts @@ -1,7 +1,7 @@ import { setSelectLimit as internalSet, clearSelectLimit as internalClear, -} from 'sqlectron-db-core/database'; +} from 'sqlectron-db-core'; import * as config from './config'; export async function setSelectLimit(): Promise { diff --git a/src/browser/core/utils.ts b/src/browser/core/utils.ts index d31ac550..25b30f6f 100644 --- a/src/browser/core/utils.ts +++ b/src/browser/core/utils.ts @@ -4,10 +4,6 @@ import path from 'path'; import mkdirp from 'mkdirp'; import envPaths from 'env-paths'; -import { readFile, resolveHomePathToAbsolute } from 'sqlectron-db-core/utils'; - -export { resolveHomePathToAbsolute } from 'sqlectron-db-core/utils'; - let configPath = ''; export function getConfigPath(): string { @@ -65,7 +61,18 @@ export function writeJSONFileSync(filename: string, data: T): void { } export function readJSONFile(filename: string): Promise { - return readFile(filename).then((data) => JSON.parse(data)); + const filePath = resolveHomePathToAbsolute(filename); + return new Promise((resolve, reject) => { + fs.readFile(path.resolve(filePath), { encoding: 'utf-8' }, (err, data) => { + if (err) return reject(err); + try { + const parsed = JSON.parse(data); + resolve(parsed); + } catch (err) { + reject(err); + } + }); + }); } export function readJSONFileSync(filename: string): T { @@ -81,3 +88,11 @@ export function createParentDirectory(filename: string): void { export function createParentDirectorySync(filename: string): void { mkdirp.sync(path.dirname(filename)); } + +export function resolveHomePathToAbsolute(filename: string): string { + if (!/^~\//.test(filename)) { + return filename; + } + + return path.join(homedir(), filename.substring(2)); +} diff --git a/src/common/types/api.ts b/src/common/types/api.ts index ad45daac..101f2fe7 100644 --- a/src/common/types/api.ts +++ b/src/common/types/api.ts @@ -1,9 +1,7 @@ import type { IpcMainInvokeEvent, IpcMainEvent } from 'electron'; import type { Config } from './config'; import type { Server } from './server'; -import type { Adapter } from 'sqlectron-db-core/adapters'; -import type { QueryRowResult } from 'sqlectron-db-core/adapters/abstract_adapter'; -import type { SchemaFilter, DatabaseFilter } from 'sqlectron-db-core/filters'; +import type { Adapter, QueryRowResult, SchemaFilter, DatabaseFilter } from 'sqlectron-db-core'; export interface MenuOptions { menuItems: Array; diff --git a/src/common/types/database.ts b/src/common/types/database.ts index ebd69d6d..afd54a89 100644 --- a/src/common/types/database.ts +++ b/src/common/types/database.ts @@ -1,2 +1 @@ -export type { Database } from 'sqlectron-db-core/database'; -export type { SchemaFilter, DatabaseFilter } from 'sqlectron-db-core/filters'; +export type { Database, SchemaFilter, DatabaseFilter } from 'sqlectron-db-core';