@vscode-logging/types

Common Type Signatures for @vscode-logging/logger

Usage no npm install needed!

<script type="module">
  import vscodeLoggingTypes from 'https://cdn.skypack.dev/@vscode-logging/types';
</script>

README

@vscode-logging/types

Types used by @vscode-logging/logger extracted to a separate package to enable in-direct dependents to type check against the correct interfaces.

For example imagine a VSCode extension called Foo which uses an npm package called Bar as a dependency and Bar APIs can accept an optional logger implementation:

// Code in `Bar` npm package
// -------------------------------------------------------

// By defining the `IChildLogger` interface` in `@vscode-logging/types`
// `Bar` only depends (dev dependency) on the interface **not** the implementation.
import { IChildLogger } from "@vscode-logging/types";

export function add(lhs: number, rhs: number, logger: IChildLogger): number {
  logger.info("Entering <add> function with params:", { lhs: lhs, rhs: rhs });
  return lhs + rhs;
}

Installation

With npm:

  • npm install @vscode-logging/types --save-dev

With Yarn:

  • yarn add @vscode-logging/types --dev

Usage

As shown above, simply import the IChildLogger interface and use it to define the type of your injected logger implementation.

Support

Please open issues on github.

Contributing

See CONTRIBUTING.md.

License

Copyright (c) 2021 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file.