Skip to content

Commit df655be

Browse files
committedJan 9, 2025
implementing our part of lexical-this
1 parent 7a8ac6c commit df655be

File tree

6 files changed

+2227
-449
lines changed

6 files changed

+2227
-449
lines changed
 

‎__tests__/tests.ts

+23-4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ import { Preprocessor } from 'content-tag';
1515

1616
describe('htmlbars-inline-precompile', function () {
1717
// eslint-disable-next-line @typescript-eslint/no-var-requires
18-
let compiler: EmberTemplateCompiler = { ...require('ember-source/dist/ember-template-compiler') };
18+
let compiler: EmberTemplateCompiler = {
19+
...require('ember-source/dist/ember-template-compiler.js'),
20+
};
1921
let plugins: ([typeof HTMLBarsInlinePrecompile, Options] | [unknown])[];
2022

2123
function transform(code: string) {
@@ -1874,13 +1876,30 @@ describe('htmlbars-inline-precompile', function () {
18741876

18751877
it('can pass lexically scoped "this"', function () {
18761878
let spy = sinon.spy(compiler, 'precompile');
1877-
transform(`
1879+
let transformed = transform(`
18781880
import { precompileTemplate } from '@ember/template-compilation';
18791881
export function example() {
18801882
return precompileTemplate('{{this.message}}', { scope: () => ({ "this": this }) });
18811883
}
18821884
`);
18831885
expect(spy.firstCall.lastArg).toHaveProperty('locals', ['this']);
1886+
expect(normalizeWireFormat(transformed)).toEqualCode(`
1887+
import { createTemplateFactory } from "@ember/template-factory";
1888+
export function example() {
1889+
return createTemplateFactory(
1890+
/*
1891+
{{this.message}}
1892+
*/
1893+
{
1894+
id: "<id>",
1895+
block: '[[[1,[32,0,["message"]]]],[],false,[]]',
1896+
moduleName: "<moduleName>",
1897+
scope: () => [this],
1898+
isStrictMode: false,
1899+
}
1900+
);
1901+
}
1902+
`);
18841903
});
18851904
});
18861905

@@ -2196,7 +2215,7 @@ describe('htmlbars-inline-precompile', function () {
21962215

21972216
let transformed = transform(
21982217
p.process(
2199-
`import HelloWorld from 'somewhere';
2218+
`
22002219
export function example() {
22012220
return <template>{{this.message}}</template>;
22022221
}
@@ -2209,7 +2228,7 @@ describe('htmlbars-inline-precompile', function () {
22092228
import { setComponentTemplate } from "@ember/component";
22102229
import templateOnly from "@ember/component/template-only";
22112230
export function example() {
2212-
return setComponentTemplate(precompileTemplate('{{this.message}}', { strictMode: true, scope: () => ({ "this": this }) }), templateOnly());
2231+
return setComponentTemplate(precompileTemplate('{{this.message}}', { strictMode: true, scope: () => ({ this: this }) }), templateOnly());
22132232
}
22142233
`);
22152234
});

‎package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
]
3535
},
3636
"dependencies": {
37-
"@glimmer/syntax": ">= 0.84.3",
37+
"@glimmer/syntax": "^0.93.1",
3838
"babel-import-util": "^3.0.0"
3939
},
4040
"devDependencies": {
@@ -52,10 +52,10 @@
5252
"@types/sinon": "^10.0.13",
5353
"@typescript-eslint/eslint-plugin": "^7.14.1",
5454
"@typescript-eslint/parser": "^7.14.1",
55-
"code-equality-assertions": "^0.7.0",
55+
"code-equality-assertions": "^1.0.1",
5656
"common-tags": "^1.8.0",
5757
"content-tag": "^0.1.0",
58-
"ember-source": "^3.28.9",
58+
"ember-source": "^6.1.0",
5959
"eslint": "^8.57.0",
6060
"eslint-config-prettier": "^6.15.0",
6161
"eslint-plugin-node": "^11.1.0",

0 commit comments

Comments
 (0)