get-info

2.4.5 • Public • Published

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

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 2.4.5
    2
    • latest

Version History

Package Sidebar

Install

npm i get-info

Weekly Downloads

2

Version

2.4.5

License

LGPL-3.0

Unpacked Size

45.3 kB

Total Files

8

Last publish

Collaborators

  • jimmy02020