@itrocks/class-file
v0.0.7
Published
Retrieve the absolute file path of an imported class
Downloads
388
Maintainers
Readme
class-file
Retrieve the absolute file path of an imported class:
- Automatic for your CommonJS-compiled projects,
- Using a
@File
decorator in ESM-compiled projects.
Installation
npm install @itrocks/class-file
Activation
This library associates each imported class with the absolute file path where it is defined. Its behavior differs depending on the module compilation mode:
CommonJS: Recommended for most use cases.
Add this line to the very start of your main file:
import '@itrocks/class-file/automation'
or:
require('@itrocks/class-file/automation')
This enables automatic file path resolution for all subsequently imported classes.
ESModule: Requires manual setup.
Due to the limitation of ESM, you must explicitly decorate classes with the @File(import.meta.filename)
decorator
to enable file path resolution. Without this decorator, fileOf()
will return undefined
.
Example
Given a file my-class.js
:
export default class MyClass {}
Retrieving the file path:
import { fileOf } from '@itrocks/class-file'
import MyClass from './my-class.js'
console.log(fileOf(MyClass)) // Returns the absolute file path
console.log(fileOf(new MyClass)) // Also returns the absolute file path