Skip to content

Commit

Permalink
Merge pull request #19339 from jamescdavis/deprecate_htmlSafe_from_em…
Browse files Browse the repository at this point in the history
…ber_string
  • Loading branch information
rwjblue authored Jan 19, 2021
2 parents 20647ee + d9ec17a commit 82f6c10
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 5 deletions.
32 changes: 30 additions & 2 deletions packages/ember/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -651,8 +651,36 @@ if (ENV.EXTEND_PROTOTYPES.String) {
return htmlSafe(this);
};
}
Ember.String.htmlSafe = htmlSafe;
Ember.String.isHTMLSafe = isHTMLSafe;
const deprecateImportFromString = function (
name,
message = `Importing ${name} from '@ember/string' is deprecated. Please import ${name} from '@ember/template' instead.`
) {
deprecate(message, false, {
id: 'ember-string.htmlsafe-ishtmlsafe',
for: 'ember-source',
since: {
enabled: '3.25',
},
until: '4.0.0',
url: 'https://deprecations.emberjs.com/v3.x/#toc_ember-string-htmlsafe-ishtmlsafe',
});
};
Object.defineProperty(Ember.String, 'htmlSafe', {
enumerable: true,
configurable: true,
get() {
deprecateImportFromString('htmlSafe');
return htmlSafe;
},
});
Object.defineProperty(Ember.String, 'isHTMLSafe', {
enumerable: true,
configurable: true,
get() {
deprecateImportFromString('isHTMLSafe');
return isHTMLSafe;
},
});

/**
Global hash of shared templates. This will automatically be populated
Expand Down
25 changes: 22 additions & 3 deletions packages/ember/tests/reexports_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,28 @@ moduleFor(
});
}

['@test Ember.String.isHTMLSafe exports correctly'](assert) {
confirmExport(Ember, assert, 'String.isHTMLSafe', '@ember/-internals/glimmer', 'isHTMLSafe');
['@test Ember.String.htmlSafe exports correctly (but deprecated)'](assert) {
let glimmer = require('@ember/-internals/glimmer');
expectDeprecation(() => {
assert.equal(
Ember.String.htmlSafe,
glimmer.htmlSafe,
'Ember.String.htmlSafe is exported correctly'
);
}, /Importing htmlSafe from '@ember\/string' is deprecated/);
assert.notEqual(glimmer.htmlSafe, undefined, 'Ember.String.htmlSafe is not `undefined`');
}

['@test Ember.String.isHTMLSafe exports correctly (but deprecated)'](assert) {
let glimmer = require('@ember/-internals/glimmer');
expectDeprecation(() => {
assert.equal(
Ember.String.isHTMLSafe,
glimmer.isHTMLSafe,
'Ember.String.isHTMLSafe is exported correctly'
);
}, /Importing isHTMLSafe from '@ember\/string' is deprecated/);
assert.notEqual(glimmer.isHTMLSafe, undefined, 'Ember.String.isHTMLSafe is not `undefined`');
}

['@test Ember.EXTEND_PROTOTYPES is present (but deprecated)'](assert) {
Expand Down Expand Up @@ -270,7 +290,6 @@ let allExports = [
['Handlebars.template', '@ember/-internals/glimmer', 'template'],
['HTMLBars.template', '@ember/-internals/glimmer', 'template'],
['Handlebars.Utils.escapeExpression', '@ember/-internals/glimmer', 'escapeExpression'],
['String.htmlSafe', '@ember/-internals/glimmer', 'htmlSafe'],
['_setComponentManager', '@ember/-internals/glimmer', 'setComponentManager'],
['_componentManagerCapabilities', '@glimmer/manager', 'componentCapabilities'],
['_setComponentTemplate', '@glimmer/manager', 'setComponentTemplate'],
Expand Down

0 comments on commit 82f6c10

Please sign in to comment.