cloverfield
Advanced tools
Comparing version 0.3.0 to 0.4.0
#! /usr/bin/env node | ||
'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'); } }; })(); | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | ||
@@ -18,4 +22,2 @@ | ||
var _findScaffolds2 = _interopRequireDefault(_findScaffolds); | ||
var _commandsBuild = require('./commands/build'); | ||
@@ -25,6 +27,18 @@ | ||
var _npm = require('npm'); | ||
var _npm2 = _interopRequireDefault(_npm); | ||
var parser = (0, _nomnom2['default'])(); | ||
Promise.all([(0, _findScaffolds2['default'])()['catch'](console.error.bind(console)).then(_commandsBuild2['default'])]).then((0, _cloverfield2['default'])(parser)).then(function () { | ||
Promise.all([Promise.all([(0, _findScaffolds.findLocal)(_npm2['default'])(), (0, _findScaffolds.findGlobal)(_npm2['default'])()])['catch'](console.error.bind(console)) | ||
// Prefer local packages over global | ||
.then(function (_ref) { | ||
var _ref2 = _slicedToArray(_ref, 2); | ||
var local = _ref2[0]; | ||
var global = _ref2[1]; | ||
return _extends({}, global, local); | ||
}).then(_commandsBuild2['default'])]).then((0, _cloverfield2['default'])(parser)).then(function () { | ||
return parser.parse(); | ||
}); |
@@ -7,4 +7,10 @@ 'use strict'; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | ||
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } | ||
var _path = require('path'); | ||
var _path2 = _interopRequireDefault(_path); | ||
exports['default'] = function (scaffolds) { | ||
@@ -29,3 +35,6 @@ var command = 'build'; | ||
return require(scaffolds[scaffold])(opts); | ||
var packageJson = require(_path2['default'].join(scaffolds[scaffold], 'package.json')); | ||
var cli = require(_path2['default'].join(scaffolds[scaffold], packageJson.main)); | ||
return cli(opts); | ||
}; | ||
@@ -32,0 +41,0 @@ |
@@ -9,16 +9,9 @@ 'use strict'; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
var _npm = require('npm'); | ||
var _npm2 = _interopRequireDefault(_npm); | ||
var isScaffold = function isScaffold(_ref2) { | ||
var _ref2$keywords = _ref2.keywords; | ||
var keywords = _ref2$keywords === undefined ? [] : _ref2$keywords; | ||
var _ref2$name = _ref2.name; | ||
var name = _ref2$name === undefined ? '' : _ref2$name; | ||
return name.substr(0, 3) === 'cf-' || keywords.indexOf('cloverfield-scaffold') !== -1 || keywords.indexOf('cloverfield') !== -1 && keywords.indexOf('scaffold') !== -1; | ||
var name = _ref2.name; | ||
return name && (name.substr(0, 3) === 'cf-' || keywords.indexOf('cloverfield-scaffold') !== -1 || keywords.indexOf('cloverfield') !== -1 && keywords.indexOf('scaffold') !== -1); | ||
}; | ||
@@ -44,10 +37,12 @@ | ||
var loaded = function loaded(resolve, reject) { | ||
return function (error) { | ||
if (error) { | ||
return reject(error); | ||
} | ||
var loaded = function loaded(npm) { | ||
return function (resolve, reject) { | ||
return function (error) { | ||
if (error) { | ||
return reject(error); | ||
} | ||
// List all npm dependencies | ||
return _npm2['default'].commands.ls([], true, modulesReady(resolve, reject)); | ||
// List all npm dependencies | ||
return npm.commands.ls([], true, modulesReady(resolve, reject)); | ||
}; | ||
}; | ||
@@ -57,12 +52,23 @@ }; | ||
// TODO: add caching | ||
var findScaffolds = function findScaffolds() { | ||
return( | ||
// Configure npm to search for dependencies globally with minimal depth | ||
new Promise(function () { | ||
return _npm2['default'].load({ global: true, silent: true, depth: 0 }, loaded.apply(undefined, arguments)); | ||
}) | ||
); | ||
var findScaffolds = function findScaffolds(npm) { | ||
return function (options) { | ||
return function () { | ||
return( | ||
// Configure npm to search for dependencies globally or locally with minimal depth | ||
new Promise(function () { | ||
return npm.load(_extends({ silent: true, depth: 0 }, options), loaded(npm).apply(undefined, arguments)); | ||
}) | ||
); | ||
}; | ||
}; | ||
}; | ||
exports['default'] = findScaffolds; | ||
module.exports = exports['default']; | ||
var findLocal = function findLocal(npm) { | ||
return findScaffolds(npm)({ global: false }); | ||
}; | ||
exports.findLocal = findLocal; | ||
var findGlobal = function findGlobal(npm) { | ||
return findScaffolds(npm)({ global: true }); | ||
}; | ||
exports.findGlobal = findGlobal; |
{ | ||
"name": "cloverfield", | ||
"version": "0.3.0", | ||
"version": "0.4.0", | ||
"description": "A next generation JavaScript project boilerplate", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -53,3 +53,3 @@ # Cloverfield Boilerplate Scaffold Generator [![Circle CI](https://circleci.com/gh/cloverfield-tools/cloverfield.svg?style=svg)](https://circleci.com/gh/cloverfield-tools/cloverfield) | ||
Generator discovery is a big problem. With so many different combinations of technology available, which one should you choose? There is no obvious solution, and you will spend a lot of time investigation possibilities which are not good enough. | ||
Generator discovery is a big problem. With so many different combinations of technology available, which one should you choose? There is no obvious solution, and you will spend a lot of time investigating possibilities which are not good enough. | ||
@@ -56,0 +56,0 @@ |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
24509
132
0
2