JSPM

module-parent

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

Get one of the module's parents, cleaning the require cache

Package Exports

  • module-parent

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 (module-parent) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

npm version Build Status Coverage Status Code Climate Inch CI

Dependency Status devDependency Status

module-parent

Get one of the module's parents, cleaning the require cache

If you have different needs regarding the functionality, please add a feature request.

Installation

npm install --save module-parent

Usage

var parentModule = require('module-parent')(module, 0);
var parentName = parentModule && path.basename(parentModule.filename, '.js') || 'app';

Caution: this module clears require.cache to resolve the filename for the parent modules (if numParentsToSkip parameter is set, then require.cache is set for all the module when going up to parent, except last parent). By default, module.parent points to the module which required this one at first time, not all the modules require'ing it later.

That means, each time module loads as at first time and, for example, it's not possible to use singleton pattern for all the modules which uses package module-parent.

Parameters

var parentModule = require('module-parent')(
  moduleToStart,      // module to start from
  numParentsToSkip    // number of parents to skip; default: 0
);

moduleToStart

Type: Object Description: Module to start from. Usually equals to module, means to determine parents of current module. Mandatory Default: none

numParentsToSkip

Type: Number Description: Number of parent module to skip. For example, if you need to find module.parent.parent, you need to set it to 1 etc. Optional Default: 0, means use parent of the module provided as first parameter.

Examples

Fragment of package require-dir-all:

var moduleParent = require('module-parent');
....
options._parentsToSkip = options._parentsToSkip || 0;
...
var originalModule     = moduleParent(module, options._parentsToSkip);
var parentDir          = path.dirname(originalModule.filename);

Fragment of package config-dir-all:

var moduleParent   = require('module-parent');
var originalModule = moduleParent(module, 0);
var parentDir      = path.dirname(originalModule.filename);

Fragment of package mini-rest-logger:

var parent     = require('module-parent')(module, 1);
var parentName = parent && path.basename(parent.filename, '.js') || 'app';

Credits

Alexander

Links to package pages:

github.com   npmjs.com   travis-ci.org   coveralls.io   inch-ci.org

License

MIT