1.2.2 • Published 2 months ago

@open-pioneer/core v1.2.2

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 months ago

@open-pioneer/core

This package contains basic utility functions and classes used by the @open-pioneer project.

Events

The package exports the EventEmitter class that supports emitting and subscribing to user defined events.

Errors

The Error class extends JavaScript's global error class with a user defined id value that can be used to explicitly identify error conditions.

import { Error } from "@open-pioneer/core";
throw new Error("my-error:identifier", "This is the error message");

Error also exposes the optional cause attribute that allows nesting of error instances. Note that browser support for that property is still required:

import { Error, getErrorChain } from "@open-pioneer/core";

try {
    someFunctionThatCanThrow();
} catch (e) {
    throw new Error("my-error:higher-level-error-id", "Error text", { cause: e });
}

// getErrorChain gathers the error and all its causes (if any) into an array:
const errors = getErrorChain(error);

Resources

The Resource type exported from this package is used by objects with a destructor. All object needing some cleanup action to be called should use the destroy method for consistency and easier handling.

Logger

The 'Logger' class provides a logger for standardized application wide logging. The log level is configured globally in the vite.config.js.

To create a logger instance, call the createLogger method. It takes a prefix (string) to prepend to each message. Use : as a separator to encode hierarchical names (e.g. "some-package:SomeClass").

The logger provides log methods for the following log levels with the following order: DEBUG < INFO < WARN < ERROR.

For example (as class attribute):

import { createLogger, Logger } from "@open-pioneer/core";

export class LoggerTestExample {
    private logger: Logger;
    constructor() {
        this.logger = createLogger("example-package:LoggerTestExample");
    }

    testMethod() {
        this.logger.warn("example message", { testLog: 123, text: "this is a text" });
    }
}

Or as a shared logger at module scope:

import { createLogger } from "@open-pioneer/core";
const LOG = createLogger("example-package");

License

Apache-2.0 (see LICENSE file)

1.2.2

2 months ago

1.2.0

5 months ago

1.2.1

5 months ago

1.1.0

8 months ago

1.0.1

9 months ago

1.0.0

11 months ago

0.1.4

12 months ago

0.1.3

12 months ago

0.1.2

12 months ago

0.1.1

12 months ago

0.1.0

12 months ago