Socket
Socket
Sign inDemoInstall

@geek/config

Package Overview
Dependencies
Maintainers
2
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@geek/config - npm Package Compare versions

Comparing version 0.2.4 to 1.0.1

52

index.js
'use strict';
const fs = require('fs-extra');
const path = require('path');
const _ = require('lodash');
const os = require('os');
const jsonc = require('jsonc-parser');
const fs = require(`fs-extra`);
const path = require(`path`);
const _ = require(`lodash`);
const os = require(`os`);
const jsonc = require(`jsonc-parser`);
const cacheSubDirName = '.';
const cacheSubDirName = `.`;
// TODO: Implement json5, yaml, and yml
// const supportedFileExtensions = [ '.json5', '.yaml', '.yml', '.json' ];
const supportedFileExtensions = [ '.json', '.jsonc' ];
const supportedFileExtensions = [ `.json`, `.jsonc` ];

@@ -20,7 +20,7 @@ class Config {

files: [],
userFilenameSuffix: '.user',
projectFilenameSuffix: '.project',
globalFilenameSuffix: '.global',
systemFilenameSuffix: '.system',
name: 'geek',
userFilenameSuffix: `.user`,
projectFilenameSuffix: `.project`,
globalFilenameSuffix: `.global`,
systemFilenameSuffix: `.system`,
name: `geek`,
onlyFiles: false,

@@ -44,7 +44,7 @@ ...options,

if (_.isString(this.fileExtensions)) {
this.fileExtensions = this.fileExtensions.split(',').map(item => item.trim());
this.fileExtensions = this.fileExtensions.split(`,`).map(item => item.trim());
}
if (_.isString(options.only)) {
options.files = options.only.split(',').map(item => item.trim());
options.files = options.only.split(`,`).map(item => item.trim());
options.onlyFiles = true;

@@ -55,3 +55,3 @@ } else if (_.isArray(options.only)) {

} else if (_.isString(options.files)) {
options.files = options.files.split(',').map(item => item.trim());
options.files = options.files.split(`,`).map(item => item.trim());
}

@@ -64,5 +64,5 @@

if (_.isString(options.profile)) {
options.profiles = options.profile.split(',').map(item => item.trim());
options.profiles = options.profile.split(`,`).map(item => item.trim());
} else if (_.isString(options.profiles)) {
options.profiles = options.profiles.split(',').map(item => item.trim());
options.profiles = options.profiles.split(`,`).map(item => item.trim());
}

@@ -98,3 +98,3 @@

const filePath = path.parse(file);
filePath.dir = filePath.dir.replace('~', os.homedir);
filePath.dir = filePath.dir.replace(`~`, os.homedir);
// console.error(`filePath: ${JSON.stringify(filePath, null, 2)}`);

@@ -184,6 +184,6 @@ addConfigFile(this.getConfigFile({ cwd: filePath.dir, filename: filePath.name, ext: filePath.exports }));

if (!options.cwd) {
throw new Error('options.cwd is required.');
throw new Error(`options.cwd is required.`);
}
if (!options.filename) {
throw new Error('options.filename is required.');
throw new Error(`options.filename is required.`);
}

@@ -206,10 +206,10 @@

switch (ext) {
case '.json':
case '.jsonc':
case `.json`:
case `.jsonc`:
// configFile = fs.readJsonSync(filepath, 'utf8');
const content = fs.readFileSync(filepath, 'utf8');
const content = fs.readFileSync(filepath, `utf8`);
const errors = [];
configFile = jsonc.parse(content, errors, { allowTrailingComma: false });
if (errors.length) {
console.errors(filepath);
console.error(errors);
throw Error(`an error occurred when parsing the file: ${filepath}`);

@@ -223,3 +223,3 @@ }

} catch (error) {
if (error.code === 'ENOENT') {
if (error.code === `ENOENT`) {
return true;

@@ -275,3 +275,3 @@ }

// console.error(`key: ${JSON.stringify(key, null, 2)}`);
const env_var_name = `${this.name.toUpperCase()}_${key.toUpperCase().replace('.', '_')}`;
const env_var_name = `${this.name.toUpperCase()}_${key.toUpperCase().replace(`.`, `_`)}`;
// console.error(`env_var_name: ${JSON.stringify(env_var_name, null, 2)}`);

@@ -278,0 +278,0 @@ const env_var = process.env[env_var_name];

{
"name": "@geek/config",
"version": "0.2.4",
"version": "1.0.1",
"description": "Geek Configuration Manager for Node.js - The complete solution for managing config settings for your Node.js application",

@@ -31,16 +31,17 @@ "keywords": [

"list-files": "npm pack && tar -xvzf *.tgz && rm -rf package *.tgz",
"prepublishOnly": "git pull && bump",
"test": "npm install --ignore-scripts && npm run list-files",
"prepublishOnly2": "git pull && bump",
"prep": "npm install --ignore-scripts",
"test": "npm run prep",
"test2": "node ./bin/cli.js ./tests/test1-json test1 'ios, dev' '{ \"property1\": \"overrides\", \"property2\": \"overrides\"}' '{ \"property8\": \"defaults\", \"property9\": \"defaults\"}'"
},
"dependencies": {
"fs-extra": "^8.1.0",
"lodash": "^4.17.15"
"fs-extra": "^10.0.0",
"lodash": "^4.17.21"
},
"devDependencies": {
"@geek/eslint-config": "0.0.10",
"eslint": "^6.5.1"
"@geek/eslint-config": "1.0.3",
"eslint": "^8.7.0"
},
"engines": {
"node": ">=8.0"
"node": ">=12.16.3"
},

@@ -47,0 +48,0 @@ "maintainers": [

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc