https://github.com/dizmo/functions-trace
dizmoFun: method invocation tracer
https://github.com/dizmo/functions-trace
dizmo function invocation javascript library tracer typescript
Last synced: 11 months ago
JSON representation
dizmoFun: method invocation tracer
- Host: GitHub
- URL: https://github.com/dizmo/functions-trace
- Owner: dizmo
- License: isc
- Created: 2018-09-11T14:38:43.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-10-18T13:42:49.000Z (over 2 years ago)
- Last Synced: 2024-04-27T15:22:19.716Z (almost 2 years ago)
- Topics: dizmo, function, invocation, javascript, library, tracer, typescript
- Language: TypeScript
- Size: 1.2 MB
- Stars: 2
- Watchers: 6
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://npmjs.org/package/@dizmo/functions-trace)
[](https://travis-ci.com/dizmo/functions-trace)
[](https://coveralls.io/github/dizmo/functions-trace?branch=master)
# @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
```sh
npm install @dizmo/functions-trace --save
```
### Require
```javascript
const { trace, traceable } = require('@dizmo/functions-trace');
```
### Examples
```typescript
import { trace, traceable } from '@dizmo/functions-trace';
```
```typescript
@trace /* or: @trace(true|false) */
class MyClass {
// @traceable
public method_1() {}
// @traceable(true)
public method_2() {}
@traceable(false)
public method_3() {}
}
```
```typescript
import { Global } from '@dizmo/functions-trace';
```
```typescript
declare const global: Global;
global.TRACE = true; // or e.g. `200` milliseconds
```
## Development
### Clean
```sh
npm run clean
```
### Build
```sh
npm run build
```
#### without linting and cleaning:
```sh
npm run -- build --no-lint --no-clean
```
#### with UMD bundling (incl. minimization):
```sh
npm run -- build --prepack
```
#### with UMD bundling (excl. minimization):
```sh
npm run -- build --prepack --no-minify
```
### Lint
```sh
npm run lint
```
#### with auto-fixing:
```sh
npm run -- lint --fix
```
### Test
```sh
npm run test
```
#### without linting, cleaning and (re-)building:
```sh
npm run -- test --no-lint --no-clean --no-build
```
### Cover
```sh
npm run cover
```
#### without linting, cleaning and (re-)building:
```sh
npm run -- cover --no-lint --no-clean --no-build
```
## Documentation
```sh
npm run docs
```
## Publish
```sh
npm publish
```
#### initially (if public):
```sh
npm publish --access=public
```
## Copyright
© 2020 [dizmo AG](http://dizmo.com/), Switzerland