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

biome

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

biome - npm Package Compare versions

Comparing version 0.2.2 to 0.3.0

4

dist/index.js

@@ -44,4 +44,4 @@ #!/usr/bin/env node

// ----------------------------------------------------------------------------
_commander2.default.command('init [project]').description("Create a new project with the specified name, and save an alias to this folder.").action(project => {
(0, _init2.default)(project).then(project => {
_commander2.default.command('init [project] [template]').description(`Create a new project with the specified name, and save an alias to this folder.`).action((project, template) => {
(0, _init2.default)(project, template).then(project => {
console.log(`Created new project ${ project }. Add new vars with ${ _chalk2.default.green("biome add") } or fire it up with ${ _chalk2.default.green("biome use") }.`.replace('\n', ''));

@@ -48,0 +48,0 @@ }).catch(console.error.bind(console));

@@ -6,2 +6,6 @@ 'use strict';

});
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
exports.default = fetchTemplate;
exports.default = init;

@@ -25,2 +29,10 @@

var _inquirerPromise = require('inquirer-promise');
var _inquirerPromise2 = _interopRequireDefault(_inquirerPromise);
var _requestPromise = require('request-promise');
var _requestPromise2 = _interopRequireDefault(_requestPromise);
var _constants = require('./constants');

@@ -30,44 +42,60 @@

// try to find the local project name
const lookFor = {
'package.json': contents => {
let data = JSON.parse(contents);
return data ? data.name : null;
},
'setup.py': contents => {
let name = contents.match(/name[ ]+=[ ]+['"](.+)['"]/);
return name ? name[1] : null;
// given a template url, return user-populated data.
function fetchTemplate(data) {
if (data && Object.keys(data).length >= 0) {
let keys = Object.keys(data);
return _inquirerPromise2.default.prompt(keys.map(key => {
let value = data[key];
return {
type: "input",
message: `Enter a value for ${ key }`,
name: key,
default: value
};
}));
} else {
console.error("The passed template URL doesn't return JSON. Learn more about template URLs at https://github.com/1egoman/biome/blob/master/resources/templateURL.md");
return;
}
};
function getProjectName() {
let findFirstMatch = [];
for (let key in lookFor) {
findFirstMatch.push(asyncCheck(_path2.default.join(process.cwd(), key), lookFor[key]));
console.log(_path2.default.join(process.cwd(), key));
}
}
function asyncCheck(key, value) {
return _fsPromise2.default.readFile(key).then(value);
}
function init(project, template) {
let biomeFile = _path2.default.join(process.cwd(), (0, _constants.biomeLocalName)());
return _bluebird2.default.any(findFirstMatch);
}
// step 0: Read the Biomefile and see if there's a template
return _fsPromise2.default.readJSON(biomeFile).catch(error => {
return {}; // No biomefile
}).then(biomefile => {
project = biomefile.project || project;
function init(project) {
// step 0: determine project name
if (typeof project !== "string") {
return getProjectName().then(init);
} else if (project.trim().length === 0) {
console.error("No project name was specified or found. Please specify one manually.");
} else {
if (project.length === 0) {
console.error("Project names need to be at least 1 character long.");
throw new Error("Project names need to be at least 1 character long.");
}
if (template || typeof biomefile.template === "string") {
// a template url
return (0, _requestPromise2.default)(template || biomefile.template).then(JSON.parse).then(fetchTemplate);
} else if (biomefile.template) {
return fetchTemplate(biomefile.template);
} else {
// no template
return _bluebird2.default.resolve({});
}
}).then(data => {
// step 1: write stuff to local Biomefile
let biomeFile = _path2.default.join(process.cwd(), (0, _constants.biomeLocalName)());
return _fsPromise2.default.writeFile(biomeFile, JSON.stringify({
name: project
}, null, 2)).then(file => {
// step 2: write creds file in the ~/.biome folder
let biomeProject = _path2.default.join((0, _constants.biomeFolderName)(), `${ project }.json`);
return _fsPromise2.default.writeFile(biomeProject, "{}").then(f => project);
});
}
return _bluebird2.default.all([data, _fsPromise2.default.writeFile(biomeFile, JSON.stringify({
name: project,
template
}, null, 2))]);
}).then(_ref => {
var _ref2 = _slicedToArray(_ref, 2);
let data = _ref2[0];
let file = _ref2[1];
// step 2: write creds file in the ~/.biome folder
let biomeProject = _path2.default.join((0, _constants.biomeFolderName)(), `${ project }.json`);
return _fsPromise2.default.writeFile(biomeProject, JSON.stringify(data, null, 2));
}).then(f => project);
}
{
"name": "biome",
"version": "0.2.2",
"version": "0.3.0",
"description": "A simple way to manage environment variables on a per-project basis",

@@ -37,2 +37,4 @@ "main": "src/index.js",

"fs-promise": "^0.5.0",
"inquirer-promise": "0.0.3",
"request-promise": "^3.0.0",
"untildify": "^3.0.2",

@@ -39,0 +41,0 @@ "user-home": "^2.0.0"

@@ -80,2 +80,17 @@ ![Biome: a small script to manage a user's environment variables](https://raw.githubusercontent.com/1egoman/biome/master/resources/hero.png)

"environment", "here"]`.
- Easily give new users a simple way to enter values. Within the `Biomefile`, define a property
called `template`. Each key of `template` should be the variable name, while each value should be
its default value. For example:
```json
{
"name": "my-project",
"template": {
"KEY": "value"
}
}
```
Then, when the user runs `biome init`, they'll be prompted for the values specified. Above, they'd
be prompted for `KEY`, and given a default choice of "value".
- Don't want to hardcode templates into a project? As an argument to `biome init`, specify a
template url after the project name, like `biome init project http://example.com/template.json`.

@@ -82,0 +97,0 @@

@@ -19,6 +19,6 @@ #!/usr/bin/env node

program
.command('init [project]')
.description("Create a new project with the specified name, and save an alias to this folder.")
.action(project => {
init(project).then(project => {
.command('init [project] [template]')
.description(`Create a new project with the specified name, and save an alias to this folder.`)
.action((project, template) => {
init(project, template).then(project => {
console.log(`Created new project ${project}. Add new vars with ${chalk.green("biome add")} or fire it up with ${chalk.green("biome use")}.`.replace('\n', ''));

@@ -25,0 +25,0 @@ }).catch(console.error.bind(console));

@@ -5,50 +5,65 @@ import fs from 'fs-promise';

import untildify from 'untildify';
import inquirer from 'inquirer-promise';
import request from 'request-promise';
import {biomeLocalName, biomeFolderName} from './constants';
// try to find the local project name
const lookFor = {
'package.json': contents => {
let data = JSON.parse(contents);
return data ? data.name : null;
},
'setup.py': contents => {
let name = contents.match(/name[ ]+=[ ]+['"](.+)['"]/);
return name ? name[1] : null;
},
};
function getProjectName() {
let findFirstMatch = [];
for (let key in lookFor) {
findFirstMatch.push(asyncCheck(path.join(process.cwd(), key), lookFor[key]));
console.log(path.join(process.cwd(), key))
// given a template url, return user-populated data.
export default function fetchTemplate(data) {
if (data && Object.keys(data).length >= 0) {
let keys = Object.keys(data);
return inquirer.prompt(keys.map(key => {
let value = data[key];
return {
type: "input",
message: `Enter a value for ${key}`,
name: key,
default: value,
};
}));
} else {
console.error("The passed template URL doesn't return JSON. Learn more about template URLs at https://github.com/1egoman/biome/blob/master/resources/templateURL.md");
return;
}
}
function asyncCheck(key, value) {
return fs.readFile(key).then(value);
}
export default function init(project, template) {
let biomeFile = path.join(process.cwd(), biomeLocalName());
return Promise.any(findFirstMatch);
}
// step 0: Read the Biomefile and see if there's a template
return fs.readJSON(biomeFile).catch(error => {
return {}; // No biomefile
}).then(biomefile => {
project = biomefile.project || project;
export default function init(project) {
// step 0: determine project name
if (typeof project !== "string") {
return getProjectName().then(init);
} else if (project.trim().length === 0) {
console.error("No project name was specified or found. Please specify one manually.");
} else {
if (project.length === 0) {
console.error("Project names need to be at least 1 character long.");
throw new Error("Project names need to be at least 1 character long.");
}
if (template || typeof biomefile.template === "string") {
// a template url
return request(template || biomefile.template).then(JSON.parse).then(fetchTemplate);
} else if (biomefile.template) {
return fetchTemplate(biomefile.template);
} else {
// no template
return Promise.resolve({});
}
}).then(data => {
// step 1: write stuff to local Biomefile
let biomeFile = path.join(process.cwd(), biomeLocalName());
return fs.writeFile(
biomeFile,
JSON.stringify({
name: project,
}, null, 2)
).then(file => {
// step 2: write creds file in the ~/.biome folder
let biomeProject = path.join(biomeFolderName(), `${project}.json`);
return fs.writeFile(biomeProject, "{}").then(f => project);
});
}
return Promise.all([data,
fs.writeFile(
biomeFile,
JSON.stringify({
name: project,
template,
}, null, 2)
),
]);
}).then(([data, file]) => {
// step 2: write creds file in the ~/.biome folder
let biomeProject = path.join(biomeFolderName(), `${project}.json`);
return fs.writeFile(biomeProject, JSON.stringify(data, null, 2));
}).then(f => project);
}
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