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

    Install

    npm i get-info

    DownloadsWeekly Downloads

    16

    Version

    2.4.5

    License

    LGPL-3.0

    Unpacked Size

    45.3 kB

    Total Files

    8

    Last publish

    Collaborators

    • jimmy02020