Skip to content

dizmo/functions-trace

Repository files navigation

NPM version Build Status Coverage Status

@dizmo/functions-trace

Provides a @trace decorator, which traces each method invocation for all methods of a class via a global CONSOLE object, which is by default is the standard console. Further, a @traceable decorator is provided, which can selective enable (or disable) the tracing of a particular class method.

Tracing is applied only, when the global TRACE variable is set to true. It is also possible to set TRACE to a number, in which case tracing is deferred by the corresponding amount of milliseconds. Also, setting it to 0 will imply, that the invocations will be logged as soon as possible - however still asynchronously.

Usage

Install

npm install @dizmo/functions-trace --save

Require

const { trace, traceable } = require('@dizmo/functions-trace');

Examples

import { trace, traceable } from '@dizmo/functions-trace';
@trace /* or: @trace(true|false) */
class MyClass {

    // @traceable
    public method_1() {}

    // @traceable(true)
    public method_2() {}

    @traceable(false)
    public method_3() {}
}
import { Global } from '@dizmo/functions-trace';
declare const global: Global;
global.TRACE = true; // or e.g. `200` milliseconds

Development

Clean

npm run clean

Build

npm run build

without linting and cleaning:

npm run -- build --no-lint --no-clean

with UMD bundling (incl. minimization):

npm run -- build --prepack

with UMD bundling (excl. minimization):

npm run -- build --prepack --no-minify

Lint

npm run lint

with auto-fixing:

npm run -- lint --fix

Test

npm run test

without linting, cleaning and (re-)building:

npm run -- test --no-lint --no-clean --no-build

Cover

npm run cover

without linting, cleaning and (re-)building:

npm run -- cover --no-lint --no-clean --no-build

Documentation

npm run docs

Publish

npm publish

initially (if public):

npm publish --access=public

Copyright

© 2020 dizmo AG, Switzerland