require-source-filepath
v1.0.1
Published
Finds the absolute filepath to the original sourcecode of any defined value
Downloads
3
Maintainers
Readme
require-source-filepath
Finds the absolute filepath to the original sourcecode that defines a value in node.
You may want to use this package if you're looking to do code introspection. When you import or require a file, it often isn't the file that actually defines the sourcecode for the variable you've just imported. This package lets you get the filepaths for the original source of your imported values.
Usage
$ npm install require-source-filepath
const findSourcepath = require('require-source-filepath');
const { value1, value2 } = require('./values');
const { value3 } = require('values');
const paths = findSourcepath([value1, value2, value3]);
// paths = [
// 'path/to/original/sourcefile/of/value1',
// 'path/to/original/sourcefile/of/value2',
// 'path/to/original/sourcefile/of/value3',
// ]
How it works
require-source-filepath
traverses node's global module
variable recursively comparing exports from each export against the arguments. When it finds the deepest leaf node it
returns the path of that file. It handles circular dependencies by traversing with a backtracking DFS.
Value types and Reference types
Due to its implementation and the data-structure of module
,
require-source-filepath
may not always return the correct source file for any value types
(number, string, bool etc.) and is not reccomended for their use.
If more than 2 files in the dependency tree export the same value type,
require-source-filepath
will return whichever file comes last in the dependency
tree, regardless of whether it was the actual imported value or not.
require-source-filepath
always returns the correct source file for all reference types (array's, function's, objects, classes, etc)