Skip to content
Open
Show file tree
Hide file tree
Changes from 4 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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
/tmp/

# compiled output
/dist/
/declarations/
Expand Down
8 changes: 5 additions & 3 deletions app/app.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
import Application from '@ember/application';
import Resolver from 'ember-resolver';
import loadInitializers from 'ember-load-initializers';
import config from 'ember-help-wanted/config/environment';
import config from './config/environment';
import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros';

import compatModules from '@embroider/virtual/compat-modules';

if (macroCondition(isDevelopingApp())) {
importSync('./deprecation-workflow');
}

export default class App extends Application {
modulePrefix = config.modulePrefix;
podModulePrefix = config.podModulePrefix;
Resolver = Resolver;
Resolver = Resolver.withModules(compatModules);
}

loadInitializers(App, config.modulePrefix);
loadInitializers(App, config.modulePrefix, compatModules);
3 changes: 3 additions & 0 deletions app/config/environment.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import loadConfigFromMeta from '@embroider/config-meta-loader';

export default loadConfigFromMeta('ember-help-wanted');
43 changes: 43 additions & 0 deletions babel.config.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
const {
babelCompatSupport,
templateCompatSupport,
} = require('@embroider/compat/babel');
const scopedCSS = require('ember-scoped-css/build');

module.exports = {
plugins: [
[
'babel-plugin-ember-template-compilation',
{
compilerPath: 'ember-source/dist/ember-template-compiler.js',
enableLegacyModules: [
'ember-cli-htmlbars',
'ember-cli-htmlbars-inline-precompile',
'htmlbars-inline-precompile',
],
transforms: [...templateCompatSupport(), scopedCSS.templatePlugin({})],
},
],
[
'module:decorator-transforms',
{
runtime: {
import: require.resolve('decorator-transforms/runtime-esm'),
},
},
],
[
'@babel/plugin-transform-runtime',
{
absoluteRuntime: __dirname,
useESModules: true,
regenerator: false,
},
],
...babelCompatSupport(),
],

generatorOpts: {
compact: false,
},
};
13 changes: 6 additions & 7 deletions ember-cli-build.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
'use strict';

const EmberApp = require('ember-cli/lib/broccoli/ember-app');

