JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4
  • Score
    100M100P100Q53482F
  • License MIT

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

Package Exports

  • @mnrendra/read-stacked-file
  • @mnrendra/read-stacked-file/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@mnrendra/read-stacked-file) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@mnrendra/read-stacked-file

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

Install

npm i @mnrendra/read-stacked-file

Usage

Using CommonJS:

const { read, readSync } = require('@mnrendra/read-stacked-file')

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

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

Using ES Module:

import { read, readSync } from '@mnrendra/read-stacked-file'

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

// Synchronously
const data = readSync('file.name')
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:

{
  "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.
Here are some examples:

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

// Synchronously
const data = readSync('package.json')
const { name, version } = JSON.parse(data)
console.log('synchronously:', name, version) // Output: synchronously: project-name 1.0.0
• Read from ~/project-name/src/any-directory/index.mjs:
import { read } from '@mnrendra/read-stacked-file'

// Asynchronously
read('package.json')
  .then((data) => {
    const { name, version } = JSON.parse(data)
    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:

{
  "name": "module-name",
  "version": "1.0.0"
}

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

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

// Synchronously
const data = readSync('package.json');
const { name, version } = JSON.parse(data)
console.log('synchronously:', name, version); // Output: synchronously: module-name 1.0.0
• Read from /consumer/node_modules/module-name/dist/any-directory/index.js:
"use strict";
const { read } = require('@mnrendra/read-stacked-file');

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

Options

skippedStacks

type: string|string[]
default: []
A name or a list of names of stack traces that need to be skipped.

stackTraceLimit

type: number
default: 10
The Error.stackTraceLimit property specifies the number of stack frames to be collected by a stack trace.

useCWD

type: boolean
default: false
If set to true, it will use process.cwd() instead of @mnrendra/stack-trace to get the target path.

Utilities

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-file'

Types

import type {
  Options, // @mnrendra/read-stacked-file options
  SkippedStacks, // @mnrendra/validate-skipped-stacks input
  ValidSkippedStacks // @mnrendra/validate-skipped-stacks output
} from '@mnrendra/read-stacked-file'

License

MIT

Author

@mnrendra