Skip to content

Commit fb1c533

Browse files
committed
Merge remote-tracking branch 'origin/main' into feature/rfc-0931
2 parents 30db3c1 + a40bfa4 commit fb1c533

File tree

28 files changed

+820
-147
lines changed

28 files changed

+820
-147
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ jobs:
4343
steps:
4444
- uses: actions/checkout@v4
4545
- uses: ./.github/actions/setup
46+
- name: build types
47+
run: pnpm build:types
4648
- name: Check published and internal types
4749
run: pnpm type-check
4850

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
"@babel/preset-env": "^7.16.11",
112112
"@babel/types": "^7.22.5",
113113
"@embroider/shared-internals": "^2.5.0",
114-
"@glimmer/component": "^1.1.2",
114+
"@glimmer/component": "workspace:^",
115115
"@rollup/plugin-babel": "^6.0.4",
116116
"@simple-dom/document": "^1.4.0",
117117
"@swc-node/register": "^1.6.8",
@@ -173,7 +173,7 @@
173173
}
174174
},
175175
"peerDependencies": {
176-
"@glimmer/component": "^1.1.2"
176+
"@glimmer/component": ">= 1.1.2"
177177
},
178178
"engines": {
179179
"node": ">= 18.*"

packages/@ember/-internals/glimmer/tests/integration/helpers/array-test.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
import { RenderingTestCase, moduleFor, strip, runTask } from 'internal-test-helpers';
1+
import {
2+
RenderingTestCase,
3+
defineComponent,
4+
moduleFor,
5+
runTask,
6+
strip,
7+
} from 'internal-test-helpers';
28

39
import { set } from '@ember/object';
410

@@ -20,6 +26,21 @@ moduleFor(
2026
this.assertStableRerender();
2127
}
2228

29+
['@test the array helper can be shadowed']() {
30+
function array(...list) {
31+
return list.map((n) => n * 2);
32+
}
33+
34+
let First = defineComponent({ array }, `{{#each (array 1 2 3) as |n|}}[{{n}}]{{/each}}`);
35+
36+
let Root = defineComponent(
37+
{ shadowArray: array, First },
38+
`{{#let shadowArray as |array|}}{{#each (array 5 10 15) as |n|}}[{{n}}]{{/each}}{{/let}}<First />`
39+
);
40+
41+
this.renderComponent(Root, { expect: '[10][20][30][2][4][6]' });
42+
}
43+
2344
['@test can have more than one value']() {
2445
this.render(strip`
2546
{{#let (array "Sergio" "Robert") as |people|}}

packages/@ember/-internals/glimmer/tests/integration/helpers/fn-test.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { set } from '@ember/object';
22
import { DEBUG } from '@glimmer/env';
3-
import { RenderingTestCase, moduleFor, runTask } from 'internal-test-helpers';
3+
import { RenderingTestCase, defineComponent, moduleFor, runTask } from 'internal-test-helpers';
44
import { Component } from '../../utils/helpers';
55

66
moduleFor(
@@ -22,6 +22,14 @@ moduleFor(
2222
});
2323
}
2424

25+
'@test fn can be shadowed'() {
26+
let First = defineComponent(
27+
{ fn: boundFn, boundFn, id, invoke },
28+
`[{{invoke (fn id 1)}}]{{#let boundFn as |fn|}}[{{invoke (fn id 2)}}{{/let}}]`
29+
);
30+
this.renderComponent(First, { expect: `[bound:1][bound:2]` });
31+
}
32+
2533
'@test updates when arguments change'() {
2634
this.render(`{{invoke (fn this.myFunc this.arg1 this.arg2)}}`, {
2735
myFunc(arg1, arg2) {
@@ -209,3 +217,13 @@ moduleFor(
209217
}
210218
}
211219
);
220+
221+
function invoke(fn) {
222+
return fn();
223+
}
224+
225+
function boundFn(fn, ...args) {
226+
return () => fn(...args.map((arg) => `bound:${arg}`));
227+
}
228+
229+
let id = (arg) => arg;

packages/@ember/-internals/glimmer/tests/integration/helpers/get-test.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { RenderingTestCase, moduleFor, runTask } from 'internal-test-helpers';
1+
import { RenderingTestCase, defineComponent, moduleFor, runTask } from 'internal-test-helpers';
22

33
import { set, get } from '@ember/object';
44

@@ -32,6 +32,17 @@ moduleFor(
3232
this.assertText('[red] [red]');
3333
}
3434

35+
['@test can be shadowed']() {
36+
let get = (obj, key) => `obj.${key}=${obj[key]}`;
37+
let obj = { apple: 'red', banana: 'yellow' };
38+
let Root = defineComponent(
39+
{ get, outerGet: get, obj },
40+
`[{{get obj 'apple'}}][{{#let outerGet as |get|}}{{get obj 'banana'}}{{/let}}]`
41+
);
42+
43+
this.renderComponent(Root, { expect: '[obj.apple=red][obj.banana=yellow]' });
44+
}
45+
3546
['@test should be able to get an object value with nested static key']() {
3647
this.render(
3748
`[{{get this.colors "apple.gala"}}] [{{if true (get this.colors "apple.gala")}}]`,

packages/@ember/-internals/glimmer/tests/integration/helpers/hash-test.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { RenderingTestCase, moduleFor, runTask } from 'internal-test-helpers';
1+
import { RenderingTestCase, defineComponent, moduleFor, runTask } from 'internal-test-helpers';
22

33
import { Component } from '../../utils/helpers';
44

@@ -17,6 +17,21 @@ moduleFor(
1717
this.assertText('Sergio');
1818
}
1919

20+
['@test can be shadowed']() {
21+
let hash = (obj) =>
22+
Object.entries(obj)
23+
.map(([key, value]) => `hash:${key}=${value}`)
24+
.join(',');
25+
let Root = defineComponent(
26+
{ hash, shadowHash: hash },
27+
`({{hash apple='red' banana='yellow'}}) ({{#let shadowHash as |hash|}}{{hash apple='green'}}{{/let}})`
28+
);
29+
30+
this.renderComponent(Root, {
31+
expect: '(hash:apple=red,hash:banana=yellow) (hash:apple=green)',
32+
});
33+
}
34+
2035
['@test can have more than one key-value']() {
2136
this.render(
2237
`{{#let (hash name="Sergio" lastName="Arbeo") as |person|}}{{person.name}} {{person.lastName}}{{/let}}`

packages/@ember/-internals/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"version": "0.0.0",
44
"description": "Internal APIs shared by Ember packages. Warning: this package does not follow SemVer and is subject to break at any time!",
55
"type": "module",
6+
"private": true,
67
"exports": {
78
"./browser-environment": "./browser-environment/index.ts",
89
"./container": "./container/index.ts",
@@ -23,7 +24,7 @@
2324
"@ember/application": "workspace:*",
2425
"@ember/array": "workspace:*",
2526
"@ember/canary-features": "workspace:*",
26-
"@ember/component": "workspace:*",
27+
"@ember/component": "workspace:^",
2728
"@ember/controller": "workspace:*",
2829
"@ember/debug": "workspace:*",
2930
"@ember/destroyable": "workspace:*",
@@ -40,7 +41,7 @@
4041
"@ember/template-factory": "workspace:*",
4142
"@ember/utils": "workspace:*",
4243
"@glimmer/compiler": "0.92.4",
43-
"@glimmer/component": "^1.1.2",
44+
"@glimmer/component": "workspace:^",
4445
"@glimmer/destroyable": "0.92.3",
4546
"@glimmer/env": "^0.1.7",
4647
"@glimmer/global-context": "0.92.3",

packages/@ember/owner/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
"@ember/object": "workspace:*",
1414
"@ember/routing": "workspace:*",
1515
"@ember/runloop": "workspace:*",
16-
"@glimmer/component": "^1.1.2",
16+
"@glimmer/component": "workspace:^",
1717
"@glimmer/env": "^0.1.7",
1818
"expect-type": "^0.15.0"
1919
}
20-
}
20+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# @glimmer/component
2+
3+
## 2.0.0-beta.22 2024-10-29
4+
5+
- BREAKING: converted to V2 addon
6+
- BREAKING: dropped support for ember < 3.13
7+
8+
9+
## Older Releases
10+
11+
Versions up to 1.1.12 and 2.0.0-beta.21 were maintained in https://github.com/glimmerjs/glimmer.js
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/* eslint-env node */
2+
'use strict';
3+
4+
const { addonV1Shim } = require('@embroider/addon-shim');
5+
module.exports = addonV1Shim(__dirname);

0 commit comments

Comments
 (0)