module.exports = function (defaults) {
const { compatBuild } = require('@embroider/compat');

module.exports = async function (defaults) {
const { buildOnce } = await import('@embroider/vite');

const app = new EmberApp(defaults, {
emberData: {
deprecations: {
Expand All @@ -13,11 +16,7 @@ module.exports = function (defaults) {
DEPRECATE_STORE_EXTENDS_EMBER_OBJECT: false,
},
},
'ember-scoped-css': {
layerName: false,
additionalRoots: ['templates/'],
},
});

return app.toTree();
return compatBuild(app, buildOnce);
};
3 changes: 2 additions & 1 deletion eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ const esmParserOptions = {
requireConfigFile: false,
babelOptions: {
plugins: [
['@babel/plugin-proposal-decorators', { decoratorsBeforeExport: true }],
['@babel/plugin-proposal-decorators', { legacy: true }],
['@babel/plugin-proposal-class-properties', { loose: true }],
],
},
};
Expand Down
13 changes: 9 additions & 4 deletions app/index.html → index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,21 @@

{{content-for "head"}}

<link integrity="" rel="stylesheet" href="{{rootURL}}assets/vendor.css">
<link integrity="" rel="stylesheet" href="{{rootURL}}assets/ember-help-wanted.css">
<link integrity="" rel="stylesheet" href="/@embroider/virtual/vendor.css">
<link integrity="" rel="stylesheet" href="/@embroider/virtual/app.css">

{{content-for "head-footer"}}
</head>
<body>
{{content-for "body"}}

<script src="{{rootURL}}assets/vendor.js"></script>
<script src="{{rootURL}}assets/ember-help-wanted.js"></script>
<script src="/@embroider/virtual/vendor.js"></script>
<script type="module">
import Application from './app/app';
import environment from './app/config/environment';

Application.create(environment.APP);
</script>

{{content-for "body-footer"}}
</body>
Expand Down
89 changes: 48 additions & 41 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"test": "tests"
},
"scripts": {
"build": "ember build --environment=production",
"build": "vite build",
"format": "prettier . --cache --write",
"lint": "concurrently \"npm:lint:*(!fix)\" --names \"lint:\" --prefixColors auto",
"lint:dependency": "ember dependency-lint",
Expand All @@ -23,92 +23,99 @@
"lint:hbs:fix": "ember-template-lint . --fix",
"lint:js": "eslint . --cache",
"lint:js:fix": "eslint . --fix",
"start": "ember serve",
"start": "vite",
"start:local": "cross-env LOCAL_API=true ember s",
"test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\" --prefixColors auto",
"test:ember": "ember test"
"test:ember": "vite build --mode test && ember test --path dist"
},
"devDependencies": {
"@babel/core": "^7.26.10",
"@babel/eslint-parser": "^7.26.10",
"@babel/plugin-proposal-decorators": "^7.25.9",
"@babel/core": "^7.27.4",
"@babel/eslint-parser": "^7.27.5",
"@babel/plugin-proposal-decorators": "^7.27.1",
"@babel/plugin-transform-runtime": "^7.27.4",
"@ember/optional-features": "^2.2.0",
"@ember/string": "^3.0.1",
"@ember/test-helpers": "^5.1.0",
"@ember/string": "^4.0.1",
"@ember/test-helpers": "^5.2.2",
"@ember/test-waiters": "^4.1.0",
"@embroider/macros": "^1.16.12",
"@eslint/js": "^9.23.0",
"@glimmer/component": "^1.0.0",
"@embroider/compat": "^4.1.0",
"@embroider/config-meta-loader": "^1.0.0",
"@embroider/core": "^4.1.1",
"@embroider/macros": "^1.18.0",
"@embroider/vite": "^1.1.5",
"@eslint/js": "^9.29.0",
"@glimmer/component": "^1.1.2",
"@glimmer/tracking": "^1.1.2",
"@percy/cli": "^1.30.7",
"@percy/ember": "^3.0.1",
"@percy/cli": "^1.31.0",
"@percy/ember": "github:NullVoxPopuli/percy-ember#nvp/make-vite-compatible-via-the-compat-plugin",
"@percy/sdk-utils": "^1.31.0",
"@rollup/plugin-babel": "^6.0.4",
"@sinonjs/fake-timers": "^7.1.2",
"broccoli-asset-rev": "^3.0.0",
"concurrently": "^9.1.2",
"babel-plugin-ember-template-compilation": "^2.4.1",
"concurrently": "^9.2.0",
"cross-env": "^7.0.3",
"dayjs": "^1.11.13",
"decorator-transforms": "^2.3.0",
"ember-auto-import": "^2.10.0",
"ember-cli": "~6.3.1",
"ember-cli-app-version": "^7.0.0",
"ember-cli-babel": "^8.2.0",
"ember-cli-clean-css": "^3.0.0",
"ember-cli-dependency-checker": "^3.3.3",
"ember-cli-dependency-lint": "^2.0.1",
"ember-cli-deprecation-workflow": "^3.3.0",
"ember-cli-htmlbars": "^6.3.0",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-netlify": "^0.4.1",
"ember-cli-sri": "^2.1.1",
"ember-cli-terser": "^4.0.2",
"ember-data": "~5.3.11",
"ember-functions-as-helper-polyfill": "^2.1.2",
"ember-data": "~5.3.13",
"ember-functions-as-helper-polyfill": "^2.1.3",
"ember-load-initializers": "^3.0.1",
"ember-math-helpers": "^3.0.0",
"ember-mirage": "^0.4.2",
"ember-modifier": "^4.2.0",
"ember-mirage": "github:mansona/ember-mirage#fix-qunit-timing&path:ember-mirage",
"ember-modifier": "^4.2.2",
"ember-page-title": "^8.2.4",
"ember-qunit": "^8.1.1",
"ember-resolver": "^12.0.1",
"ember-scoped-css": "^0.23.2",
"ember-scoped-css-compat": "^10.2.1",
"ember-qunit": "^9.0.3",
"ember-resolver": "^13.1.1",
"ember-scoped-css": "^0.23.3",
"ember-source": "~6.0.1",
"ember-styleguide": "^7.1.0",
"ember-template-imports": "^4.3.0",
"ember-template-lint": "^6.1.0",
"ember-test-selectors": "^6.0.0",
"eslint": "^9.23.0",
"eslint": "^9.29.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-ember": "^12.5.0",
"eslint-plugin-n": "^17.16.2",
"eslint-plugin-n": "^17.20.0",
"eslint-plugin-qunit": "^8.1.2",
"glob": "^7.2.3",
"globals": "^15.15.0",
"http-proxy": "^1.18.1",
"invert-color": "^2.0.0",
"lint-to-the-future": "^2.6.2",
"lint-to-the-future-ember-template": "^3.0.0",
"lint-to-the-future-eslint": "^3.0.0",
"lint-to-the-future": "^2.6.3",
"lint-to-the-future-ember-template": "^3.1.0",
"lint-to-the-future-eslint": "^3.1.0",
"lint-to-the-future-stylelint": "^1.1.0",
"loader.js": "^4.7.0",
"luxon": "^2.5.2",
"miragejs": "^0.1.48",
"morgan": "^1.10.0",
"normalize.css": "^8.0.1",
"prettier": "^3.5.3",
"prettier-plugin-ember-template-tag": "^2.0.4",
"prettier": "^3.6.1",
"prettier-plugin-ember-template-tag": "^2.0.6",
"qunit": "^2.24.1",
"qunit-dom": "^3.4.0",
"stylelint": "^16.16.0",
"stylelint": "^16.21.0",
"stylelint-config-standard": "^36.0.1",
"tracked-built-ins": "^3.4.0",
"util": "^0.12.5",
"webpack": "^5.98.0"
"vite": "^6.3.5"
},
"engines": {
"node": ">= 18"
},
"ember": {
"edition": "octane"
},
"packageManager": "[email protected]+sha512.df0136e797db0cfa7ec1084e77f3bdf81bacbae9066832fbf95cba4c2140ad05e64f316cde51ce3f99ea00a91ffc702d6aedd3c0f450f895e3e7c052fe573cd8"
"packageManager": "[email protected]+sha512.df0136e797db0cfa7ec1084e77f3bdf81bacbae9066832fbf95cba4c2140ad05e64f316cde51ce3f99ea00a91ffc702d6aedd3c0f450f895e3e7c052fe573cd8",
"ember-addon": {
"type": "app",
"version": 2
},
"exports": {
"./tests/*": "./tests/*",
"./*": "./app/*"
}
}
Loading