@fimbul/bifrost
TypeScript icon, indicating that this package has built-in type declarations

0.24.0 • Public • Published

Bifröst

Compatiblity layer for TSLint rules and formatters.

npm version npm downloads Renovate enabled CircleCI Build status codecov Join the chat at https://gitter.im/fimbullinter/wotan

Make sure to also read the full documentation of all available modules.

Purpose

Allows TSLint rule authors to provide the same rules for Wotan without any refactoring. Although @fimbul/heimdall already allows users to use your rules and formatters in Wotan, they still need to remember to use -m @fimbul/heimdall when running Wotan. You can help these users by providing your rules in a format that Wotan understands without any plugin.

It also provides the exact opposite functionality: using rules originally written for Fimbullinter (wotan) as TSLint rule.

Installation

npm install --save @fimbul/bifrost
# or
yarn add @fimbul/bifrost

Using TSLint Rules and Formatters in Wotan

Rules

Given a TSLint rule my-foo in a file myFooRule.ts, you simply create a file my-foo.ts with the following content:

import {wrapTslintRule} from '@fimbul/bifrost';
import {Rule} from './myFooRule.ts';

const Wrapped = wrapTslintRule(Rule, 'my-foo');
export {Wrapped as Rule};

If you want to use a different directory for your TSLint rules and their Wotan wrapper, you just need to adjust the paths in the above example.

Formatters

Given a TSLint formatter my-foo in a file myFooFormatter.ts, you simply create a file my-foo.ts with the following content:

import {wrapTslintFormatter} from '@fimbul/bifrost';
import {Formatter} from './myFooFormatter.ts';

const Wrapped = wrapTslintFormatter(Formatter);
export {Wrapped as Formatter};

Note that findings with severity suggestion are reported as warning through TSLint formatters.

Using Fimbullinter Rules in TSLint

Given a Fimbullinter rule my-foo in a file my-foo.ts, you simply create a file myFooRule.ts with the following content:

import {wrapRuleForTslint} from '@fimbul/bifrost';
import {Rule} from './my-foo.ts';

const Wrapped = wrapRuleForTslint(Rule);
export {Wrapped as Rule};

License

Apache-2.0 © Klaus Meinhardt

/@fimbul/bifrost/

    Package Sidebar

    Install

    npm i @fimbul/bifrost

    Weekly Downloads

    81,203

    Version

    0.24.0

    License

    Apache-2.0

    Unpacked Size

    28.3 kB

    Total Files

    7

    Last publish

    Collaborators

    • ajaff
    • harbard