Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove usage of global Ember variable #27186

Open
wants to merge 3 commits into
base: next
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions code/frameworks/ember/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
"@storybook/preview-api": "workspace:*",
"@storybook/types": "workspace:*",
"babel-loader": "9.1.3",
"babel-plugin-ember-template-compilation": "^2.2.5",
"find-up": "^5.0.0",
"ts-dedent": "^2.0.0"
},
Expand All @@ -49,11 +50,7 @@
},
"peerDependencies": {
"@babel/core": "*",
"babel-plugin-ember-modules-api-polyfill": "^3.5.0",
"babel-plugin-htmlbars-inline-precompile": "^5.3.1",
"ember-source": "~3.28.1 || ^4.0.0",
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
"ember-source": "~3.28.1 || ^4.0.0 || ^5.0.0"
},
"engines": {
"node": ">=18.0.0"
Expand Down
20 changes: 9 additions & 11 deletions code/frameworks/ember/src/client/preview/render.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ import type { OptionsArgs, EmberRenderer } from './types';

const { document } = global;

declare let Ember: any;

const rootEl = document.getElementById('storybook-root');

function loadEmberApp() {
Expand Down Expand Up @@ -39,15 +37,15 @@ function render(options: OptionsArgs, el: EmberRenderer['canvasElement']) {
return appInstancePrivate.boot().then(() => appInstancePrivate);
})
.then((instance: any) => {
instance.register(
'component:story-mode',
Ember.Component.extend({
layout: template || options,
...context,
})
);

const component = instance.lookup('component:story-mode');
const { class: componentBaseClass } = instance.factoryFor('component:storybook/story');
const componentClass = componentBaseClass.extend({
layout: template || options,
...context,
});

instance.register('component:storybook/story-mode', componentClass);

const component = instance.lookup('component:storybook/story-mode');

if (element) {
component.appendTo(element);
Expand Down
18 changes: 17 additions & 1 deletion code/frameworks/ember/src/preset.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,22 @@ export const webpackFinal: StorybookConfig['webpackFinal'] = async (baseConfig,

return {
...baseConfig,
resolve: {
...baseConfig.resolve,
alias: {
...baseConfig.resolve?.alias,

// Packages
ember: 'ember-source/dist/packages/ember',
'@ember': 'ember-source/dist/packages/@ember',

// Dependencies
'@glimmer': 'ember-source/dist/dependencies/@glimmer',
'@simple-dom': 'ember-source/dist/dependencies/@simple-dom',
'backburner.js': 'ember-source/dist/dependencies/backburner.js',
'rsvp.js': 'ember-source/dist/dependencies/rsvp',
},
},
module: {
...baseConfig.module,
rules: [
Expand All @@ -36,7 +52,7 @@ export const webpackFinal: StorybookConfig['webpackFinal'] = async (baseConfig,
},
],
include: [getProjectRoot()],
exclude: [/node_modules/, ...Object.keys(virtualModules)],
exclude: [/node_modules\/(?!.*ember.*)/, ...Object.keys(virtualModules)],
},
],
},
Expand Down
28 changes: 21 additions & 7 deletions code/frameworks/ember/src/server/framework-preset-babel-ember.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,21 +26,35 @@ export const babel: PresetPropertyFn<'babel'> = (config: TransformOptions, optio
});
}

const isDebug = options.configType === 'DEVELOPMENT';
const babelConfigPlugins = config?.plugins || [];

const extraPlugins = [
[
require.resolve('babel-plugin-htmlbars-inline-precompile'),
require.resolve('babel-plugin-debug-macros'),
{
precompile: precompileWithPlugins,
modules: {
'ember-cli-htmlbars': 'hbs',
'ember-cli-htmlbars-inline-precompile': 'default',
'htmlbars-inline-precompile': 'default',
debugTools: {
source: '@glimmer/debug',
isDebug,
},
externalizeHelpers: {
module: true,
},
flags: [{ source: '@glimmer/env', flags: { DEBUG: isDebug } }],
},
],
[
require.resolve('babel-plugin-ember-template-compilation'),
{
compiler: precompileWithPlugins,
compilerPath: 'ember-source/dist/ember-template-compiler',
enableLegacyModules: [
'ember-cli-htmlbars',
'ember-cli-htmlbars-inline-precompile',
'htmlbars-inline-precompile',
],
},
],
[require.resolve('babel-plugin-ember-modules-api-polyfill')],
];

return {
Expand Down
84 changes: 79 additions & 5 deletions code/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2900,6 +2900,45 @@ __metadata:
languageName: node
linkType: hard

"@glimmer/env@npm:0.1.7":
version: 0.1.7
resolution: "@glimmer/env@npm:0.1.7"
checksum: 10c0/a8819720b3daa124d07e952e6cb7185593a2be32e0a6bddfad34d0d120f64a12bf8edf4702eea51bb976801171c1912e548689c3bc9b7c99d2c19d407838d32d
languageName: node
linkType: hard

"@glimmer/interfaces@npm:0.84.3":
version: 0.84.3
resolution: "@glimmer/interfaces@npm:0.84.3"
dependencies:
"@simple-dom/interface": "npm:^1.4.0"
checksum: 10c0/654dfbcd4a1492745ff872b29b24d6ad261bd22382baa266097f9ea03b2ef4ac6f1c8120a38d0cd8e19f92f75dbd11b0e0de4de71b20ec01de566e6eec5d7bb9
languageName: node
linkType: hard

"@glimmer/syntax@npm:^0.84.3":
version: 0.84.3
resolution: "@glimmer/syntax@npm:0.84.3"
dependencies:
"@glimmer/interfaces": "npm:0.84.3"
"@glimmer/util": "npm:0.84.3"
"@handlebars/parser": "npm:~2.0.0"
simple-html-tokenizer: "npm:^0.5.11"
checksum: 10c0/7ab226e823e9b90b83ac6a76fa3324823739a667199eda48d3e7661c6fd701b38267d4154657a4310cc655f69ddea3fa01a5bc77f5a5cdced25a100f1bc14976
languageName: node
linkType: hard

"@glimmer/util@npm:0.84.3":
version: 0.84.3
resolution: "@glimmer/util@npm:0.84.3"
dependencies:
"@glimmer/env": "npm:0.1.7"
"@glimmer/interfaces": "npm:0.84.3"
"@simple-dom/interface": "npm:^1.4.0"
checksum: 10c0/16b18024a1c9505d4051fdc129e8b9ea0db6200856270e5f821dfc90be76895221ea89541a8481a7d9f88b55a430395aba34a27ac9ac090ea3feba7ecc749c88
languageName: node
linkType: hard

"@glimmer/vm-babel-plugins@npm:0.80.3":
version: 0.80.3
resolution: "@glimmer/vm-babel-plugins@npm:0.80.3"
Expand Down Expand Up @@ -2970,6 +3009,13 @@ __metadata:
languageName: node
linkType: hard

"@handlebars/parser@npm:~2.0.0":
version: 2.0.0
resolution: "@handlebars/parser@npm:2.0.0"
checksum: 10c0/186adabd36b59594309f8e8715ee20d6f842568308811b70b992de9c74fd0015637b08652cbe03d329e125ac4cca314ec571ef09ba9c869e87e5da287de13859
languageName: node
linkType: hard

"@hapi/accept@npm:^5.0.1":
version: 5.0.2
resolution: "@hapi/accept@npm:5.0.2"
Expand Down Expand Up @@ -5051,6 +5097,13 @@ __metadata:
languageName: node
linkType: hard

"@simple-dom/interface@npm:^1.4.0":
version: 1.4.0
resolution: "@simple-dom/interface@npm:1.4.0"
checksum: 10c0/22d41f17b5437264c8531f2d79fc1ac4433840b7d9220b58630438f39af8cc6ad0b4f72d137ec82c5acbca59a23cecfde0947bf6fae37fd5df1bb0fa105c0ed3
languageName: node
linkType: hard

"@sinclair/typebox@npm:^0.27.8":
version: 0.27.8
resolution: "@sinclair/typebox@npm:0.27.8"
Expand Down Expand Up @@ -6113,17 +6166,14 @@ __metadata:
"@storybook/types": "workspace:*"
"@types/babel__preset-env": "npm:^7"
babel-loader: "npm:9.1.3"
babel-plugin-ember-template-compilation: "npm:^2.2.5"
ember-source: "npm:~3.28.1"
find-up: "npm:^5.0.0"
ts-dedent: "npm:^2.0.0"
typescript: "npm:^5.3.2"
peerDependencies:
"@babel/core": "*"
babel-plugin-ember-modules-api-polyfill: ^3.5.0
babel-plugin-htmlbars-inline-precompile: ^5.3.1
ember-source: ~3.28.1 || ^4.0.0
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
ember-source: ~3.28.1 || ^4.0.0 || ^5.0.0
languageName: unknown
linkType: soft

Expand Down Expand Up @@ -10470,6 +10520,13 @@ __metadata:
languageName: node
linkType: hard

"babel-import-util@npm:^3.0.0":
version: 3.0.0
resolution: "babel-import-util@npm:3.0.0"
checksum: 10c0/cad6e83b36e1939562c27a3e3fdf16ed509369717af2cdba0870f116bd217d031fe1202cf4a54bbfba7eacbfd4e076aee7fd49ea573fba44d4d4dee8dfc2b388
languageName: node
linkType: hard

"babel-loader@npm:9.1.3, babel-loader@npm:^9.1.3":
version: 9.1.3
resolution: "babel-loader@npm:9.1.3"
Expand Down Expand Up @@ -10525,6 +10582,16 @@ __metadata:
languageName: node
linkType: hard

"babel-plugin-ember-template-compilation@npm:^2.2.5":
version: 2.2.5
resolution: "babel-plugin-ember-template-compilation@npm:2.2.5"
dependencies:
"@glimmer/syntax": "npm:^0.84.3"
babel-import-util: "npm:^3.0.0"
checksum: 10c0/0dbd83d3260c02009459620fa0aee4672752cf125a9cb8bf78af72c48d572b0b0aee0bf75687faa504c657e3fcd937dda7c5fe1874181b0ee7f471169893c8bf
languageName: node
linkType: hard

"babel-plugin-filter-imports@npm:^4.0.0":
version: 4.0.0
resolution: "babel-plugin-filter-imports@npm:4.0.0"
Expand Down Expand Up @@ -26053,6 +26120,13 @@ __metadata:
languageName: node
linkType: hard

"simple-html-tokenizer@npm:^0.5.11":
version: 0.5.11
resolution: "simple-html-tokenizer@npm:0.5.11"
checksum: 10c0/086864c3f499f5988dd6ad65a8c72b8c3c8a443edf469cb531f8091b6524b435b173651e543782a88060a55f05c6fe9a249ac5c971a2d0f451cba02c5156b9e5
languageName: node
linkType: hard

"simple-swizzle@npm:^0.2.2":
version: 0.2.2
resolution: "simple-swizzle@npm:0.2.2"
Expand Down
Loading