ionic-team / v4-migration-tslint

TSLint rules for Ionic Angular v4 Migration

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

@ionic/v4-migration-tslint

Build Status Code Style: Prettier semantic-release Coverage Status Commitizen friendly

An effort to warn about and automatically fix syntax changes listed in BREAKING.md using tslint, codelyzer, and the Angular compiler.

We are looking for contributors to help build these rules out! See CONTRIBUTING.md to help out. πŸ’–

How to Use

  1. Install the lint rules:

    npm i -D @ionic/v4-migration-tslint
    
  2. Add a file called ionic-migration.json at the root of your project and paste in the following JSON.

    {
      "rulesDirectory": ["@ionic/v4-migration-tslint/rules"],
      "rules": {
        "ion-action-sheet-method-create-parameters-renamed": true,
        "ion-alert-method-create-parameters-renamed": true,
        "ion-back-button-not-added-by-default": { "options": [true], "severity": "warning" },
        "ion-button-attributes-renamed": true,
        "ion-button-is-now-an-element": true,
        "ion-buttons-attributes-renamed": true,
        "ion-col-attributes-renamed": true,
        "ion-datetime-capitalization-changed": true,
        "ion-fab-attributes-renamed": true,
        "ion-fab-button-is-now-an-element": true,
        "ion-fab-fixed-content": true,
        "ion-icon-attribute-is-active-removed": true,
        "ion-item-attributes-renamed": true,
        "ion-item-divider-ion-label-required": true,
        "ion-item-ion-label-required": true,
        "ion-item-is-now-an-element": true,
        "ion-item-option-is-now-an-element": true,
        "ion-item-option-method-get-sliding-percent-renamed": true,
        "ion-item-options-attribute-values-renamed": true,
        "ion-label-attributes-renamed": true,
        "ion-list-header-ion-label-required": true,
        "ion-loading-method-create-parameters-renamed": true,
        "ion-menu-events-renamed": true,
        "ion-menu-toggle-is-now-an-element": true,
        "ion-navbar-is-now-ion-toolbar": true,
        "ion-option-is-now-ion-select-option": true,
        "ion-overlay-method-create-should-use-await": true,
        "ion-overlay-method-present-should-use-await": true,
        "ion-radio-attributes-renamed": true,
        "ion-radio-group-is-now-an-element": true,
        "ion-radio-slot-required": true,
        "ion-range-attributes-renamed": true,
        "ion-segment-button-ion-label-required": true,
        "ion-spinner-attribute-values-renamed": true,
        "ion-tabs-refactored": { "options": [true], "severity": "warning" },
        "ion-text-is-now-an-element": true
      }
    }
  3. Lint your project:

    npx tslint -c ionic-migration.json -p tsconfig.json

    πŸ“ Hints:

    • Run tslint with -t verbose to output the rule names of lint errors which correspond to the table of rules below.
    • Run tslint with --fix to attempt automatic fixes (note: not all rules have fixes, and be sure to save a backup in version control before running with --fix)

Rules

⬜ – These rules need to be completed! See CONTRIBUTING.md to get started.

πŸ”§ – These rules can be automatically fixed with --fix.

category rule contributors
Code Changes
Action Sheet πŸ”§ βœ… ion-action-sheet-method-create-parameters-renamed @cwoolum
Alert πŸ”§ βœ… ion-alert-method-create-parameters-renamed @cwoolum
Datetime πŸ”§ βœ… ion-datetime-capitalization-changed @mhartington
Item Sliding πŸ”§ βœ… ion-item-option-method-get-sliding-percent-renamed @mhartington
Loading πŸ”§ βœ… ion-loading-method-create-parameters-renamed @areo
Nav ⬜ ion-nav-controller-method-remove-renamed
Option ⬜ ion-option-class-renamed
Overlays βœ… ion-overlay-method-create-should-use-await @cwoolum
βœ… ion-overlay-method-present-should-use-await @cwoolum
Markup Changes
Back Button βœ… ion-back-button-not-added-by-default @dwieeb
Button πŸ”§ βœ… ion-button-attributes-renamed @cwoolum
πŸ”§ βœ… ion-button-is-now-an-element @cwoolum, @j3gb3rt
FAB πŸ”§ βœ… ion-fab-button-is-now-an-element @dwieeb, @j3gb3rt
πŸ”§ βœ… ion-fab-attributes-renamed @dwieeb
πŸ”§ βœ… ion-fab-fixed-content @dwieeb
Grid πŸ”§ βœ… ion-col-attributes-renamed @dwieeb
Icon βœ… ion-icon-attribute-is-active-removed @dwieeb
Item πŸ”§ βœ… ion-item-is-now-an-element @dwieeb, @j3gb3rt
βœ… ion-item-ion-label-required @dwieeb
πŸ”§ βœ… ion-item-attributes-renamed @dwieeb
Item Divider βœ… ion-item-divider-ion-label-required @dwieeb
Item Options πŸ”§ βœ… ion-item-options-attribute-values-renamed @dwieeb
Item Sliding βœ… ion-item-option-is-now-an-element @dwieeb
Label πŸ”§ βœ… ion-label-attributes-renamed @dwieeb
List Header βœ… ion-list-header-ion-label-required @dwieeb
Menu πŸ”§ βœ… ion-menu-events-renamed @mhartington
Menu Toggle βœ… ion-menu-toggle-is-now-an-element @dwieeb
Navbar πŸ”§ βœ… ion-navbar-is-now-ion-toolbar @cwoolum
Option πŸ”§ βœ… ion-option-is-now-ion-select-option @dwieeb
Radio πŸ”§ βœ… ion-radio-attributes-renamed @dwieeb
πŸ”§ βœ… ion-radio-slot-required @dwieeb
πŸ”§ βœ… ion-radio-group-is-now-an-element @dwieeb, @j3gb3rt
Range πŸ”§ βœ… ion-range-attributes-renamed @dwieeb
Segment Button πŸ”§ βœ… ion-segment-button-ion-label-required @dwieeb
Select ⬜ ion-select-attributes-renamed
Spinner πŸ”§ βœ… ion-spinner-attribute-values-renamed @dwieeb
Tabs βœ… ion-tabs-refactored @mhartington,
Text / Typography πŸ”§ βœ… ion-text-is-now-an-element @dwieeb, @j3gb3rt
Toolbar πŸ”§ βœ… ion-buttons-attributes-renamed @dwieeb

Not Covered

Some changes are not covered by this fixer due to their complexity or because it would make no sense to do in automated fashion. They are:

About

TSLint rules for Ionic Angular v4 Migration

License:MIT License


Languages

Language:TypeScript 100.0%