ember-modules-codemod
ember-modules-codemod copied to clipboard
Replaces htmlSafe import incorrectly
The codemod inserts import { htmlSafe } from '@ember/template' but it should be from @ember/string
There is a corresponding bug in the Ember API documentation where it still lists the function under @ember/template
Actually, @ember/template is the correct location 😄 (it moved from @ember/string to @ember/template in https://github.com/emberjs/rfcs/pull/236).
Guess I'm confused then - The 3.1 docs say string. And @ember/template gives me a 'module not found' at runtime. i.e. right now at 3.1.1, it only works with @ember/string
I'm also seeing this behaviour on 2.18.2, @ember/string works but @ember/template does not.
It seems the htmlSafe API docs still links to a htmlSafe within the string module within ember.js. Also the jsdoc comment for htmlSafe seems to be at odds with itself
/**
Mark a string as safe for unescaped output with Ember templates. If you
return HTML from a helper, use this function to
ensure Ember's rendering layer does not escape the HTML.
import { htmlSafe } from '@ember/string';
htmlSafe('<div>someString</div>')
@method htmlSafe
@for @ember/template
@static
@return {Handlebars.SafeString} A string that will not be HTML escaped by Handlebars.
@public
*/
It says @ember/string in the code example but the annotation says @for @ember/template.