The Wayback Machine - https://web.archive.org/web/20201126202002/https://github.com/jalal246/get-info
Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 
 
 
 
 

README.md

get-info

Utility functions extract project(s) Json by providing> project root path or package names.

get-info Works with monorepos ./packages/**/ as well as for a single package project ./myFiles.

npm install get-info

API

getJsonByName

Extracts package json, and resolved path for each project name. If names are not passed, it returns all json objects can be found in ./packages/**/package.json or ./package json

getJsonByName(...packNames?string)

The result object:

  • json: Array <packJson> - Contains objects of all retrieved package.json based on given names
  • pkgInfo: Array <packPath> - Contains objects of package paths based on package name
const { json, pkgInfo } = getJsonByName(...names);

Example(1)

import { getJsonByName } from "get-info";

// workspace
// │
// ├───foo
// │   ├───src
// │   └───package.json
// ├───bar
// │   ├───src
// │   └───package.json
// ├───foobar
// │   ├───src
// │

const { json, pkgInfo } = getJsonByName("foo", "bar");

// json = [
//   { name: "foo", version: "1.0.0", main: "index.js" },
//   { name: "bar", version: "2.1.1", main: "bundle.js" },
// ];

// pkgInfo = {
//   foo: { path: "path/to/foo" },
//   bar: { path: "path/to/bar" },
// };

What if passed invalid name? It returns empty array []

Example(2)

// workspace
// │
// ├───foo
// │   ├───src
// │   └───package.json
// ├───bar
// │   ├───src
// │   └───package.json
// ├───foobar
// │   ├───src
// │

const { json, pkgInfo } = getJsonByName("baz");

// json =[]

if (json.length === 0) console.log("do something");

getJsonByPath

Extracts package json, and its associated resolved path. If paths are not passed, it returns all json objects can be found in ./packages/**/package.json or ./package.json

getJsonByPath(...paths?string)

The result object:

  • json: Array <packJson> - Contains objects of all retrieved package.json based on given paths
  • pkgInfo: Array <packPath> - Contains objects of package paths based on package path
  • unfoundJson: Array <string> - List of paths don't have valid package.json
const { json, pkgInfo, unfoundJson } = getJsonByPath(...paths);

Example(3)

import { getJsonByPath } from "get-info";

// workspace
// │
// ├───foo
// │   ├───src
// │   └───package.json
// ├───bar
// │   ├───src
// │   └───package.json
// ├───foobar
// │   ├───src
// │

const { json, pkgInfo, unfoundJson } = getJsonByPath(
  `${__dirname}/foo`,
  `${__dirname}/bar`
);

// json = [
//   { name: "foo", version: "1.0.0", main: "index.js" },
//   { name: "bar", version: "2.1.1", main: "bundle.js" },
// ];

// pkgInfo = {
//   foo: { path: "path/to/foo" },
//   bar: { path: "path/to/bar" },
// };

// unfoundJson = ["path/to/foobar"];

By default, getJsonByPath returns all package in workspace tree.

// workspace
// │
// ├───foo
// │   ├───src
// │   └───package.json
// ├───bar
// │   ├───src
// │   └───package.json
// ├───foobar
// │   └───src
// │
// │───package.json

const { json, pkgInfo, unfoundJson } = getJsonByPath();

// json = [
//   { name: "foo", version: "1.0.0", main: "index.js" },
//   { name: "bar", version: "2.1.1", main: "bundle.js" },
// ];

// pkgInfo = {
//   foo: { path: "path/to/foo" },
//   bar: { path: "path/to/bar" },
// };

// unfoundJson = ["path/to/foobar"];

Tests

npm test

License

This project is licensed under the GPL-3.0 License

Related projects

You can’t perform that action at this time.