@pcg/cli-tools 1.0.0-alpha.3 → 1.0.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/env.ts","../src/command.ts","../src/config.ts","../src/database.ts","../src/logger.ts"],"sourcesContent":[],"mappings":";;;;;aAAY,GAAA;;;;;AAAZ;;;UCIiB,kBAAA;OACV;;cAGM,wCACqE,UAAA,CADjC;;;UCJhC,cAAA;;;;;EFJL,EAAA,EAAA,MAAG;;;UEaE;EDTA,KAAA,ECUR,CDVQ;EAIJ,GAAA,ECON,CDPM;SCQJ;QACD;;AAbS,UAgBA,SAAA,CAhBc;EASd,QAAA,EAQL,OARY,CAQJ,cARI,CAAA;;AAEjB,cAUM,SAVN,EAAA,CAAA,UAUmC,SAVnC,CAAA,GAAA,GAUiD,OAVjD,CAUyD,CAVzD,CAAA;;;UCVG,iBAAA;OACH;;AHNK,cGSC,gBHTE,EAAA,CAAA,IAAA,EGS8B,iBHT9B,EAAA,GGS+C,OHT/C,CGS+C,IAAA,CAAA,IHT/C,CAAA,GAAA,EAAA,OAAA,EAAA,CAAA,CAAA;;;UIgBE,gBAAA;;;cAIJ,kBAAmB,qBAAmB"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["cliConfig: CliConfig | undefined","colorScheme: Record<string, ColorFn>","color: ColorFn","msg: string"],"sources":["../src/env.ts","../src/command.ts","../src/config.ts","../src/database.ts","../src/logger.ts"],"sourcesContent":["export enum Env {\n LOCAL = 'local',\n DEV = 'dev',\n STAGE = 'stage',\n PROD = 'prod',\n}\n","import { createCommand } from 'commander';\n\nimport { Env } from './env.js';\n\nexport interface CommandArgsWithEnv {\n env: Env;\n}\n\nexport const createCommandWithEnv = (name: string) => createCommand(name)\n .option('--env <env>', 'Environment where commands will be executed', Env.LOCAL);\n","import { readFile, stat } from 'fs/promises';\nimport { join } from 'path';\nimport { parse } from 'yaml';\n\nexport interface DatabaseConfig {\n host: string;\n port: number;\n user: string;\n pass: string;\n db: string;\n}\n\nexport interface WithEnv<T> {\n local: T;\n dev: T;\n stage: T;\n prod: T;\n}\n\nexport interface CliConfig {\n database: WithEnv<DatabaseConfig>;\n}\n\nlet cliConfig: CliConfig | undefined;\nexport const getConfig = async <T extends CliConfig>(): Promise<T> => {\n if (cliConfig) {\n return cliConfig as T;\n }\n\n const localConfigFile = join(process.cwd(), '/cli.config.yml');\n\n let configFile = '';\n try {\n await stat(localConfigFile);\n configFile = localConfigFile;\n } catch {\n throw new Error('Can`t find config.yml file in project root directory');\n }\n\n cliConfig = parse(\n await readFile(configFile, {\n encoding: 'utf-8',\n }),\n ) as CliConfig;\n\n return cliConfig as T;\n};\n","import { default as knex } from 'knex';\n\nimport { getConfig } from './config.js';\nimport { type Env } from './env.js';\n\ninterface KnexClientOptions {\n env: Env;\n}\n\nexport const createKnexClient = async (opts: KnexClientOptions) => {\n const appConfig = await getConfig();\n const dbConfig = appConfig.database[opts.env];\n\n return knex({\n client: 'pg',\n connection: {\n host: dbConfig.host,\n port: dbConfig.port,\n user: dbConfig.user,\n password: dbConfig.pass,\n database: dbConfig.db,\n },\n });\n};\n","import { isObject } from '@pcg/predicates';\nimport clc from 'cli-color';\nimport {\n createLogger, format,\n type Logger, transports,\n} from 'winston';\n\ntype ColorFn = (text: string) => string;\n\nconst colorScheme: Record<string, ColorFn> = {\n info: clc.greenBright as ColorFn,\n error: clc.red as ColorFn,\n warn: clc.yellow as ColorFn,\n debug: clc.magentaBright as ColorFn,\n};\n\nexport interface UseCliLoggerOpts {\n name: string;\n}\n\nexport const useLogger = (opts: UseCliLoggerOpts): Logger => {\n const { name } = opts;\n\n const plainText = format.printf(({\n level,\n message,\n timestamp,\n }) => {\n const color: ColorFn = colorScheme[level] ?? ((text: string): string => text);\n\n let msg: string = typeof message === 'string' ? message : '';\n if (isObject(message)) {\n msg = JSON.stringify(message, null, 2);\n }\n\n const sTimestamp = typeof timestamp === 'string' ? timestamp : '';\n const sLevel = color(level.toUpperCase().padEnd(5));\n const sName = (clc.yellow as ColorFn)(`[${name}]`);\n const sMessage = color(msg);\n\n return `${sTimestamp} ${sLevel} ${sName} ${sMessage}`;\n });\n\n return createLogger({\n level: 'debug',\n transports: [\n new transports.Console(),\n ],\n format: format.combine(\n format.timestamp(),\n plainText,\n ),\n });\n};\n"],"mappings":";;;;;;;;;;AAAA,IAAY,sCAAL;AACL;AACA;AACA;AACA;;;;;;ACIF,MAAa,wBAAwB,SAAiB,cAAc,KAAK,CACtE,OAAO,eAAe,+CAA+C,IAAI,MAAM;;;;
|
|
1
|
+
{"version":3,"file":"index.js","names":["cliConfig: CliConfig | undefined","colorScheme: Record<string, ColorFn>","color: ColorFn","msg: string"],"sources":["../src/env.ts","../src/command.ts","../src/config.ts","../src/database.ts","../src/logger.ts"],"sourcesContent":["export enum Env {\n LOCAL = 'local',\n DEV = 'dev',\n STAGE = 'stage',\n PROD = 'prod',\n}\n","import { createCommand } from 'commander';\n\nimport { Env } from './env.js';\n\nexport interface CommandArgsWithEnv {\n env: Env;\n}\n\nexport const createCommandWithEnv = (name: string) => createCommand(name)\n .option('--env <env>', 'Environment where commands will be executed', Env.LOCAL);\n","import { readFile, stat } from 'fs/promises';\nimport { join } from 'path';\nimport { parse } from 'yaml';\n\nexport interface DatabaseConfig {\n host: string;\n port: number;\n user: string;\n pass: string;\n db: string;\n ssl?: boolean;\n}\n\nexport interface WithEnv<T> {\n local: T;\n dev: T;\n stage: T;\n prod: T;\n}\n\nexport interface CliConfig {\n database: WithEnv<DatabaseConfig>;\n}\n\nlet cliConfig: CliConfig | undefined;\nexport const getConfig = async <T extends CliConfig>(): Promise<T> => {\n if (cliConfig) {\n return cliConfig as T;\n }\n\n const localConfigFile = join(process.cwd(), '/cli.config.yml');\n\n let configFile = '';\n try {\n await stat(localConfigFile);\n configFile = localConfigFile;\n } catch {\n throw new Error('Can`t find config.yml file in project root directory');\n }\n\n cliConfig = parse(\n await readFile(configFile, {\n encoding: 'utf-8',\n }),\n ) as CliConfig;\n\n return cliConfig as T;\n};\n","import { default as knex } from 'knex';\n\nimport { getConfig } from './config.js';\nimport { type Env } from './env.js';\n\ninterface KnexClientOptions {\n env: Env;\n}\n\nexport const createKnexClient = async (opts: KnexClientOptions) => {\n const appConfig = await getConfig();\n const dbConfig = appConfig.database[opts.env];\n\n return knex({\n client: 'pg',\n connection: {\n host: dbConfig.host,\n port: dbConfig.port,\n user: dbConfig.user,\n password: dbConfig.pass,\n database: dbConfig.db,\n ssl: dbConfig.ssl ? { rejectUnauthorized: false } : undefined,\n },\n });\n};\n","import { isObject } from '@pcg/predicates';\nimport clc from 'cli-color';\nimport {\n createLogger, format,\n type Logger, transports,\n} from 'winston';\n\ntype ColorFn = (text: string) => string;\n\nconst colorScheme: Record<string, ColorFn> = {\n info: clc.greenBright as ColorFn,\n error: clc.red as ColorFn,\n warn: clc.yellow as ColorFn,\n debug: clc.magentaBright as ColorFn,\n};\n\nexport interface UseCliLoggerOpts {\n name: string;\n}\n\nexport const useLogger = (opts: UseCliLoggerOpts): Logger => {\n const { name } = opts;\n\n const plainText = format.printf(({\n level,\n message,\n timestamp,\n }) => {\n const color: ColorFn = colorScheme[level] ?? ((text: string): string => text);\n\n let msg: string = typeof message === 'string' ? message : '';\n if (isObject(message)) {\n msg = JSON.stringify(message, null, 2);\n }\n\n const sTimestamp = typeof timestamp === 'string' ? timestamp : '';\n const sLevel = color(level.toUpperCase().padEnd(5));\n const sName = (clc.yellow as ColorFn)(`[${name}]`);\n const sMessage = color(msg);\n\n return `${sTimestamp} ${sLevel} ${sName} ${sMessage}`;\n });\n\n return createLogger({\n level: 'debug',\n transports: [\n new transports.Console(),\n ],\n format: format.combine(\n format.timestamp(),\n plainText,\n ),\n });\n};\n"],"mappings":";;;;;;;;;;AAAA,IAAY,sCAAL;AACL;AACA;AACA;AACA;;;;;;ACIF,MAAa,wBAAwB,SAAiB,cAAc,KAAK,CACtE,OAAO,eAAe,+CAA+C,IAAI,MAAM;;;;ACelF,IAAIA;AACJ,MAAa,YAAY,YAA6C;AACpE,KAAI,UACF,QAAO;CAGT,MAAM,kBAAkB,KAAK,QAAQ,KAAK,EAAE,kBAAkB;CAE9D,IAAI,aAAa;AACjB,KAAI;AACF,QAAM,KAAK,gBAAgB;AAC3B,eAAa;SACP;AACN,QAAM,IAAI,MAAM,uDAAuD;;AAGzE,aAAY,MACV,MAAM,SAAS,YAAY,EACzB,UAAU,SACX,CAAC,CACH;AAED,QAAO;;;;;ACrCT,MAAa,mBAAmB,OAAO,SAA4B;CAEjE,MAAM,YADY,MAAM,WAAW,EACR,SAAS,KAAK;AAEzC,QAAO,KAAK;EACV,QAAQ;EACR,YAAY;GACV,MAAM,SAAS;GACf,MAAM,SAAS;GACf,MAAM,SAAS;GACf,UAAU,SAAS;GACnB,UAAU,SAAS;GACnB,KAAK,SAAS,MAAM,EAAE,oBAAoB,OAAO,GAAG;GACrD;EACF,CAAC;;;;;ACdJ,MAAMC,cAAuC;CAC3C,MAAM,IAAI;CACV,OAAO,IAAI;CACX,MAAM,IAAI;CACV,OAAO,IAAI;CACZ;AAMD,MAAa,aAAa,SAAmC;CAC3D,MAAM,EAAE,SAAS;CAEjB,MAAM,YAAY,OAAO,QAAQ,EAC/B,OACA,SACA,gBACI;EACJ,MAAMC,QAAiB,YAAY,YAAY,SAAyB;EAExE,IAAIC,MAAc,OAAO,YAAY,WAAW,UAAU;AAC1D,MAAI,SAAS,QAAQ,CACnB,OAAM,KAAK,UAAU,SAAS,MAAM,EAAE;AAQxC,SAAO,GALY,OAAO,cAAc,WAAW,YAAY,GAK1C,GAJN,MAAM,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,CAIpB,GAHhB,IAAI,OAAmB,IAAI,KAAK,GAAG,CAGV,GAFvB,MAAM,IAAI;GAG3B;AAEF,QAAO,aAAa;EAClB,OAAO;EACP,YAAY,CACV,IAAI,WAAW,SAAS,CACzB;EACD,QAAQ,OAAO,QACb,OAAO,WAAW,EAClB,UACD;EACF,CAAC"}
|