# @mnrendra/read-stacked-json

> Read the stacked JSON file from any sub-directory in your project.

Latest version **1.6.3** (published 2025-03-03) · MIT license · 0 weekly downloads

## Install

```sh
npm install @mnrendra/read-stacked-json
pnpm add @mnrendra/read-stacked-json
yarn add @mnrendra/read-stacked-json
bun add @mnrendra/read-stacked-json
```

## Health

**Score 30/100 (F)** — status: maintenance-mode.

Positive: has types; no vulnerabilities.

Warnings: low downloads; no esm support.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.6.3 |
| Published | 2025-03-03 |
| First published | 2024-06-13 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 14.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Author | Muhammad Rendra |
| Maintainers | mnrendra |
| Keywords | read, stacked, json, file, read-stacked-json, read-stacked-json-file, stacked-json, stacked-json-file, stack-trace |

## Links

- npm: https://www.npmjs.com/package/@mnrendra/read-stacked-json
- Repository: https://github.com/mnrendra/read-stacked-json
- Homepage: https://github.com/mnrendra/read-stacked-json#readme
- Issues: https://github.com/mnrendra/read-stacked-json/issues
- npm.io page: https://npm.io/package/@mnrendra/read-stacked-json

## Dependencies (2)

- [json5](https://npm.io/package/json5.md) ^2.2.3
- [@mnrendra/read-stacked-file](https://npm.io/package/@mnrendra/read-stacked-file.md) ^1.5.3

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 1.6.3 (latest) — 2025-03-03
- 1.6.2 — 2025-03-02
- 1.6.1 — 2024-11-14
- 1.6.0 — 2024-11-13
- 1.5.0 — 2024-07-08
- 1.4.1 — 2024-07-07
- 1.4.0 — 2024-07-07
- 1.3.0 — 2024-07-06
- 1.2.0 — 2024-06-19
- 1.1.0 — 2024-06-18
- 1.0.0 — 2024-06-13

## README

# @mnrendra/read-stacked-json
Read the stacked JSON file from any sub-directory in your project.

## Install
```bash
npm i @mnrendra/read-stacked-json
```

## Usage

Using `CommonJS`:
```javascript
const { read, readSync } = require('@mnrendra/read-stacked-json')

// Asynchronously
read('file.json')
  .then((data) => {
    console.log('asynchronously:', data)
  })

// Synchronously
const data = readSync('file.json')
console.log('synchronously:', data)
```

Using `ES Module`:
```javascript
import { read, readSync } from '@mnrendra/read-stacked-json'

// Asynchronously
read('file.json')
  .then((data) => {
    console.log('asynchronously:', data)
  })

// Synchronously
const data = readSync('file.json')
console.log('synchronously:', data)
```

### Examples

#### 1. Read the `package.json` file in your development project:
Assuming your project's `~/project-name/package.json` file is as follows:
```json
{
  "name": "project-name",
  "version": "1.0.0"
}
```

Then, you can access and read the `~/project-name/package.json` file from any directory within your project.<br/>
Here are some examples:<br/>

##### • Read from `~/project-name/src/index.js`:
```javascript
const { readSync } = require('@mnrendra/read-stacked-json')

// Synchronously
const { name, version } = readSync('package.json')
console.log('synchronously:', name, version) // Output: synchronously: project-name 1.0.0
```

##### • Read from `~/project-name/src/any-directory/index.mjs`:
```javascript
import { read } from '@mnrendra/read-stacked-json'

// Asynchronously
read('package.json')
  .then(({ name, version }) => {
    console.log('asynchronously:', name, version) // Output: asynchronously: project-name 1.0.0
  })
```

#### 2. Read the `package.json` file in your published module:
Assuming your module is installed in the `/consumer/node_modules/module-name/` directory and the `package.json` file for your module located at `/consumer/node_modules/module-name/package.json` is as follows:
```json
{
  "name": "module-name",
  "version": "1.0.0"
}
```

Then, you can access and read your `package.json` file from any directory within your module.<br/>
Here are some examples:<br/>

##### • Read from `/consumer/node_modules/module-name/dist/index.js`:
```javascript
"use strict";
const { readSync } = require('@mnrendra/read-stacked-json');

// Synchronously
const { name, version } = readSync('package.json');
console.log('synchronously:', name, version); // Output: synchronously: module-name 1.0.0
```

##### • Read from `/consumer/node_modules/module-name/dist/any-directory/index.js`:
```javascript
"use strict";
const { read } = require('@mnrendra/read-stacked-json');

// Asynchronously
read('package.json')
  .then(({ name, version }) => {
    console.log('asynchronously:', name, version); // Output: asynchronously: module-name 1.0.0
  });
```

## Options
### • `isJSON5`
*type: `boolean`*<br/>
*default: `false`*<br/>
To tell the parser to parse using native `JSON` or `JSON5`.
### • `skippedStacks`
*type: `string|string[]`*<br/>
*default: `[]`*<br/>
A name or a list of names of stack traces that need to be skipped.
### • `stackTraceLimit`
*type: `number`*<br/>
*default: `10`*<br/>
The `Error.stackTraceLimit` property specifies the number of stack frames to be collected by a stack trace.
### • `useCWD`
*type: `boolean`*<br/>
*default: `false`*<br/>
If set to `true`, it will use `process.cwd()` instead of `@mnrendra/read-stacked-file` to get the target path.

## Utilities
```javascript
import {
  validateSkippedStacks // To validate a name or a list of names of stack traces that need to be skipped. More info: @see https://github.com/mnrendra/validate-skipped-stacks
} from '@mnrendra/read-stacked-json'
```

## Types
```typescript
import type {
  Options, // @mnrendra/read-stacked-json options
  SkippedStacks, // @mnrendra/validate-skipped-stacks input
  ValidSkippedStacks // @mnrendra/validate-skipped-stacks output
} from '@mnrendra/read-stacked-json'
```

## License
[MIT](https://github.com/mnrendra/read-stacked-json/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)

---
_Source: https://npm.io/package/@mnrendra/read-stacked-json · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
