All files / src/migrations 6.0.5.ts

100% Statements 11/11
82.14% Branches 23/28
100% Functions 3/3
100% Lines 10/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54  1x   1x   1x                                             2x 2x 2x 2x                               2x     1x 2x    
import { Rule, Tree } from '@angular-devkit/schematics';
import { getEsLint, updateEslintOverridesRules } from '../utils/backbase/eslint';
 
import { tryRule } from './utils/rules';
 
const manualProcess = `
## Import directly from '@backbase/universal-ang' to be restricted from eslint
 
All the imports from @backbase/universal-ang will throw an error. As the eslint rule is added in .eslintrc.json:
 
overrides object should become:
{
  overrides: {
    rules: {
      ...,
      "no-restricted-imports": [
        "error",
        {
          "patterns": [{
            "group": ["@backbase/universal-ang"],
            "message": "Please import the module directly, @backbase/universal-ang/foo --> @backbase/foo-ang"
          }]
        }
      ]
    }
  }
}`;
 
const updateRulesWithUniversalRestriction: Rule = async (tree: Tree) => {
  const tslint = getEsLint(tree);
  const preExistingRestrictedImports = tslint?.overrides?.[0]?.rules?.['no-restricted-imports']?.[1] || [];
  const newRule = {
    'no-restricted-imports': [
      'error',
      {
        ...preExistingRestrictedImports,
        patterns: [
          ...(preExistingRestrictedImports?.patterns || []),
          {
            group: ['@backbase/universal-ang'],
            message: 'Please import the module directly, @backbase/universal-ang/foo --> @backbase/foo-ang',
          },
        ],
      },
    ],
  };
 
  updateEslintOverridesRules(tree, '*.ts', newRule);
};
 
export default function (): Rule {
  return tryRule(updateRulesWithUniversalRestriction, manualProcess);
}