All Projects → cutenode → mingine

cutenode / mingine

Licence: MIT license
A module to get the minimum usable engine(s)

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to mingine

validate-npm-package
Validate a package.json file
Stars: ✭ 35 (+105.88%)
Mutual labels:  package-json
mapi-action
🤖 Run a Mayhem for API scan in GitHub Actions
Stars: ✭ 16 (-5.88%)
Mutual labels:  reliability
xk6-chaos
xk6 extension for running chaos experiments with k6 💣
Stars: ✭ 18 (+5.88%)
Mutual labels:  reliability
OpenCossan
OpenCossan is an open and free toolbox for uncertainty quantification and management.
Stars: ✭ 40 (+135.29%)
Mutual labels:  reliability
vigor
Main repository of the Vigor NF verification project.
Stars: ✭ 40 (+135.29%)
Mutual labels:  reliability
CalibrationErrors.jl
Estimation of calibration errors.
Stars: ✭ 13 (-23.53%)
Mutual labels:  reliability
package-info.nvim
✍️ All the npm/yarn commands I don't want to type
Stars: ✭ 248 (+1358.82%)
Mutual labels:  package-json
executor
A powerful "short-cutter" to your console to you and your team!
Stars: ✭ 21 (+23.53%)
Mutual labels:  package-json
engems
Rails component-based architecture on top of engines and gems (showroom)
Stars: ✭ 121 (+611.76%)
Mutual labels:  engines
select-run
A CLI tool to interactively search & select one or many package.json npm scripts to run
Stars: ✭ 29 (+70.59%)
Mutual labels:  package-json
npmtooling
This is the repository for my course, Tooling with NPM Scripts on LinkedIn Learning and Lynda.com.
Stars: ✭ 13 (-23.53%)
Mutual labels:  package-json
opsani-ignite
Evaluate and improve the reliability, performance and efficiency of your Kubernetes applications.
Stars: ✭ 17 (+0%)
Mutual labels:  reliability
optimize-ubuntu
Optimize Ubuntu for usability, security, privacy and stability
Stars: ✭ 15 (-11.76%)
Mutual labels:  reliability
shoulders
💛 Quickly view a list of your dependencies' open issues.
Stars: ✭ 62 (+264.71%)
Mutual labels:  package-json
get-bin-path
Get the current package's binary path
Stars: ✭ 25 (+47.06%)
Mutual labels:  package-json
Spatial.Engine
[WIP] Spatial is a cross-platform C++ game engine.
Stars: ✭ 50 (+194.12%)
Mutual labels:  engines
generate-package-json-webpack-plugin
Generates a package.json file containing the external modules used by your webpack bundle
Stars: ✭ 59 (+247.06%)
Mutual labels:  package-json
pylife
a general library for fatigue and reliability
Stars: ✭ 45 (+164.71%)
Mutual labels:  reliability
upgreat
CLI for a painless way to upgrade your package.json dependencies!
Stars: ✭ 47 (+176.47%)
Mutual labels:  package-json
airbud
Retrieving stuff from the web is unreliable. Airbud adds retries for production, and fixture support for test.
Stars: ✭ 15 (-11.76%)
Mutual labels:  reliability

mingine

A Node.js module to understand your dependencies engines.

Usage

First, you'll need to install mingine:

npm i mingine

Next, you'll want to require and use mingine. Requring mingine returns a promise that resolves an object.

const mingine = require('mingine')

async function getNodeMinimumEngine () {
  const engines = await mingine() // mingine returns a promise

  console.log(engines.node ? engines.node.minimum : undefined) // will log the minimum usable version of node.js if there were any `engines` that included `node`, otherwise it'll return undefined
}

getNodeMinimumEngine()

mingine(options)

  • options object (optional) - An object that acts as a courrier of options to Arborist. Currently, only path is actively used.
    • path string (optional) - where to search for node_modules. defaults to the current working directory.

Returns promise - a promise that resolves an object, which represents the strucutre of engines. See [Returned Object Structure][] for more context on the shape of this object.

Calling mingine() by itself will return a promise that resolves an object. It searches the current working directory's node_modules to do so. Calling mingine(options) where options is an object and has the property path, the value of path will be used as the directory to search for node_modules.

Returned Object Structure

The structure of mingine's API is consistent, but the properties will not be. Mingine collects the engine property from every package inside of node_modules and then dynamically builds an object that includes every property within engines it encountered. It makes no assurances that any given property will exist since there's no gaurantee that a property may exist within node_modules.

The general structure will be:

  • ${engineName} object - an object where the key is the name encountered inside of the engines property of a given package.json. Examples: node, npm

    • versions object - an object that will always be identified as versions that contains arrays that represent each ${version} of ${engineName}
      • ${version} array - an array where the key is either a valid semver version OR any other string - even if it's not a valid semver version - since people do weird things with engines. In the future this may be tweaked/audited. Examples: 1.4.2, 10.0.0, 8.2.0
        • ${package} string - strings that represent the package names of packages that included ${version} as the value for ${engineName} in their package.json. Examples: webpack, react, qs, request
    • minimum string - a string that includes the minimum usable version of ${engineName} given the context collected from the engines property of all package.json files within node_modules.

    An example of JSON output can be found at ./examples/everything-output.json

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].