Sha256: 29de4a95a91f17122b6190b444adfa1af40210b22489e438eea553ae0291ddf3

Contents?: true

Size: 1.76 KB

Versions: 2

Compression:

Stored size: 1.76 KB

Contents

import { deprecate } from '@ember/debug';
import { RENDER_HELPER } from '@ember/deprecated-features';
import calculateLocationDisplay from '../system/calculate-location-display';
// Remove after 3.4 once _ENABLE_RENDER_SUPPORT flag is no longer needed.
export default function deprecateRenderModel(env) {
    if (RENDER_HELPER) {
        let { moduleName } = env.meta;
        let deprecationMessage = (node, param) => {
            let sourceInformation = calculateLocationDisplay(moduleName, node.loc);
            let componentName = node.params[0].original;
            let modelName = param.original;
            let original = `{{render "${componentName}" ${modelName}}}`;
            let preferred = `{{${componentName} model=${modelName}}}`;
            return (`Please refactor \`${original}\` to a component and invoke via` +
                ` \`${preferred}\`. ${sourceInformation}`);
        };
        return {
            name: 'deprecate-render-model',
            visitor: {
                MustacheStatement(node) {
                    if (node.path.original === 'render' && node.params.length > 1) {
                        node.params.forEach(param => {
                            if (param.type !== 'PathExpression') {
                                return;
                            }
                            deprecate(deprecationMessage(node, param), false, {
                                id: 'ember-template-compiler.deprecate-render-model',
                                until: '3.0.0',
                                url: 'https://emberjs.com/deprecations/v2.x#toc_model-param-in-code-render-code-helper',
                            });
                        });
                    }
                },
            },
        };
    }
    return undefined;
}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
discourse-ember-source-3.5.1.1 dist/es/ember-template-compiler/lib/plugins/deprecate-render-model.js
discourse-ember-source-3.5.1.0 dist/dist/es/ember-template-compiler/lib/plugins/deprecate-render-model.js