Skip to content

Commit 2f4061c

Browse files
authored
Merge pull request #20751 from emberjs/glimmer-component
Bring @glimmer/component into ember repo
2 parents 5557b11 + 77ed1cc commit 2f4061c

File tree

18 files changed

+796
-648
lines changed

18 files changed

+796
-648
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/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: 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);
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"name": "@glimmer/component",
3+
"version": "2.0.0",
4+
"description": "Glimmer component library",
5+
"exports": {
6+
".": "./dist/index.js"
7+
},
8+
"keywords": [
9+
"ember-addon"
10+
],
11+
"license": "MIT",
12+
"contributors": [
13+
"Dan Gebhardt <[email protected]>",
14+
"Robert Jackson <[email protected]>",
15+
"Tom Dale <[email protected]>"
16+
],
17+
"repository": "https://github.com/emberjs/ember.js",
18+
"scripts": {},
19+
"dependencies": {
20+
"@embroider/addon-shim": "^1.8.9",
21+
"@glimmer/env": "^0.1.7"
22+
},
23+
"devDependencies": {
24+
"typescript": "5.1"
25+
},
26+
"engines": {
27+
"node": ">= 18"
28+
},
29+
"typesVersions": {
30+
"*": {
31+
"*": [
32+
"dist/*"
33+
]
34+
}
35+
},
36+
"ember-addon": {
37+
"type": "addon",
38+
"version": 2,
39+
"main": "addon-main.cjs"
40+
}
41+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { DEBUG } from '@glimmer/env';
2+
import type { Arguments, ComponentManager, ComponentCapabilities } from '@glimmer/interfaces';
3+
import { type default as BaseComponent, ARGS_SET } from './component';
4+
5+
export interface Constructor<T> {
6+
new (owner: unknown, args: Record<string, unknown>): T;
7+
}
8+
9+
export default abstract class BaseComponentManager<GlimmerComponent extends BaseComponent>
10+
implements ComponentManager<GlimmerComponent>
11+
{
12+
abstract capabilities: ComponentCapabilities;
13+
14+
private owner: unknown;
15+
16+
constructor(owner: unknown) {
17+
this.owner = owner;
18+
}
19+
20+
createComponent(
21+
ComponentClass: Constructor<GlimmerComponent>,
22+
args: Arguments
23+
): GlimmerComponent {
24+
if (DEBUG) {
25+
ARGS_SET.set(args.named, true);
26+
}
27+
28+
return new ComponentClass(this.owner, args.named);
29+
}
30+
31+
getContext(component: GlimmerComponent): GlimmerComponent {
32+
return component;
33+
}
34+
}

0 commit comments

Comments
 (0)