Skip to main content

One post tagged with "v17"

View All Tags

Announcing Lumberjack v17: Literal Union Levels, Angular 17 and a new Contributor

· 2 min read
Nacho Vazquez
NgWorker and core maintainer of Lumberjack

As promised, we are getting up to speed with Angular versions. We are happy to announce that Lumberjack v17 is here.

TL;DR - Lumberjack version 17 introduces the following: Support for string literal unions as log levels, deprecation of enum-based log levels, alignment with Angular 17 upgrading to the latest Nx, and a special new contributor.

String Literal Unions Log Levels

In our continued pursuit of DX happiness, we are happy to introduce string literal unions as log levels.

String literal unions are less verbose than enums, and since they don't have a runtime implementation, they also make our bundle size lighter.

The new log levels are:

export type Level = 'critical' | 'debug' | 'error' | 'info' | 'trace' | 'verbose' | 'warn';

You can use the new API anywhere you were using the enum-based log levels:

Before:

this.#lumberjack.log({
level: LumberjackLevel.Info,
message: 'Hello, World!',
scope: 'MyComponent',
createdAt: this.#time.getUnixEpochTicks(),
});

Now:

this.#lumberjack.log({
level: 'info',
message: 'Hello, World!',
scope: 'MyComponent',
createdAt: this.#time.getUnixEpochTicks(),
});

Enum-based Log levels deprecation

As part of the introduction to string literal unions, we are deprecating the enum-based log levels.

Once removed in version 19, we can reduce the bundle size and simplify the API.

Community

On this version, we had the star collaboration of Diego Julião core maintainer of ngx-deploy-npm.

Diego helped us upgrade our deployment process to use the latest version of ngx-deploy-npm.

Thanks, Diego!

Wrapping Up

That's it, folks. Last time, we promised to release a new version of Lumberjack quickly, and we did it. We are happy to be able to keep our promises. Now that we are up to date with Angular, you should expect more news on our secret project soon