inspectable
v3.0.2
Published
Make the output of a class instance in the console meaningful
Downloads
9,170
Maintainers
Readme
Inspectable - Make the output of a class instance in the console meaningful
| 📖 Documentation | |---------------------------|
Features
- Self-Sufficient. The library has zero dependencies.
- Reliable. The library is written in TypeScript and covered by tests.
- Modern. The library comes with native ESM support
Installation
Node.js 20.0.0 or newer is required
- Using
npm
(recommended)npm i inspectable
- Using
Yarn
yarn add inspectable
- Using
pnpm
pnpm add inspectable
Example usage
import { inspectable } from 'inspectable';
class APIRequest {
public method = 'pay';
private token = 'super-private';
}
const request = new APIRequest();
console.log(request);
// APIRequest { method: 'pay', token: 'super-private' }
inspectable(APIRequest, {
serialize(instance) {
return {
method: instance.method
};
}
});
console.log(request);
// APIRequest {
// method: 'pay'
// }
Decorators
import { Inspectable, Inspect } from 'inspectable';
// INFO: Temp polyfill, more info https://github.com/microsoft/TypeScript/issues/55453#issuecomment-1687496648
(Symbol as any).metadata ??= Symbol("Symbol.metadata");
@Inspectable({/* options */})
class APIRequest {
@Inspect()
public method = 'pay';
private token = 'super-private';
@Inspect({ nullable: false })
private signal = null;
@Inspect({ as: 'firstName' })
private name = 'john';
@Inspect({ compute: true })
public canRequest() {
return Boolean(this.token);
}
}
const request = new APIRequest();
console.log(request);
// APIRequest {
// method: 'pay',
// firstName: 'john',
// canRequest: true
// }