kategengler / dyfactor-plugin-disambiguate-locals

Disambiguates local property lookup in Ember templates

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Disambiguate Locals

Build Status

This is a Dynamic Dyfcator Plugin that identifies local properties that are typically resolved by Ember's property fallback functionality. This is meant to provide a migration path for RFC#308.

Usage

> yarn add dyfactor-plugin-disambiguate-locals --dev

> dyfactor run template disambiguate-locals ./app --level <extract|modify>

What Does This Do?

Given a template and component that look this:

import Component from '@ember/component';

export Component.extend({
  name: 'Chad',
  company: 'LinkedIn'
});
<h1>{{name}}!</h1>
<h2>Company: {{company}}</h2>

<ul>
  {{#each projects as |project|}}
    <li>{{project.name}}</li>
  {{/each}}
</ul>

This plugin will either re-write the template to:

-  <h1>{{name}}!</h1>
+  <h1>{{this.name}}!</h1>
-  <h2>Company: {{company}}</h2>
+  <h2>Company: {{this.company}}</h2>

   <ul>
     {{#each projects as |project|}}
       <li>{{project.name}}</li>
     {{/each}}
   </ul>

or write a telemetry file to disk that looks like the following:

{
  "./app/templates/components/top-card.hbs": ["name", "company"]
}

About

Disambiguates local property lookup in Ember templates


Languages

Language:TypeScript 100.0%