@itrocks/class-file v0.0.18
class-file
Retrieve the absolute file path of an imported class:
- Automatic for your CommonJS-compiled projects,
- Using a
@Filedecorator in ESM-compiled projects.
Installation
npm install @itrocks/class-fileActivation
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(fileURLToPath(import.meta.url))
decorator to enable file path resolution. Without this decorator, fileOf() will return undefined.
Example
Given a file my-class.js, with CommonJS transpilation:
export class MyClass {}Or on transpiling to an ESModule:
import { fileURLToPath } from 'node:url'
@File(fileURLToPath(import.meta.url))
export 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 path6 months ago
8 months ago
8 months ago
8 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago