module-parent
v0.0.2
Published
Get one of the module's parents, cleaning the require cache
Downloads
10,556
Maintainers
Keywords
Readme
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 require
d 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
Links to package pages:
github.com npmjs.com travis-ci.org coveralls.io inch-ci.org
License
MIT