#!/usr/bin/env node /* eslint-env node */ /** * Codemod to convert args to attributes for Input and TextArea built in components * eg. -> */ module.exports = () => { // partial list of deprecated arguments // complete list used by linter found at: // https://github.com/ember-template-lint/ember-template-lint/blob/master/lib/rules/no-unknown-arguments-for-builtin-components.js const deprecatedArgs = [ '@id', '@name', '@autocomplete', '@spellcheck', '@disabled', '@class', '@placeholder', '@wrap', '@rows', '@readonly', '@step', '@min', '@pattern', ]; return { ElementNode(node) { if (['Textarea', 'Input', 'LinkTo'].includes(node.tag)) { const attrs = node.attributes; let i = 0; while (i < attrs.length) { const arg = deprecatedArgs.find((name) => name === attrs[i].name); if (arg) { attrs[i].name = arg.slice(1); } i++; } } }, }; };