From ea39e4bad6ed9fb6d1d320a814e111be1d3105c4 Mon Sep 17 00:00:00 2001 From: Marco Lipparini <1532277+liarco@users.noreply.github.com> Date: Wed, 19 Jul 2023 11:59:48 +0200 Subject: [PATCH] Optimizing package size (#5) --- bin/ldd.js | 2 +- package.json | 8 +++----- src/config.ts | 24 +++++++++++++++++++----- src/index.ts | 3 +-- 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/bin/ldd.js b/bin/ldd.js index bd6daff..3508e97 100755 --- a/bin/ldd.js +++ b/bin/ldd.js @@ -1,3 +1,3 @@ #!/usr/bin/env node -require('../build/src/index.js'); +require('../build/index.js'); diff --git a/package.json b/package.json index dca6f39..f81e4a4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@mep-agency/local-dev-db", - "version": "1.0.0-alpha10", + "version": "1.0.0-alpha11", "private": false, "description": "A zero-config local MariaDB instance for local development (using Docker)", "author": "Marco Lipparini ", @@ -31,10 +31,8 @@ }, "files": [ "bin", - "build", - "docker", - "LICENCE", - "README.md" + "build/**/*.js", + "docker" ], "devDependencies": { "@types/mysql": "^2.15.21", diff --git a/src/config.ts b/src/config.ts index 466fa82..28de417 100644 --- a/src/config.ts +++ b/src/config.ts @@ -2,19 +2,26 @@ import fs from 'fs'; import path from 'path'; const JSON_CONFIG_FILE_NAME = 'ldd.json'; +const PACKAGE_JSON_PATH = `${__dirname}/../package.json`; -const DEFAULT_CONFIG: JsonConfiguration = { +const DEFAULT_CONFIG: Partial = { dbName: undefined, }; interface JsonConfiguration { dbName?: string; + packageInfo: { + name: string; + description: string; + version: string; + }; } const findAndReadConfig = () => { + let userConfig = {}; + try { let startdir = process.cwd(); - let userConfigData = '{}'; while (true) { var list = fs.readdirSync(startdir); @@ -23,7 +30,7 @@ const findAndReadConfig = () => { // Found console.info(`Loading configuration from: ${path.join(startdir, JSON_CONFIG_FILE_NAME)}`); - userConfigData = fs.readFileSync(path.join(startdir, JSON_CONFIG_FILE_NAME)).toString(); + userConfig = JSON.parse(fs.readFileSync(path.join(startdir, JSON_CONFIG_FILE_NAME)).toString()); break; } else if (startdir == '/') { // Root dir, file not found @@ -32,13 +39,20 @@ const findAndReadConfig = () => { startdir = path.normalize(path.join(startdir, '..')); } } + } catch (e) { + console.error('ERROR: Failed loading LDD configuration file...'); + process.exit(1); + } + + try { return { ...DEFAULT_CONFIG, - ...JSON.parse(userConfigData), + ...userConfig, + packageInfo: JSON.parse(fs.readFileSync(PACKAGE_JSON_PATH).toString()), } as JsonConfiguration; } catch (e) { - console.error('ERROR: Failed reading LDD configuration file...'); + console.error('ERROR: Failed loading LDD package.json...'); process.exit(1); } diff --git a/src/index.ts b/src/index.ts index 59625e0..dc1358a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,7 +4,6 @@ import { confirm } from '@inquirer/prompts'; import { dockerCommand } from 'docker-cli-js'; import mysql from 'mysql'; -import packageInfo from '../package.json'; import config from './config'; const PACKAGE_INSTALLATION_PATH = `${__dirname}/../..`; @@ -71,7 +70,7 @@ const execQuery = (query: string, database: string = 'defaultdb') => { }); }; -program.name('ldd').description(packageInfo.description).version(packageInfo.version); +program.name('ldd').description(config.packageInfo.description).version(config.packageInfo.version); program .command('start')