Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jalal246/get-info
Extracting and parsing data for project production works on a root directory with submodule/monorepo
https://github.com/jalal246/get-info
build build-tool dev-ops extracts filesystem-library filter fs get-info json json-objects monorepo monorepos production read-file recursive sort-files textics tools utility-library
Last synced: 2 months ago
JSON representation
Extracting and parsing data for project production works on a root directory with submodule/monorepo
- Host: GitHub
- URL: https://github.com/jalal246/get-info
- Owner: jalal246
- License: gpl-3.0
- Created: 2020-02-12T15:35:10.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-09-22T02:40:05.000Z (over 2 years ago)
- Last Synced: 2024-10-11T17:29:48.162Z (2 months ago)
- Topics: build, build-tool, dev-ops, extracts, filesystem-library, filter, fs, get-info, json, json-objects, monorepo, monorepos, production, read-file, recursive, sort-files, textics, tools, utility-library
- Language: JavaScript
- Homepage: https://jalal246.github.io/get-info/
- Size: 154 KB
- Stars: 7
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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`.
```bash
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````js
getJsonByName(...packNames?string)
```The result object:
- `json: Array ` - Contains objects of all retrieved package.json based on given names
- `pkgInfo: Array ` - Contains objects of package paths based on package name```js
const { json, pkgInfo } = getJsonByName(...names);
```#### Example(1)
```js
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)
```js
// 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````js
getJsonByPath(...paths?string)
```The result object:
- `json: Array ` - Contains objects of all retrieved package.json based on given paths
- `pkgInfo: Array ` - Contains objects of package paths based on package path
- `unfoundJson: Array ` - List of paths don't have valid package.json```js
const { json, pkgInfo, unfoundJson } = getJsonByPath(...paths);
```#### Example(3)
```js
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.
```js
// workspace
// │
// ├───foo
// │ ├───src
// │ └───package.json
// ├───bar
// │ ├───src
// │ └───package.json
// ├───foobar
// │ └───src
// │
// │───package.jsonconst { 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
```sh
npm test
```## License
This project is licensed under the [GPL-3.0 License](https://github.com/jalal246/get-info/blob/master/LICENSE)
### Related projects
- [validate-access](https://github.com/jalal246/validate-access) - Validate
project accessibility files- [packageSorter](https://github.com/jalal246/packageSorter) - Sorts a group of
packages that depends on each other.- [builderz](https://github.com/jalal246/builderz) - JavaScript Bundler with zero configuration.
- [corename](https://github.com/jalal246/corename) - Extracts package name.
- [move-position](https://github.com/jalal246/move-position) - Moves element
index in an array.- [textics](https://github.com/jalal246/textics) & [textics-stream](https://github.com/jalal246/textics-stream) - Counts lines, words, chars and spaces for a given string.
- [folo](https://github.com/jalal246/folo) - Form & Layout Components Built with
React.