New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

app-spec

Package Overview
Dependencies
Maintainers
1
Versions
50
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

app-spec - npm Package Compare versions

Comparing version 0.11.3 to 0.11.4

27

index.js

@@ -7,13 +7,13 @@

const mapMetas = metas => Object.keys(metas).map(key => {
const mapMetas = (metas, env) => Object.keys(metas).map(key => {
const meta = metas[key];
meta.key = key;
if (objecta.hasFunction(meta, 'requiredEnv')) {
objecta.setBoolean(meta, 'required', meta.requiredEnv(process.env));
objecta.setBoolean(meta, 'required', meta.requiredEnv(env));
}
if (meta.defaults) {
const envDefault = meta.defaults[process.env.NODE_ENV];
const envDefault = meta.defaults[env.NODE_ENV];
if (envDefault !== undefined) {
if (meta.default !== undefined) {
console.error(clc.yellow(`Overriding ${key} to '${envDefault}' for '${process.env.NODE_ENV}'`));
console.error(clc.yellow(`Overriding ${key} to '${envDefault}' for '${env.NODE_ENV}'`));
}

@@ -107,3 +107,3 @@ meta.default = envDefault;

module.exports = (pkg, specf, params, options = {}) => {
module.exports = (pkg, specf, envars, options = {}) => {
pkg = Object.assign({}, pkg, {

@@ -120,6 +120,7 @@ lastName: lodash.last(pkg.name.split('/'))

assert(typeof spec.defaults === 'object', 'spec.defaults object');
assert(process.env.NODE_ENV, 'NODE_ENV');
assert(envars.NODE_ENV, 'NODE_ENV');
assert(spec.env, 'spec.env');
spec.env = mapMetas(spec.env);
if (process.env.mode === 'help') {
spec.env = mapMetas(spec.env, envars);
console.error('env', spec.env);
if (envars.mode === 'help') {
console.error(clc.green.bold(spec.description));

@@ -130,4 +131,4 @@ console.error(clc.white.bold('Options:'));

}
const envDefaults = spec.defaults[process.env.NODE_ENV];
const env = reduceMetas(spec.env, process.env, envDefaults);
const envDefaults = spec.defaults[envars.NODE_ENV];
const env = reduceMetas(spec.env, envars, envDefaults);
if (!spec.config) {

@@ -137,7 +138,7 @@ return env;

assert(typeof spec.config === 'function', 'spec.config function of env');
const configMetas = mapMetas(spec.config(env));
if (process.env.mode === 'help') {
const configMetas = mapMetas(spec.config(env), env);
if (env.mode === 'help') {
console.error(formatMetas(configMetas).join('\n'));
}
return reduceMetas(configMetas, process.env, env);
return reduceMetas(configMetas, env, env);
} catch (err) {

@@ -144,0 +145,0 @@ console.error(clc.green.bold(spec.description));

{
"name": "app-spec",
"version": "0.11.3",
"version": "0.11.4",
"description": "Get application configuration from spec of required environment variables.",

@@ -17,4 +17,4 @@ "main": "index.js",

"dependencies": {
"objecta": "^0.1.2"
"objecta": "^0.1.4"
}
}
const appSpec = require('./index.js');
const context = appSpec(
require('./package.json'),
pkg => ({
description: pkg.description,
env: {
field: {
description: 'the field name for hashes',
requiredEnv: env => ['hget'].includes(env.command)
},
command: {
description: 'the command to perform',
options: ['del', 'hkeys', 'hgetall', 'llen', 'hget', 'ttl', 'type', 'expire', 'persist'],
default: 'none'
},
}
}),
{
NODE_ENV: 'development',
command: 'hget',
field: 'some'
}
);
console.log({context});
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