Bifröst
Compatiblity layer for TSLint rules and formatters.

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
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
v0.24.0
:tada: This release contains two major features: caching and code fixes in the LanguageService plugin.
:warning: Breaking Changes:
The changes in the LanguageService plugin require that you update the @fimbul/mithotyn dependency and the fimbullinter.vscode-plugin VSCode plugin if you were using one of them.
Features:
- new rule:
no-object-spread-of-iterable warns about spreading an array into an object
- new rule:
no-implicit-tostring warns about implicit string coercion of certain types
- new CLI option:
--cache enables caching for fast incremental linting. Read more about caching
- the LanguageService plugin uses caching to speed up linting in your editor
- the LanguageService plugin now provides fixes for fixable findings