diff --git a/.changeset/gentle-elephants-call.md b/.changeset/gentle-elephants-call.md
new file mode 100644
index 00000000..56c3455b
--- /dev/null
+++ b/.changeset/gentle-elephants-call.md
@@ -0,0 +1,5 @@
+---
+"create-v2-addon-repo": minor
+---
+
+Updated blueprints
diff --git a/configs/eslint/ember/app/index.js b/configs/eslint/ember/app/index.js
index 0166bfce..6e5d05fa 100644
--- a/configs/eslint/ember/app/index.js
+++ b/configs/eslint/ember/app/index.js
@@ -59,14 +59,14 @@ module.exports = {
},
},
{
- files: ['**/*.gts'],
+ files: ['**/*.gjs'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gts'],
+ extends: ['plugin:ember/recommended-gjs'],
},
{
- files: ['**/*.gjs'],
+ files: ['**/*.gts'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gjs'],
+ extends: ['plugin:ember/recommended-gts'],
},
{
files: ['**/*.{gjs,gts,js,ts}'],
diff --git a/configs/eslint/ember/v1-addon/index.js b/configs/eslint/ember/v1-addon/index.js
index c0155d20..f04c4351 100644
--- a/configs/eslint/ember/v1-addon/index.js
+++ b/configs/eslint/ember/v1-addon/index.js
@@ -59,14 +59,14 @@ module.exports = {
},
},
{
- files: ['**/*.gts'],
+ files: ['**/*.gjs'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gts'],
+ extends: ['plugin:ember/recommended-gjs'],
},
{
- files: ['**/*.gjs'],
+ files: ['**/*.gts'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gjs'],
+ extends: ['plugin:ember/recommended-gts'],
},
{
files: ['**/*.{gjs,gts,js,ts}'],
diff --git a/configs/eslint/ember/v2-addon/index.js b/configs/eslint/ember/v2-addon/index.js
index 381b3a02..e48e8eaf 100644
--- a/configs/eslint/ember/v2-addon/index.js
+++ b/configs/eslint/ember/v2-addon/index.js
@@ -59,14 +59,14 @@ module.exports = {
},
},
{
- files: ['**/*.gts'],
+ files: ['**/*.gjs'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gts'],
+ extends: ['plugin:ember/recommended-gjs'],
},
{
- files: ['**/*.gjs'],
+ files: ['**/*.gts'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gjs'],
+ extends: ['plugin:ember/recommended-gts'],
},
{
files: ['**/*.{gjs,gts,js,ts}'],
diff --git a/packages/blueprints-addon/CHANGELOG.md b/packages/blueprints-addon/CHANGELOG.md
index fa256ffb..cd34df35 100644
--- a/packages/blueprints-addon/CHANGELOG.md
+++ b/packages/blueprints-addon/CHANGELOG.md
@@ -1,31 +1 @@
# blueprints-addon
-
-## 0.3.0
-
-### Minor Changes
-
-- [#16](https://github.com/ijlee2/embroider-toolbox/pull/16) Added blueprints for create-v2-addon-repo (Part 5) ([@ijlee2](https://github.com/ijlee2))
-
-## 0.2.0
-
-### Minor Changes
-
-- [#10](https://github.com/ijlee2/embroider-toolbox/pull/10) Simplified API for new command and tests ([@ijlee2](https://github.com/ijlee2))
-- [#13](https://github.com/ijlee2/embroider-toolbox/pull/13) Added blueprints for create-v2-addon-repo (Part 2) ([@ijlee2](https://github.com/ijlee2))
-- [#14](https://github.com/ijlee2/embroider-toolbox/pull/14) Added blueprints for create-v2-addon-repo (Part 3) ([@ijlee2](https://github.com/ijlee2))
-
-### Patch Changes
-
-- [#12](https://github.com/ijlee2/embroider-toolbox/pull/12) Specified the location of test-app for generate and destroy commands ([@ijlee2](https://github.com/ijlee2))
-
-## 0.1.0
-
-### Minor Changes
-
-- [#2](https://github.com/ijlee2/embroider-toolbox/pull/2) Scaffolded blueprints-addon ([@ijlee2](https://github.com/ijlee2))
-- [#3](https://github.com/ijlee2/embroider-toolbox/pull/3) Implemented new command ([@ijlee2](https://github.com/ijlee2))
-- [#4](https://github.com/ijlee2/embroider-toolbox/pull/4) Scaffolded generate and destroy commands ([@ijlee2](https://github.com/ijlee2))
-- [#5](https://github.com/ijlee2/embroider-toolbox/pull/5) Separated generate commands ([@ijlee2](https://github.com/ijlee2))
-- [#6](https://github.com/ijlee2/embroider-toolbox/pull/6) Implemented generate commands (Part 1) ([@ijlee2](https://github.com/ijlee2))
-- [#7](https://github.com/ijlee2/embroider-toolbox/pull/7) Implemented generate commands (Part 2) ([@ijlee2](https://github.com/ijlee2))
-- [#8](https://github.com/ijlee2/embroider-toolbox/pull/8) Implemented destroy commands ([@ijlee2](https://github.com/ijlee2))
diff --git a/packages/blueprints-addon/README.md b/packages/blueprints-addon/README.md
index cd34df35..1401d5d8 100644
--- a/packages/blueprints-addon/README.md
+++ b/packages/blueprints-addon/README.md
@@ -1 +1,73 @@
# blueprints-addon
+
+_CLI for v2 addons_
+
+1. [Features](#features)
+1. [Usage](#usage)
+1. [Compatibility](#compatibility)
+
+
+## Features
+
+Standardize how you write v2 addons:
+
+- Run `new` to create a v2 addon
+- Run `generate` to create source and test files
+- Run `destroy` to remove source and test files
+- Blueprints available for components, helpers, modifiers, services, and utilities
+- Tailor addon blueprints to your needs
+
+
+## Usage
+
+Install `blueprints-addon` as a development dependency in these locations:
+
+
+
+Workspace root
+
+```json5
+/* package.json */
+{
+ "scripts": {
+ "addon": "blueprints-addon"
+ },
+ "devDependencies": {
+ "blueprints-addon": "workspace:*"
+ }
+}
+```
+
+
+
+
+
+V2 addon in packages
+
+```json5
+/* Example: packages/ui/button/package.json */
+{
+ "scripts": {
+ "addon": "blueprints-addon --test-app-location '../../../test-app'"
+ },
+ "devDependencies": {
+ "blueprints-addon": "workspace:*"
+ }
+}
+```
+
+
+
+> [!NOTE]
+>
+> After you build `blueprints-addon`, please run `pnpm install` at the workspace root so that the blueprints are available.
+
+
+## Compatibility
+
+- Node.js v18 or above
+
+
+## License
+
+This project is licensed under the [MIT License](LICENSE.md).
diff --git a/packages/blueprints-addon/bin/blueprints-addon.ts b/packages/blueprints-addon/bin/blueprints-addon.ts
index df42913a..fa51f27a 100755
--- a/packages/blueprints-addon/bin/blueprints-addon.ts
+++ b/packages/blueprints-addon/bin/blueprints-addon.ts
@@ -10,6 +10,14 @@ import { runDestroy, runGenerate, runNew } from '../src/index.js';
process.title = 'blueprints-addon';
// Set codemod options
+const DEFAULT_BLUEPRINT_VALUE = {
+ component: 'glimmer',
+ helper: 'class',
+ modifier: 'class',
+ service: 'class',
+ util: 'function',
+} as const;
+
yargs(hideBin(process.argv))
.command({
aliases: ['d'],
@@ -98,7 +106,8 @@ yargs(hideBin(process.argv))
handler: (argv) => {
runGenerate({
entity: {
- blueprint: argv['blueprint'] ?? 'glimmer',
+ blueprint:
+ argv['blueprint'] ?? DEFAULT_BLUEPRINT_VALUE.component,
name: argv['name'],
type: 'component',
},
@@ -127,7 +136,7 @@ yargs(hideBin(process.argv))
handler: (argv) => {
runGenerate({
entity: {
- blueprint: argv['blueprint'] ?? 'class',
+ blueprint: argv['blueprint'] ?? DEFAULT_BLUEPRINT_VALUE.helper,
name: argv['name'],
type: 'helper',
},
@@ -156,7 +165,8 @@ yargs(hideBin(process.argv))
handler: (argv) => {
runGenerate({
entity: {
- blueprint: argv['blueprint'] ?? 'class',
+ blueprint:
+ argv['blueprint'] ?? DEFAULT_BLUEPRINT_VALUE.modifier,
name: argv['name'],
type: 'modifier',
},
@@ -185,7 +195,7 @@ yargs(hideBin(process.argv))
handler: (argv) => {
runGenerate({
entity: {
- blueprint: argv['blueprint'] ?? 'class',
+ blueprint: argv['blueprint'] ?? DEFAULT_BLUEPRINT_VALUE.service,
name: argv['name'],
type: 'service',
},
@@ -214,7 +224,7 @@ yargs(hideBin(process.argv))
handler: (argv) => {
runGenerate({
entity: {
- blueprint: argv['blueprint'] ?? 'function',
+ blueprint: argv['blueprint'] ?? DEFAULT_BLUEPRINT_VALUE.util,
name: argv['name'],
type: 'util',
},
diff --git a/packages/blueprints-addon/package.json b/packages/blueprints-addon/package.json
index f2aa99c3..ccb5ae98 100644
--- a/packages/blueprints-addon/package.json
+++ b/packages/blueprints-addon/package.json
@@ -1,8 +1,8 @@
{
"name": "blueprints-addon",
- "version": "0.3.0",
+ "version": "0.0.0",
"private": true,
- "description": "Blueprints for v2 addons",
+ "description": "CLI for v2 addons",
"keywords": [
"codemod",
"ember-codemod",
diff --git a/packages/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.gts b/packages/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.gts
index b26e65ec..849d821d 100644
--- a/packages/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.gts
+++ b/packages/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.gts
@@ -1,7 +1,7 @@
import { <%= options.entity.classifiedName %> } from '<%= options.addon.name %>';
import { render } from '@ember/test-helpers';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '<%= options.testApp.name %>/tests/helpers';
module('Integration | Component | <%= options.entity.name %>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.ts b/packages/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.ts
index 0ba628c5..1a97d05a 100644
--- a/packages/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.ts
+++ b/packages/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.ts
@@ -1,7 +1,7 @@
import { render } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '<%= options.testApp.name %>/tests/helpers';
module('Integration | Component | <%= options.entity.name %>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/blueprints-addon/src/blueprints/run-generate/component/template-tag/__fileName__.gts b/packages/blueprints-addon/src/blueprints/run-generate/component/template-tag/__fileName__.gts
index c2e3891d..93e5ba9d 100644
--- a/packages/blueprints-addon/src/blueprints/run-generate/component/template-tag/__fileName__.gts
+++ b/packages/blueprints-addon/src/blueprints/run-generate/component/template-tag/__fileName__.gts
@@ -1,4 +1,4 @@
-import Component from '@glimmer/component';
+import type { TOC } from '@ember/component/template-only';
import styles from './<%= data.localFileName %>.css';
@@ -10,11 +10,11 @@ interface <%= options.entity.classifiedName %>Signature {
Element: null;
}
-// eslint-disable-next-line ember/no-empty-glimmer-component-classes
-export default class <%= options.entity.classifiedName %>Component extends Component<<%= options.entity.classifiedName %>Signature> {
+const <%= options.entity.classifiedName %>Component: TOC<<%= options.entity.classifiedName %>Signature> =
{{yield}}
-
-}
+ ;
+
+export default <%= options.entity.classifiedName %>Component;
diff --git a/packages/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.gts b/packages/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.gts
index 39f2ad4f..d849ea1c 100644
--- a/packages/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.gts
+++ b/packages/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.gts
@@ -1,7 +1,7 @@
import { <%= options.entity.camelizedName %> } from '<%= options.addon.name %>';
import { render } from '@ember/test-helpers';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '<%= options.testApp.name %>/tests/helpers';
module('Integration | Helper | <%= options.entity.name %>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.ts b/packages/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.ts
index dc2fea5b..711f39b0 100644
--- a/packages/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.ts
+++ b/packages/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.ts
@@ -1,7 +1,7 @@
import { render } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '<%= options.testApp.name %>/tests/helpers';
module('Integration | Helper | <%= options.entity.name %>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.gts b/packages/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.gts
index 1a0994aa..069b5a8d 100644
--- a/packages/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.gts
+++ b/packages/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.gts
@@ -1,7 +1,7 @@
import { <%= options.entity.camelizedName %> } from '<%= options.addon.name %>';
import { render } from '@ember/test-helpers';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '<%= options.testApp.name %>/tests/helpers';
module('Integration | Modifier | <%= options.entity.name %>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.ts b/packages/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.ts
index b82e5751..812feca6 100644
--- a/packages/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.ts
+++ b/packages/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.ts
@@ -1,7 +1,7 @@
import { render } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '<%= options.testApp.name %>/tests/helpers';
module('Integration | Modifier | <%= options.entity.name %>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/blueprints-addon/src/blueprints/run-generate/service/__testAppLocation__/__fileName__.ts b/packages/blueprints-addon/src/blueprints/run-generate/service/__testAppLocation__/__fileName__.ts
index a3d2e9b3..c11819a7 100644
--- a/packages/blueprints-addon/src/blueprints/run-generate/service/__testAppLocation__/__fileName__.ts
+++ b/packages/blueprints-addon/src/blueprints/run-generate/service/__testAppLocation__/__fileName__.ts
@@ -1,5 +1,5 @@
import { module, test } from 'qunit';
-import { setupTest } from 'test-app/tests/helpers';
+import { setupTest } from '<%= options.testApp.name %>/tests/helpers';
module('Unit | Service | <%= options.entity.name %>', function (hooks) {
setupTest(hooks);
diff --git a/packages/blueprints-addon/src/blueprints/run-new/__addonLocation__/.eslintrc.js b/packages/blueprints-addon/src/blueprints/run-new/__addonLocation__/.eslintrc.js
index 6befcff2..c4a80d3e 100644
--- a/packages/blueprints-addon/src/blueprints/run-new/__addonLocation__/.eslintrc.js
+++ b/packages/blueprints-addon/src/blueprints/run-new/__addonLocation__/.eslintrc.js
@@ -4,22 +4,4 @@ require('@shared-configs/eslint-config-ember/patch');
module.exports = {
extends: ['@shared-configs/eslint-config-ember/v2-addon'],
- parserOptions: {
- project: true,
- tsconfigRootDir: __dirname,
- },
- overrides: [
- // TypeScript files
- {
- files: ['**/*.{gts,ts}'],
- rules: {
- '@typescript-eslint/no-unnecessary-condition': 'error',
- },
- },
- // JavaScript files
- {
- files: ['**/*.{cjs,js,gjs,mjs}'],
- extends: ['plugin:@typescript-eslint/disable-type-checked'],
- },
- ],
};
diff --git a/packages/blueprints-addon/src/blueprints/run-new/__addonLocation__/.prettierignore b/packages/blueprints-addon/src/blueprints/run-new/__addonLocation__/.prettierignore
index d3b7efae..dd79592e 100644
--- a/packages/blueprints-addon/src/blueprints/run-new/__addonLocation__/.prettierignore
+++ b/packages/blueprints-addon/src/blueprints/run-new/__addonLocation__/.prettierignore
@@ -4,7 +4,3 @@
# compiled output
/declarations/
/dist/
-
-# tag
-/**/*.gjs
-/**/*.gts
diff --git a/packages/blueprints-addon/src/blueprints/run-new/__addonLocation__/README.md b/packages/blueprints-addon/src/blueprints/run-new/__addonLocation__/README.md
index ce6f408f..55d800c5 100644
--- a/packages/blueprints-addon/src/blueprints/run-new/__addonLocation__/README.md
+++ b/packages/blueprints-addon/src/blueprints/run-new/__addonLocation__/README.md
@@ -24,7 +24,7 @@ pnpm start
Generate and destroy
-From the package root, you can create (or remove) the source code and its corresponding test file in `test-app`.
+From the package root, you can create (or remove) the source code and its corresponding test file in `<%= options.testApp.name %>`.
```sh
pnpm addon [options]
@@ -43,4 +43,4 @@ For more information, pass `--help`.
## Compatibility
-* Node.js v18 or above
+- Node.js v18 or above
diff --git a/packages/blueprints-addon/src/run-destroy.ts b/packages/blueprints-addon/src/run-destroy.ts
index 82db3eb4..d95bb09c 100644
--- a/packages/blueprints-addon/src/run-destroy.ts
+++ b/packages/blueprints-addon/src/run-destroy.ts
@@ -1,4 +1,5 @@
import {
+ canSkip,
createOptions,
updateAddon,
updateTestApp,
@@ -8,6 +9,16 @@ import type { CodemodOptions } from './types/run-destroy.js';
export function runDestroy(codemodOptions: CodemodOptions): void {
const options = createOptions(codemodOptions);
+ if (canSkip(options)) {
+ console.log(
+ `🚫 Skipped removing ${options.entity.name}, because it was already removed.\n`,
+ );
+
+ return;
+ }
+
updateAddon(options);
updateTestApp(options);
+
+ console.log(`✅ Removed ${options.entity.name} and its test file.\n`);
}
diff --git a/packages/blueprints-addon/src/run-generate.ts b/packages/blueprints-addon/src/run-generate.ts
index b707756a..473e62ad 100644
--- a/packages/blueprints-addon/src/run-generate.ts
+++ b/packages/blueprints-addon/src/run-generate.ts
@@ -10,9 +10,15 @@ export function runGenerate(codemodOptions: CodemodOptions): void {
const options = createOptions(codemodOptions);
if (canSkip(options)) {
+ console.log(
+ `🚫 Skipped creating ${options.entity.name}, because it already exists.\n`,
+ );
+
return;
}
updateAddon(options);
updateTestApp(options);
+
+ console.log(`✅ Created ${options.entity.name} and its test file.\n`);
}
diff --git a/packages/blueprints-addon/src/run-new.ts b/packages/blueprints-addon/src/run-new.ts
index e8be7825..270947cf 100644
--- a/packages/blueprints-addon/src/run-new.ts
+++ b/packages/blueprints-addon/src/run-new.ts
@@ -11,10 +11,16 @@ export function runNew(codemodOptions: CodemodOptions): void {
const options = createOptions(codemodOptions);
if (canSkip(options)) {
+ console.log(
+ `🚫 Skipped creating ${options.addon.name}, because it already exists.\n`,
+ );
+
return;
}
createAddon(options);
updateDocsApp(options);
updateTestApp(options);
+
+ console.log(`✅ Created ${options.addon.name}.\n`);
}
diff --git a/packages/blueprints-addon/src/steps/run-destroy/can-skip.ts b/packages/blueprints-addon/src/steps/run-destroy/can-skip.ts
new file mode 100644
index 00000000..e3ef47a3
--- /dev/null
+++ b/packages/blueprints-addon/src/steps/run-destroy/can-skip.ts
@@ -0,0 +1,16 @@
+import { join } from 'node:path';
+
+import { findFiles } from '@codemod-utils/files';
+
+import type { Options } from '../../types/run-destroy.js';
+
+export function canSkip(options: Options): boolean {
+ const { entity, projectRoot } = options;
+
+ const filePaths = findFiles(
+ join('src', `${entity.type}s`, `${entity.name}.*`),
+ { projectRoot },
+ );
+
+ return filePaths.length === 0;
+}
diff --git a/packages/blueprints-addon/src/steps/run-destroy/index.ts b/packages/blueprints-addon/src/steps/run-destroy/index.ts
index c3a9cb13..95ccba73 100644
--- a/packages/blueprints-addon/src/steps/run-destroy/index.ts
+++ b/packages/blueprints-addon/src/steps/run-destroy/index.ts
@@ -1,3 +1,4 @@
+export * from './can-skip.js';
export * from './create-options.js';
export * from './update-addon.js';
export * from './update-test-app.js';
diff --git a/packages/blueprints-addon/src/steps/run-generate/create-options.ts b/packages/blueprints-addon/src/steps/run-generate/create-options.ts
index 76a7c207..f8ffbff1 100644
--- a/packages/blueprints-addon/src/steps/run-generate/create-options.ts
+++ b/packages/blueprints-addon/src/steps/run-generate/create-options.ts
@@ -33,6 +33,8 @@ export function createOptions(codemodOptions: CodemodOptions): Options {
projectRoot,
testApp: {
location: testAppLocation,
+ name: 'test-app',
+ useTemplateTag: true,
},
};
}
diff --git a/packages/blueprints-addon/src/steps/run-generate/update-test-app/create-test-file.ts b/packages/blueprints-addon/src/steps/run-generate/update-test-app/create-test-file.ts
index 5d791c24..ad1fefa3 100644
--- a/packages/blueprints-addon/src/steps/run-generate/update-test-app/create-test-file.ts
+++ b/packages/blueprints-addon/src/steps/run-generate/update-test-app/create-test-file.ts
@@ -7,15 +7,23 @@ import { createFiles, findFiles } from '@codemod-utils/files';
import type { Options } from '../../../types/run-generate.js';
import { blueprintsRoot } from '../../../utils/blueprints.js';
-const ENABLE_TEMPLATE_TAG = false;
+function getFilesToSkip(options: Options): string[] {
+ const { entity, testApp } = options;
-function getFilesToSkip(): string[] {
const files = new Set();
- if (ENABLE_TEMPLATE_TAG) {
- files.add('__fileName__.ts');
- } else {
- files.add('__fileName__.gts');
+ switch (entity.type) {
+ case 'component':
+ case 'helper':
+ case 'modifier': {
+ if (testApp.useTemplateTag) {
+ files.add('__fileName__.ts');
+ } else {
+ files.add('__fileName__.gts');
+ }
+
+ break;
+ }
}
return Array.from(files);
@@ -48,7 +56,7 @@ function resolveBlueprintFilePath(
}
export function createTestFile(options: Options): void {
- const filesToSkip = getFilesToSkip();
+ const filesToSkip = getFilesToSkip(options);
const cwd = join(
blueprintsRoot,
diff --git a/packages/blueprints-addon/src/types/run-generate.ts b/packages/blueprints-addon/src/types/run-generate.ts
index de34f7a5..8de7840e 100644
--- a/packages/blueprints-addon/src/types/run-generate.ts
+++ b/packages/blueprints-addon/src/types/run-generate.ts
@@ -41,6 +41,8 @@ type Options = {
projectRoot: string;
testApp: {
location: string;
+ name: string;
+ useTemplateTag: boolean;
};
};
diff --git a/packages/blueprints-addon/tests/fixtures/run-generate/output/packages/ui/button/src/components/my-example/template-tag.gts b/packages/blueprints-addon/tests/fixtures/run-generate/output/packages/ui/button/src/components/my-example/template-tag.gts
index f66fa172..9ea4c119 100644
--- a/packages/blueprints-addon/tests/fixtures/run-generate/output/packages/ui/button/src/components/my-example/template-tag.gts
+++ b/packages/blueprints-addon/tests/fixtures/run-generate/output/packages/ui/button/src/components/my-example/template-tag.gts
@@ -1,4 +1,4 @@
-import Component from '@glimmer/component';
+import type { TOC } from '@ember/component/template-only';
import styles from './template-tag.css';
@@ -10,11 +10,11 @@ interface MyExampleTemplateTagSignature {
Element: null;
}
-// eslint-disable-next-line ember/no-empty-glimmer-component-classes
-export default class MyExampleTemplateTagComponent extends Component {
+const MyExampleTemplateTagComponent: TOC =
{{yield}}
-
-}
+ ;
+
+export default MyExampleTemplateTagComponent;
diff --git a/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.ts b/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.gts
similarity index 72%
rename from packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.ts
rename to packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.gts
index c5533f63..5b419e61 100644
--- a/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.ts
+++ b/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.gts
@@ -1,5 +1,5 @@
+import { MyExampleGlimmer } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Component | my-example/glimmer', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
-
- `);
+ await render(
+
+ );
assert.dom().hasText('');
});
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.ts b/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.gts
similarity index 71%
rename from packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.ts
rename to packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.gts
index 28ab1ea2..52d5f10b 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.ts
+++ b/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.gts
@@ -1,5 +1,5 @@
+import { MyExampleTemplateTag } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Component | my-example/template-tag', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
-
- `);
+ await render(
+
+ );
assert.dom().hasText('');
});
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.ts b/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.gts
similarity index 72%
rename from packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.ts
rename to packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.gts
index 4fe90f3b..26d8a78c 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.ts
+++ b/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.gts
@@ -1,5 +1,5 @@
+import { myExampleClass } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Helper | my-example/class', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
- {{my-example/class "1234"}}
- `);
+ await render(
+ {{myExampleClass '1234'}}
+ );
assert.dom().hasText('1234');
});
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.ts b/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.gts
similarity index 71%
rename from packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.ts
rename to packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.gts
index 3b122735..b7484ac4 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.ts
+++ b/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.gts
@@ -1,5 +1,5 @@
+import { myExampleFunction } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Helper | my-example/function', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
- {{my-example/function "1234"}}
- `);
+ await render(
+ {{myExampleFunction '1234'}}
+ );
assert.dom().hasText('1234');
});
diff --git a/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.ts b/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.gts
similarity index 70%
rename from packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.ts
rename to packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.gts
index dbebcf64..8bbf3a6c 100644
--- a/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.ts
+++ b/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.gts
@@ -1,5 +1,5 @@
+import { myExampleClass } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Modifier | my-example/class', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
-
- `);
+ await render(
+
+ );
assert.ok(true);
});
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.ts b/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.gts
similarity index 70%
rename from packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.ts
rename to packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.gts
index d64c6728..27b2e32d 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.ts
+++ b/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.gts
@@ -1,5 +1,5 @@
+import { myExampleFunction } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Modifier | my-example/function', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
-
- `);
+ await render(
+
+ );
assert.ok(true);
});
diff --git a/packages/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.eslintrc.js b/packages/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.eslintrc.js
index 6befcff2..c4a80d3e 100644
--- a/packages/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.eslintrc.js
+++ b/packages/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.eslintrc.js
@@ -4,22 +4,4 @@ require('@shared-configs/eslint-config-ember/patch');
module.exports = {
extends: ['@shared-configs/eslint-config-ember/v2-addon'],
- parserOptions: {
- project: true,
- tsconfigRootDir: __dirname,
- },
- overrides: [
- // TypeScript files
- {
- files: ['**/*.{gts,ts}'],
- rules: {
- '@typescript-eslint/no-unnecessary-condition': 'error',
- },
- },
- // JavaScript files
- {
- files: ['**/*.{cjs,js,gjs,mjs}'],
- extends: ['plugin:@typescript-eslint/disable-type-checked'],
- },
- ],
};
diff --git a/packages/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.prettierignore b/packages/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.prettierignore
index d3b7efae..dd79592e 100644
--- a/packages/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.prettierignore
+++ b/packages/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.prettierignore
@@ -4,7 +4,3 @@
# compiled output
/declarations/
/dist/
-
-# tag
-/**/*.gjs
-/**/*.gts
diff --git a/packages/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/README.md b/packages/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/README.md
index 246ae7c0..855a9e83 100644
--- a/packages/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/README.md
+++ b/packages/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/README.md
@@ -43,4 +43,4 @@ For more information, pass `--help`.
## Compatibility
-* Node.js v18 or above
+- Node.js v18 or above
diff --git a/packages/create-v2-addon-repo/README.md b/packages/create-v2-addon-repo/README.md
index 7b8156a7..98587cd0 100644
--- a/packages/create-v2-addon-repo/README.md
+++ b/packages/create-v2-addon-repo/README.md
@@ -1 +1,70 @@
# create-v2-addon-repo
+
+_Codemod to create a repo with v2 addons_
+
+1. [Features](#features)
+1. [Usage](#usage)
+1. [Compatibility](#compatibility)
+1. [Contributing](#contributing)
+1. [License](#license)
+
+
+## Features
+
+Create a batteries-included project fast:
+
+- Create as many v2 addons as you want
+- Run `generate` and `destroy` commands (Ã la Ember CLI)
+- Tailor addon blueprints to your needs
+- Explore bleeding-edge Ember: `embroider-css-modules`, `glint`, `` tag out of the box
+- Maintain project easily: lint, test, CI, and documentation out of the box
+
+
+## Usage
+
+Step 1. Use `npx` to run `create-v2-addon-repo`.
+
+```sh
+npx create-v2-addon-repo
+```
+
+This will create a folder named ``.
+
+Step 2. Change directory to the project root, then run these scripts in sequence:
+
+```sh
+# Install dependencies
+pnpm install
+
+# Build packages
+pnpm build
+```
+
+```sh
+# Commit changes
+git init
+git add .
+git commit -m "Initial commit"
+```
+
+```sh
+# Push changes (to a new repo)
+git remote add origin git@github.com:/.git
+git branch -M main
+git push -u origin main
+```
+
+
+## Compatibility
+
+- Node.js v18 or above
+
+
+## Contributing
+
+See the [Contributing](../../CONTRIBUTING.md) guide for details.
+
+
+## License
+
+This project is licensed under the [MIT License](LICENSE.md).
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/CHANGELOG.md b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/CHANGELOG.md
new file mode 100644
index 00000000..cd34df35
--- /dev/null
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/CHANGELOG.md
@@ -0,0 +1 @@
+# blueprints-addon
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/LICENSE.md b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/LICENSE.md
new file mode 100644
index 00000000..cba618fa
--- /dev/null
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/LICENSE.md
@@ -0,0 +1,9 @@
+The MIT License (MIT)
+
+Copyright (c) 2024 Isaac J. Lee
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/README.md b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/README.md
index cd34df35..1401d5d8 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/README.md
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/README.md
@@ -1 +1,73 @@
# blueprints-addon
+
+_CLI for v2 addons_
+
+1. [Features](#features)
+1. [Usage](#usage)
+1. [Compatibility](#compatibility)
+
+
+## Features
+
+Standardize how you write v2 addons:
+
+- Run `new` to create a v2 addon
+- Run `generate` to create source and test files
+- Run `destroy` to remove source and test files
+- Blueprints available for components, helpers, modifiers, services, and utilities
+- Tailor addon blueprints to your needs
+
+
+## Usage
+
+Install `blueprints-addon` as a development dependency in these locations:
+
+
+
+Workspace root
+
+```json5
+/* package.json */
+{
+ "scripts": {
+ "addon": "blueprints-addon"
+ },
+ "devDependencies": {
+ "blueprints-addon": "workspace:*"
+ }
+}
+```
+
+
+
+
+
+V2 addon in packages
+
+```json5
+/* Example: packages/ui/button/package.json */
+{
+ "scripts": {
+ "addon": "blueprints-addon --test-app-location '../../../test-app'"
+ },
+ "devDependencies": {
+ "blueprints-addon": "workspace:*"
+ }
+}
+```
+
+
+
+> [!NOTE]
+>
+> After you build `blueprints-addon`, please run `pnpm install` at the workspace root so that the blueprints are available.
+
+
+## Compatibility
+
+- Node.js v18 or above
+
+
+## License
+
+This project is licensed under the [MIT License](LICENSE.md).
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/__npmignore__ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/__npmignore__
new file mode 100644
index 00000000..cbfe73f8
--- /dev/null
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/__npmignore__
@@ -0,0 +1,22 @@
+# compiled output
+/dist-for-testing/
+/tmp/
+
+# dependencies
+/node_modules/
+
+# misc
+/.DS_Store
+/.env*
+/.eslintcache
+/.eslintignore
+/.eslintrc.cjs
+/.git/
+/.github/
+/.gitignore
+/.pnpm-debug.log
+/.prettierignore
+/.prettierrc.cjs
+/build.sh
+/tests/
+/update-test-fixtures.sh
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/bin/blueprints-addon.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/bin/blueprints-addon.ts
index df42913a..fa51f27a 100755
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/bin/blueprints-addon.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/bin/blueprints-addon.ts
@@ -10,6 +10,14 @@ import { runDestroy, runGenerate, runNew } from '../src/index.js';
process.title = 'blueprints-addon';
// Set codemod options
+const DEFAULT_BLUEPRINT_VALUE = {
+ component: 'glimmer',
+ helper: 'class',
+ modifier: 'class',
+ service: 'class',
+ util: 'function',
+} as const;
+
yargs(hideBin(process.argv))
.command({
aliases: ['d'],
@@ -98,7 +106,8 @@ yargs(hideBin(process.argv))
handler: (argv) => {
runGenerate({
entity: {
- blueprint: argv['blueprint'] ?? 'glimmer',
+ blueprint:
+ argv['blueprint'] ?? DEFAULT_BLUEPRINT_VALUE.component,
name: argv['name'],
type: 'component',
},
@@ -127,7 +136,7 @@ yargs(hideBin(process.argv))
handler: (argv) => {
runGenerate({
entity: {
- blueprint: argv['blueprint'] ?? 'class',
+ blueprint: argv['blueprint'] ?? DEFAULT_BLUEPRINT_VALUE.helper,
name: argv['name'],
type: 'helper',
},
@@ -156,7 +165,8 @@ yargs(hideBin(process.argv))
handler: (argv) => {
runGenerate({
entity: {
- blueprint: argv['blueprint'] ?? 'class',
+ blueprint:
+ argv['blueprint'] ?? DEFAULT_BLUEPRINT_VALUE.modifier,
name: argv['name'],
type: 'modifier',
},
@@ -185,7 +195,7 @@ yargs(hideBin(process.argv))
handler: (argv) => {
runGenerate({
entity: {
- blueprint: argv['blueprint'] ?? 'class',
+ blueprint: argv['blueprint'] ?? DEFAULT_BLUEPRINT_VALUE.service,
name: argv['name'],
type: 'service',
},
@@ -214,7 +224,7 @@ yargs(hideBin(process.argv))
handler: (argv) => {
runGenerate({
entity: {
- blueprint: argv['blueprint'] ?? 'function',
+ blueprint: argv['blueprint'] ?? DEFAULT_BLUEPRINT_VALUE.util,
name: argv['name'],
type: 'util',
},
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/package.json b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/package.json
index d5dca60e..ccb5ae98 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/package.json
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/package.json
@@ -2,7 +2,7 @@
"name": "blueprints-addon",
"version": "0.0.0",
"private": true,
- "description": "Blueprints for v2 addons",
+ "description": "CLI for v2 addons",
"keywords": [
"codemod",
"ember-codemod",
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.gts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.gts
index 565263bb..85b5aaa7 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.gts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.gts
@@ -1,7 +1,7 @@
import { \\<%= options.entity.classifiedName %\\> } from '\\<%= options.addon.name %\\>';
import { render } from '@ember/test-helpers';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '\\<%= options.testApp.name %\\>/tests/helpers';
module('Integration | Component | \\<%= options.entity.name %\\>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.ts
index 12b7ef77..80df034d 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.ts
@@ -1,7 +1,7 @@
import { render } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '\\<%= options.testApp.name %\\>/tests/helpers';
module('Integration | Component | \\<%= options.entity.name %\\>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/component/template-tag/__fileName__.gts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/component/template-tag/__fileName__.gts
index 322d3f57..35d3d63c 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/component/template-tag/__fileName__.gts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/component/template-tag/__fileName__.gts
@@ -1,4 +1,4 @@
-import Component from '@glimmer/component';
+import type { TOC } from '@ember/component/template-only';
import styles from './\\<%= data.localFileName %\\>.css';
@@ -10,11 +10,11 @@ interface \\<%= options.entity.classifiedName %\\>Signature {
Element: null;
}
-// eslint-disable-next-line ember/no-empty-glimmer-component-classes
-export default class \\<%= options.entity.classifiedName %\\>Component extends Component<\\<%= options.entity.classifiedName %\\>Signature> {
+const \\<%= options.entity.classifiedName %\\>Component: TOC<\\<%= options.entity.classifiedName %\\>Signature> =
{{yield}}
-
-}
+ ;
+
+export default \\<%= options.entity.classifiedName %\\>Component;
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.gts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.gts
index d55ce9d5..2ee505ee 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.gts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.gts
@@ -1,7 +1,7 @@
import { \\<%= options.entity.camelizedName %\\> } from '\\<%= options.addon.name %\\>';
import { render } from '@ember/test-helpers';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '\\<%= options.testApp.name %\\>/tests/helpers';
module('Integration | Helper | \\<%= options.entity.name %\\>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.ts
index 20907460..522ad9b7 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.ts
@@ -1,7 +1,7 @@
import { render } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '\\<%= options.testApp.name %\\>/tests/helpers';
module('Integration | Helper | \\<%= options.entity.name %\\>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.gts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.gts
index 4f9151fc..efc35176 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.gts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.gts
@@ -1,7 +1,7 @@
import { \\<%= options.entity.camelizedName %\\> } from '\\<%= options.addon.name %\\>';
import { render } from '@ember/test-helpers';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '\\<%= options.testApp.name %\\>/tests/helpers';
module('Integration | Modifier | \\<%= options.entity.name %\\>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.ts
index d9eb5f56..840e7ead 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.ts
@@ -1,7 +1,7 @@
import { render } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '\\<%= options.testApp.name %\\>/tests/helpers';
module('Integration | Modifier | \\<%= options.entity.name %\\>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/service/__testAppLocation__/__fileName__.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/service/__testAppLocation__/__fileName__.ts
index 6bb601c8..1e33f23f 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/service/__testAppLocation__/__fileName__.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-generate/service/__testAppLocation__/__fileName__.ts
@@ -1,5 +1,5 @@
import { module, test } from 'qunit';
-import { setupTest } from 'test-app/tests/helpers';
+import { setupTest } from '\\<%= options.testApp.name %\\>/tests/helpers';
module('Unit | Service | \\<%= options.entity.name %\\>', function (hooks) {
setupTest(hooks);
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/.eslintrc.js b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/.eslintrc.js
index 6befcff2..c4a80d3e 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/.eslintrc.js
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/.eslintrc.js
@@ -4,22 +4,4 @@ require('@shared-configs/eslint-config-ember/patch');
module.exports = {
extends: ['@shared-configs/eslint-config-ember/v2-addon'],
- parserOptions: {
- project: true,
- tsconfigRootDir: __dirname,
- },
- overrides: [
- // TypeScript files
- {
- files: ['**/*.{gts,ts}'],
- rules: {
- '@typescript-eslint/no-unnecessary-condition': 'error',
- },
- },
- // JavaScript files
- {
- files: ['**/*.{cjs,js,gjs,mjs}'],
- extends: ['plugin:@typescript-eslint/disable-type-checked'],
- },
- ],
};
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/.prettierignore b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/.prettierignore
index d3b7efae..dd79592e 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/.prettierignore
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/.prettierignore
@@ -4,7 +4,3 @@
# compiled output
/declarations/
/dist/
-
-# tag
-/**/*.gjs
-/**/*.gts
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/README.md b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/README.md
index ac30f65f..5ec68bbe 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/README.md
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/README.md
@@ -24,7 +24,7 @@ pnpm start
Generate and destroy
-From the package root, you can create (or remove) the source code and its corresponding test file in `test-app`.
+From the package root, you can create (or remove) the source code and its corresponding test file in `\\<%= options.testApp.name %\\>`.
```sh
pnpm addon [options]
@@ -43,4 +43,4 @@ For more information, pass `--help`.
## Compatibility
-* Node.js v18 or above
+- Node.js v18 or above
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/run-destroy.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/run-destroy.ts
index 82db3eb4..d95bb09c 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/run-destroy.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/run-destroy.ts
@@ -1,4 +1,5 @@
import {
+ canSkip,
createOptions,
updateAddon,
updateTestApp,
@@ -8,6 +9,16 @@ import type { CodemodOptions } from './types/run-destroy.js';
export function runDestroy(codemodOptions: CodemodOptions): void {
const options = createOptions(codemodOptions);
+ if (canSkip(options)) {
+ console.log(
+ `🚫 Skipped removing ${options.entity.name}, because it was already removed.\n`,
+ );
+
+ return;
+ }
+
updateAddon(options);
updateTestApp(options);
+
+ console.log(`✅ Removed ${options.entity.name} and its test file.\n`);
}
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/run-generate.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/run-generate.ts
index b707756a..473e62ad 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/run-generate.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/run-generate.ts
@@ -10,9 +10,15 @@ export function runGenerate(codemodOptions: CodemodOptions): void {
const options = createOptions(codemodOptions);
if (canSkip(options)) {
+ console.log(
+ `🚫 Skipped creating ${options.entity.name}, because it already exists.\n`,
+ );
+
return;
}
updateAddon(options);
updateTestApp(options);
+
+ console.log(`✅ Created ${options.entity.name} and its test file.\n`);
}
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/run-new.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/run-new.ts
index e8be7825..270947cf 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/run-new.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/run-new.ts
@@ -11,10 +11,16 @@ export function runNew(codemodOptions: CodemodOptions): void {
const options = createOptions(codemodOptions);
if (canSkip(options)) {
+ console.log(
+ `🚫 Skipped creating ${options.addon.name}, because it already exists.\n`,
+ );
+
return;
}
createAddon(options);
updateDocsApp(options);
updateTestApp(options);
+
+ console.log(`✅ Created ${options.addon.name}.\n`);
}
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-destroy/can-skip.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-destroy/can-skip.ts
new file mode 100644
index 00000000..e3ef47a3
--- /dev/null
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-destroy/can-skip.ts
@@ -0,0 +1,16 @@
+import { join } from 'node:path';
+
+import { findFiles } from '@codemod-utils/files';
+
+import type { Options } from '../../types/run-destroy.js';
+
+export function canSkip(options: Options): boolean {
+ const { entity, projectRoot } = options;
+
+ const filePaths = findFiles(
+ join('src', `${entity.type}s`, `${entity.name}.*`),
+ { projectRoot },
+ );
+
+ return filePaths.length === 0;
+}
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-destroy/index.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-destroy/index.ts
index c3a9cb13..95ccba73 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-destroy/index.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-destroy/index.ts
@@ -1,3 +1,4 @@
+export * from './can-skip.js';
export * from './create-options.js';
export * from './update-addon.js';
export * from './update-test-app.js';
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-generate/create-options.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-generate/create-options.ts
index 76a7c207..f8ffbff1 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-generate/create-options.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-generate/create-options.ts
@@ -33,6 +33,8 @@ export function createOptions(codemodOptions: CodemodOptions): Options {
projectRoot,
testApp: {
location: testAppLocation,
+ name: 'test-app',
+ useTemplateTag: true,
},
};
}
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-generate/update-test-app/create-test-file.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-generate/update-test-app/create-test-file.ts
index 5d791c24..ad1fefa3 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-generate/update-test-app/create-test-file.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-generate/update-test-app/create-test-file.ts
@@ -7,15 +7,23 @@ import { createFiles, findFiles } from '@codemod-utils/files';
import type { Options } from '../../../types/run-generate.js';
import { blueprintsRoot } from '../../../utils/blueprints.js';
-const ENABLE_TEMPLATE_TAG = false;
+function getFilesToSkip(options: Options): string[] {
+ const { entity, testApp } = options;
-function getFilesToSkip(): string[] {
const files = new Set();
- if (ENABLE_TEMPLATE_TAG) {
- files.add('__fileName__.ts');
- } else {
- files.add('__fileName__.gts');
+ switch (entity.type) {
+ case 'component':
+ case 'helper':
+ case 'modifier': {
+ if (testApp.useTemplateTag) {
+ files.add('__fileName__.ts');
+ } else {
+ files.add('__fileName__.gts');
+ }
+
+ break;
+ }
}
return Array.from(files);
@@ -48,7 +56,7 @@ function resolveBlueprintFilePath(
}
export function createTestFile(options: Options): void {
- const filesToSkip = getFilesToSkip();
+ const filesToSkip = getFilesToSkip(options);
const cwd = join(
blueprintsRoot,
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/types/run-generate.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/types/run-generate.ts
index de34f7a5..8de7840e 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/types/run-generate.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/types/run-generate.ts
@@ -41,6 +41,8 @@ type Options = {
projectRoot: string;
testApp: {
location: string;
+ name: string;
+ useTemplateTag: boolean;
};
};
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/packages/ui/button/src/components/my-example/template-tag.gts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/packages/ui/button/src/components/my-example/template-tag.gts
index f66fa172..9ea4c119 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/packages/ui/button/src/components/my-example/template-tag.gts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/packages/ui/button/src/components/my-example/template-tag.gts
@@ -1,4 +1,4 @@
-import Component from '@glimmer/component';
+import type { TOC } from '@ember/component/template-only';
import styles from './template-tag.css';
@@ -10,11 +10,11 @@ interface MyExampleTemplateTagSignature {
Element: null;
}
-// eslint-disable-next-line ember/no-empty-glimmer-component-classes
-export default class MyExampleTemplateTagComponent extends Component {
+const MyExampleTemplateTagComponent: TOC =
{{yield}}
-
-}
+ ;
+
+export default MyExampleTemplateTagComponent;
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.gts
similarity index 72%
rename from packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.ts
rename to packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.gts
index c5533f63..5b419e61 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.gts
@@ -1,5 +1,5 @@
+import { MyExampleGlimmer } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Component | my-example/glimmer', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
-
- `);
+ await render(
+
+ );
assert.dom().hasText('');
});
diff --git a/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.gts
similarity index 71%
rename from packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.ts
rename to packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.gts
index 28ab1ea2..52d5f10b 100644
--- a/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.gts
@@ -1,5 +1,5 @@
+import { MyExampleTemplateTag } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Component | my-example/template-tag', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
-
- `);
+ await render(
+
+ );
assert.dom().hasText('');
});
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.gts
similarity index 72%
rename from packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.ts
rename to packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.gts
index 4fe90f3b..26d8a78c 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.gts
@@ -1,5 +1,5 @@
+import { myExampleClass } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Helper | my-example/class', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
- {{my-example/class "1234"}}
- `);
+ await render(
+ {{myExampleClass '1234'}}
+ );
assert.dom().hasText('1234');
});
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.gts
similarity index 71%
rename from packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.ts
rename to packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.gts
index 3b122735..b7484ac4 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.gts
@@ -1,5 +1,5 @@
+import { myExampleFunction } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Helper | my-example/function', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
- {{my-example/function "1234"}}
- `);
+ await render(
+ {{myExampleFunction '1234'}}
+ );
assert.dom().hasText('1234');
});
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.gts
similarity index 70%
rename from packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.ts
rename to packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.gts
index dbebcf64..8bbf3a6c 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.gts
@@ -1,5 +1,5 @@
+import { myExampleClass } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Modifier | my-example/class', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
-
- `);
+ await render(
+
+ );
assert.ok(true);
});
diff --git a/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.gts
similarity index 70%
rename from packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.ts
rename to packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.gts
index d64c6728..27b2e32d 100644
--- a/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.ts
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.gts
@@ -1,5 +1,5 @@
+import { myExampleFunction } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Modifier | my-example/function', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
-
- `);
+ await render(
+
+ );
assert.ok(true);
});
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.eslintrc.js b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.eslintrc.js
index 6befcff2..c4a80d3e 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.eslintrc.js
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.eslintrc.js
@@ -4,22 +4,4 @@ require('@shared-configs/eslint-config-ember/patch');
module.exports = {
extends: ['@shared-configs/eslint-config-ember/v2-addon'],
- parserOptions: {
- project: true,
- tsconfigRootDir: __dirname,
- },
- overrides: [
- // TypeScript files
- {
- files: ['**/*.{gts,ts}'],
- rules: {
- '@typescript-eslint/no-unnecessary-condition': 'error',
- },
- },
- // JavaScript files
- {
- files: ['**/*.{cjs,js,gjs,mjs}'],
- extends: ['plugin:@typescript-eslint/disable-type-checked'],
- },
- ],
};
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.prettierignore b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.prettierignore
index d3b7efae..dd79592e 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.prettierignore
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.prettierignore
@@ -4,7 +4,3 @@
# compiled output
/declarations/
/dist/
-
-# tag
-/**/*.gjs
-/**/*.gts
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/README.md b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/README.md
index 246ae7c0..855a9e83 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/README.md
+++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/README.md
@@ -43,4 +43,4 @@ For more information, pass `--help`.
## Compatibility
-* Node.js v18 or above
+- Node.js v18 or above
diff --git a/packages/create-v2-addon-repo/src/blueprints/configs/eslint/ember/app/index.js b/packages/create-v2-addon-repo/src/blueprints/configs/eslint/ember/app/index.js
index 0166bfce..6e5d05fa 100644
--- a/packages/create-v2-addon-repo/src/blueprints/configs/eslint/ember/app/index.js
+++ b/packages/create-v2-addon-repo/src/blueprints/configs/eslint/ember/app/index.js
@@ -59,14 +59,14 @@ module.exports = {
},
},
{
- files: ['**/*.gts'],
+ files: ['**/*.gjs'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gts'],
+ extends: ['plugin:ember/recommended-gjs'],
},
{
- files: ['**/*.gjs'],
+ files: ['**/*.gts'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gjs'],
+ extends: ['plugin:ember/recommended-gts'],
},
{
files: ['**/*.{gjs,gts,js,ts}'],
diff --git a/packages/create-v2-addon-repo/src/blueprints/configs/eslint/ember/v1-addon/index.js b/packages/create-v2-addon-repo/src/blueprints/configs/eslint/ember/v1-addon/index.js
index c0155d20..f04c4351 100644
--- a/packages/create-v2-addon-repo/src/blueprints/configs/eslint/ember/v1-addon/index.js
+++ b/packages/create-v2-addon-repo/src/blueprints/configs/eslint/ember/v1-addon/index.js
@@ -59,14 +59,14 @@ module.exports = {
},
},
{
- files: ['**/*.gts'],
+ files: ['**/*.gjs'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gts'],
+ extends: ['plugin:ember/recommended-gjs'],
},
{
- files: ['**/*.gjs'],
+ files: ['**/*.gts'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gjs'],
+ extends: ['plugin:ember/recommended-gts'],
},
{
files: ['**/*.{gjs,gts,js,ts}'],
diff --git a/packages/create-v2-addon-repo/src/blueprints/configs/eslint/ember/v2-addon/index.js b/packages/create-v2-addon-repo/src/blueprints/configs/eslint/ember/v2-addon/index.js
index 381b3a02..e48e8eaf 100644
--- a/packages/create-v2-addon-repo/src/blueprints/configs/eslint/ember/v2-addon/index.js
+++ b/packages/create-v2-addon-repo/src/blueprints/configs/eslint/ember/v2-addon/index.js
@@ -59,14 +59,14 @@ module.exports = {
},
},
{
- files: ['**/*.gts'],
+ files: ['**/*.gjs'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gts'],
+ extends: ['plugin:ember/recommended-gjs'],
},
{
- files: ['**/*.gjs'],
+ files: ['**/*.gts'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gjs'],
+ extends: ['plugin:ember/recommended-gts'],
},
{
files: ['**/*.{gjs,gts,js,ts}'],
diff --git a/packages/create-v2-addon-repo/src/blueprints/configs/prettier/.prettierrc.js b/packages/create-v2-addon-repo/src/blueprints/configs/prettier/.prettierrc.js
index 000fbb45..09dd01df 100644
--- a/packages/create-v2-addon-repo/src/blueprints/configs/prettier/.prettierrc.js
+++ b/packages/create-v2-addon-repo/src/blueprints/configs/prettier/.prettierrc.js
@@ -1,6 +1,7 @@
'use strict';
module.exports = {
+ plugins: ['prettier-plugin-ember-template-tag'],
overrides: [
{
files: '*.css.d.ts',
@@ -9,17 +10,25 @@ module.exports = {
},
},
{
- files: '*.hbs',
+ files: '*.{cjs,cts,js,mjs,mts,ts}',
+ options: {
+ printWidth: 80,
+ singleQuote: true,
+ },
+ },
+ {
+ files: ['*.hbs'],
options: {
printWidth: 64,
singleQuote: false,
},
},
{
- files: '*.{cjs,cts,gjs,gts,js,mjs,mts,ts}',
+ files: ['*.gjs', '*.gts'],
options: {
printWidth: 80,
singleQuote: true,
+ templateSingleQuote: false,
},
},
],
diff --git a/packages/create-v2-addon-repo/src/blueprints/configs/prettier/package.json b/packages/create-v2-addon-repo/src/blueprints/configs/prettier/package.json
index 26de18e7..4f3c48c7 100644
--- a/packages/create-v2-addon-repo/src/blueprints/configs/prettier/package.json
+++ b/packages/create-v2-addon-repo/src/blueprints/configs/prettier/package.json
@@ -10,6 +10,9 @@
"lint:js": "prettier --check '**/*.js'",
"lint:js:fix": "prettier --write '**/*.js'"
},
+ "dependencies": {
+ "prettier-plugin-ember-template-tag": "^2.0.2"
+ },
"devDependencies": {
"concurrently": "^8.2.2",
"prettier": "^3.3.3"
diff --git a/packages/create-v2-addon-repo/src/blueprints/docs-app/.eslintrc.js b/packages/create-v2-addon-repo/src/blueprints/docs-app/.eslintrc.js
index 98002cae..7949408a 100644
--- a/packages/create-v2-addon-repo/src/blueprints/docs-app/.eslintrc.js
+++ b/packages/create-v2-addon-repo/src/blueprints/docs-app/.eslintrc.js
@@ -4,22 +4,4 @@ require('@shared-configs/eslint-config-ember/patch');
module.exports = {
extends: ['@shared-configs/eslint-config-ember/app'],
- parserOptions: {
- project: true,
- tsconfigRootDir: __dirname,
- },
- overrides: [
- // TypeScript files
- {
- files: ['**/*.{gts,ts}'],
- rules: {
- '@typescript-eslint/no-unnecessary-condition': 'error',
- },
- },
- // JavaScript files
- {
- files: ['**/*.{cjs,gjs,js,mjs}'],
- extends: ['plugin:@typescript-eslint/disable-type-checked'],
- },
- ],
};
diff --git a/packages/create-v2-addon-repo/src/blueprints/docs-app/.prettierignore b/packages/create-v2-addon-repo/src/blueprints/docs-app/.prettierignore
index 51b8489e..caf5de49 100644
--- a/packages/create-v2-addon-repo/src/blueprints/docs-app/.prettierignore
+++ b/packages/create-v2-addon-repo/src/blueprints/docs-app/.prettierignore
@@ -8,7 +8,3 @@
/coverage/
!.*
.*/
-
-# tag
-/**/*.gjs
-/**/*.gts
diff --git a/packages/create-v2-addon-repo/src/blueprints/docs-app/README.md b/packages/create-v2-addon-repo/src/blueprints/docs-app/README.md
index f8e5ef8e..cd9f57c0 100644
--- a/packages/create-v2-addon-repo/src/blueprints/docs-app/README.md
+++ b/packages/create-v2-addon-repo/src/blueprints/docs-app/README.md
@@ -32,4 +32,4 @@ pnpm test
## Compatibility
-* Node.js v18 or above
+- Node.js v18 or above
diff --git a/packages/create-v2-addon-repo/src/blueprints/docs-app/package.json b/packages/create-v2-addon-repo/src/blueprints/docs-app/package.json
index 87f2e9fe..09073e04 100644
--- a/packages/create-v2-addon-repo/src/blueprints/docs-app/package.json
+++ b/packages/create-v2-addon-repo/src/blueprints/docs-app/package.json
@@ -23,7 +23,7 @@
"prelint:types": "type-css-modules --src app",
"lint:types": "glint",
"start": "ember serve",
- "test": "ember test --test-port=0"
+ "test": "ember test --test-port 0"
},
"devDependencies": {
"@babel/core": "^7.25.2",
diff --git a/packages/create-v2-addon-repo/src/blueprints/package.json b/packages/create-v2-addon-repo/src/blueprints/package.json
index 01f96ac5..9c789d38 100644
--- a/packages/create-v2-addon-repo/src/blueprints/package.json
+++ b/packages/create-v2-addon-repo/src/blueprints/package.json
@@ -5,23 +5,13 @@
"description": "Workspace root for <%= options.project.name %>",
"scripts": {
"addon": "blueprints-addon",
- "build": "concurrently 'pnpm:build:*' --group --names 'build:' --prefix-colors cyan,yellow,white",
- "build:blueprints-addon": "pnpm --filter blueprints-addon build",
- "build:packages": "pnpm --filter './packages/**' build",
- "lint": "concurrently 'pnpm:lint:*(!fix)' --group --names 'lint:' --prefix-colors cyan,yellow,white",
- "lint:docs-app": "pnpm --filter docs-app lint",
- "lint:docs-app:fix": "pnpm --filter docs-app lint:fix",
- "lint:fix": "concurrently 'pnpm:lint:*:fix' --group --names 'fix:' --prefix-colors cyan,yellow,white",
- "lint:packages": "pnpm --filter './packages/**' lint",
- "lint:packages:fix": "pnpm --filter './packages/**' lint:fix",
- "lint:test-app": "pnpm --filter test-app lint",
- "lint:test-app:fix": "pnpm --filter test-app lint:fix",
+ "build": "pnpm --filter blueprints-addon --filter './packages/**' build",
+ "lint": "pnpm --filter '*' lint",
+ "lint:fix": "pnpm --filter '*' lint:fix",
"start": "concurrently 'pnpm:start:*' --names 'start:' --prefix-colors cyan,yellow,white",
"start:docs-app": "pnpm --filter docs-app start",
"start:test-app": "pnpm --filter test-app start",
- "test": "concurrently 'pnpm:test:*' --group --names 'test:' --prefix-colors cyan,yellow,white",
- "test:docs-app": "pnpm --filter docs-app test",
- "test:test-app": "pnpm --filter test-app test"
+ "test": "pnpm --filter docs-app --filter test-app test"
},
"devDependencies": {
"blueprints-addon": "workspace:*",
diff --git a/packages/create-v2-addon-repo/src/blueprints/test-app/.eslintrc.js b/packages/create-v2-addon-repo/src/blueprints/test-app/.eslintrc.js
index 98002cae..7949408a 100644
--- a/packages/create-v2-addon-repo/src/blueprints/test-app/.eslintrc.js
+++ b/packages/create-v2-addon-repo/src/blueprints/test-app/.eslintrc.js
@@ -4,22 +4,4 @@ require('@shared-configs/eslint-config-ember/patch');
module.exports = {
extends: ['@shared-configs/eslint-config-ember/app'],
- parserOptions: {
- project: true,
- tsconfigRootDir: __dirname,
- },
- overrides: [
- // TypeScript files
- {
- files: ['**/*.{gts,ts}'],
- rules: {
- '@typescript-eslint/no-unnecessary-condition': 'error',
- },
- },
- // JavaScript files
- {
- files: ['**/*.{cjs,gjs,js,mjs}'],
- extends: ['plugin:@typescript-eslint/disable-type-checked'],
- },
- ],
};
diff --git a/packages/create-v2-addon-repo/src/blueprints/test-app/.prettierignore b/packages/create-v2-addon-repo/src/blueprints/test-app/.prettierignore
index 62f9c1d8..9385391f 100644
--- a/packages/create-v2-addon-repo/src/blueprints/test-app/.prettierignore
+++ b/packages/create-v2-addon-repo/src/blueprints/test-app/.prettierignore
@@ -11,7 +11,3 @@
# ember-try
/.node_modules.ember-try/
-
-# tag
-/**/*.gjs
-/**/*.gts
diff --git a/packages/create-v2-addon-repo/src/blueprints/test-app/README.md b/packages/create-v2-addon-repo/src/blueprints/test-app/README.md
index 74158c3a..2213437c 100644
--- a/packages/create-v2-addon-repo/src/blueprints/test-app/README.md
+++ b/packages/create-v2-addon-repo/src/blueprints/test-app/README.md
@@ -32,4 +32,4 @@ pnpm test
## Compatibility
-* Node.js v18 or above
+- Node.js v18 or above
diff --git a/packages/create-v2-addon-repo/src/blueprints/test-app/package.json b/packages/create-v2-addon-repo/src/blueprints/test-app/package.json
index c6e74251..246ff4af 100644
--- a/packages/create-v2-addon-repo/src/blueprints/test-app/package.json
+++ b/packages/create-v2-addon-repo/src/blueprints/test-app/package.json
@@ -21,8 +21,8 @@
"lint:js": "eslint . --cache",
"lint:js:fix": "eslint . --fix",
"lint:types": "glint",
- "start": "ember serve --port=4300",
- "test": "ember test --test-port=0",
+ "start": "ember serve --port 4300",
+ "test": "ember test --test-port 0",
"test:ember-compatibility": "./node_modules/.bin/ember try:one"
},
"devDependencies": {
diff --git a/packages/create-v2-addon-repo/src/steps/create-files-from-blueprints.ts b/packages/create-v2-addon-repo/src/steps/create-files-from-blueprints.ts
index 8f52c17d..81972bdc 100644
--- a/packages/create-v2-addon-repo/src/steps/create-files-from-blueprints.ts
+++ b/packages/create-v2-addon-repo/src/steps/create-files-from-blueprints.ts
@@ -8,7 +8,9 @@ import type { Options } from '../types/index.js';
import { blueprintsRoot } from '../utils/blueprints.js';
function resolveBlueprintFilePath(blueprintFilePath: string): string {
- return blueprintFilePath.replace('__gitignore__', '.gitignore');
+ return blueprintFilePath
+ .replace('__gitignore__', '.gitignore')
+ .replace('__npmignore__', '.npmignore');
}
function setExecutePermissions(options: Options) {
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/.npmignore b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/.npmignore
new file mode 100644
index 00000000..cbfe73f8
--- /dev/null
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/.npmignore
@@ -0,0 +1,22 @@
+# compiled output
+/dist-for-testing/
+/tmp/
+
+# dependencies
+/node_modules/
+
+# misc
+/.DS_Store
+/.env*
+/.eslintcache
+/.eslintignore
+/.eslintrc.cjs
+/.git/
+/.github/
+/.gitignore
+/.pnpm-debug.log
+/.prettierignore
+/.prettierrc.cjs
+/build.sh
+/tests/
+/update-test-fixtures.sh
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/CHANGELOG.md b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/CHANGELOG.md
new file mode 100644
index 00000000..cd34df35
--- /dev/null
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/CHANGELOG.md
@@ -0,0 +1 @@
+# blueprints-addon
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/LICENSE.md b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/LICENSE.md
new file mode 100644
index 00000000..cba618fa
--- /dev/null
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/LICENSE.md
@@ -0,0 +1,9 @@
+The MIT License (MIT)
+
+Copyright (c) 2024 Isaac J. Lee
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/README.md b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/README.md
index cd34df35..1401d5d8 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/README.md
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/README.md
@@ -1 +1,73 @@
# blueprints-addon
+
+_CLI for v2 addons_
+
+1. [Features](#features)
+1. [Usage](#usage)
+1. [Compatibility](#compatibility)
+
+
+## Features
+
+Standardize how you write v2 addons:
+
+- Run `new` to create a v2 addon
+- Run `generate` to create source and test files
+- Run `destroy` to remove source and test files
+- Blueprints available for components, helpers, modifiers, services, and utilities
+- Tailor addon blueprints to your needs
+
+
+## Usage
+
+Install `blueprints-addon` as a development dependency in these locations:
+
+
+
+Workspace root
+
+```json5
+/* package.json */
+{
+ "scripts": {
+ "addon": "blueprints-addon"
+ },
+ "devDependencies": {
+ "blueprints-addon": "workspace:*"
+ }
+}
+```
+
+
+
+
+
+V2 addon in packages
+
+```json5
+/* Example: packages/ui/button/package.json */
+{
+ "scripts": {
+ "addon": "blueprints-addon --test-app-location '../../../test-app'"
+ },
+ "devDependencies": {
+ "blueprints-addon": "workspace:*"
+ }
+}
+```
+
+
+
+> [!NOTE]
+>
+> After you build `blueprints-addon`, please run `pnpm install` at the workspace root so that the blueprints are available.
+
+
+## Compatibility
+
+- Node.js v18 or above
+
+
+## License
+
+This project is licensed under the [MIT License](LICENSE.md).
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/bin/blueprints-addon.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/bin/blueprints-addon.ts
index df42913a..fa51f27a 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/bin/blueprints-addon.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/bin/blueprints-addon.ts
@@ -10,6 +10,14 @@ import { runDestroy, runGenerate, runNew } from '../src/index.js';
process.title = 'blueprints-addon';
// Set codemod options
+const DEFAULT_BLUEPRINT_VALUE = {
+ component: 'glimmer',
+ helper: 'class',
+ modifier: 'class',
+ service: 'class',
+ util: 'function',
+} as const;
+
yargs(hideBin(process.argv))
.command({
aliases: ['d'],
@@ -98,7 +106,8 @@ yargs(hideBin(process.argv))
handler: (argv) => {
runGenerate({
entity: {
- blueprint: argv['blueprint'] ?? 'glimmer',
+ blueprint:
+ argv['blueprint'] ?? DEFAULT_BLUEPRINT_VALUE.component,
name: argv['name'],
type: 'component',
},
@@ -127,7 +136,7 @@ yargs(hideBin(process.argv))
handler: (argv) => {
runGenerate({
entity: {
- blueprint: argv['blueprint'] ?? 'class',
+ blueprint: argv['blueprint'] ?? DEFAULT_BLUEPRINT_VALUE.helper,
name: argv['name'],
type: 'helper',
},
@@ -156,7 +165,8 @@ yargs(hideBin(process.argv))
handler: (argv) => {
runGenerate({
entity: {
- blueprint: argv['blueprint'] ?? 'class',
+ blueprint:
+ argv['blueprint'] ?? DEFAULT_BLUEPRINT_VALUE.modifier,
name: argv['name'],
type: 'modifier',
},
@@ -185,7 +195,7 @@ yargs(hideBin(process.argv))
handler: (argv) => {
runGenerate({
entity: {
- blueprint: argv['blueprint'] ?? 'class',
+ blueprint: argv['blueprint'] ?? DEFAULT_BLUEPRINT_VALUE.service,
name: argv['name'],
type: 'service',
},
@@ -214,7 +224,7 @@ yargs(hideBin(process.argv))
handler: (argv) => {
runGenerate({
entity: {
- blueprint: argv['blueprint'] ?? 'function',
+ blueprint: argv['blueprint'] ?? DEFAULT_BLUEPRINT_VALUE.util,
name: argv['name'],
type: 'util',
},
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/package.json b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/package.json
index d5dca60e..ccb5ae98 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/package.json
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/package.json
@@ -2,7 +2,7 @@
"name": "blueprints-addon",
"version": "0.0.0",
"private": true,
- "description": "Blueprints for v2 addons",
+ "description": "CLI for v2 addons",
"keywords": [
"codemod",
"ember-codemod",
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.gts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.gts
index b26e65ec..849d821d 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.gts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.gts
@@ -1,7 +1,7 @@
import { <%= options.entity.classifiedName %> } from '<%= options.addon.name %>';
import { render } from '@ember/test-helpers';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '<%= options.testApp.name %>/tests/helpers';
module('Integration | Component | <%= options.entity.name %>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.ts
index 0ba628c5..1a97d05a 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/component/__testAppLocation__/__fileName__.ts
@@ -1,7 +1,7 @@
import { render } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '<%= options.testApp.name %>/tests/helpers';
module('Integration | Component | <%= options.entity.name %>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/component/template-tag/__fileName__.gts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/component/template-tag/__fileName__.gts
index c2e3891d..93e5ba9d 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/component/template-tag/__fileName__.gts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/component/template-tag/__fileName__.gts
@@ -1,4 +1,4 @@
-import Component from '@glimmer/component';
+import type { TOC } from '@ember/component/template-only';
import styles from './<%= data.localFileName %>.css';
@@ -10,11 +10,11 @@ interface <%= options.entity.classifiedName %>Signature {
Element: null;
}
-// eslint-disable-next-line ember/no-empty-glimmer-component-classes
-export default class <%= options.entity.classifiedName %>Component extends Component<<%= options.entity.classifiedName %>Signature> {
+const <%= options.entity.classifiedName %>Component: TOC<<%= options.entity.classifiedName %>Signature> =
{{yield}}
-
-}
+ ;
+
+export default <%= options.entity.classifiedName %>Component;
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.gts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.gts
index 39f2ad4f..d849ea1c 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.gts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.gts
@@ -1,7 +1,7 @@
import { <%= options.entity.camelizedName %> } from '<%= options.addon.name %>';
import { render } from '@ember/test-helpers';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '<%= options.testApp.name %>/tests/helpers';
module('Integration | Helper | <%= options.entity.name %>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.ts
index dc2fea5b..711f39b0 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/helper/__testAppLocation__/__fileName__.ts
@@ -1,7 +1,7 @@
import { render } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '<%= options.testApp.name %>/tests/helpers';
module('Integration | Helper | <%= options.entity.name %>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.gts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.gts
index 1a0994aa..069b5a8d 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.gts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.gts
@@ -1,7 +1,7 @@
import { <%= options.entity.camelizedName %> } from '<%= options.addon.name %>';
import { render } from '@ember/test-helpers';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '<%= options.testApp.name %>/tests/helpers';
module('Integration | Modifier | <%= options.entity.name %>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.ts
index b82e5751..812feca6 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/modifier/__testAppLocation__/__fileName__.ts
@@ -1,7 +1,7 @@
import { render } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
-import { setupRenderingTest } from 'test-app/tests/helpers';
+import { setupRenderingTest } from '<%= options.testApp.name %>/tests/helpers';
module('Integration | Modifier | <%= options.entity.name %>', function (hooks) {
setupRenderingTest(hooks);
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/service/__testAppLocation__/__fileName__.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/service/__testAppLocation__/__fileName__.ts
index a3d2e9b3..c11819a7 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/service/__testAppLocation__/__fileName__.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-generate/service/__testAppLocation__/__fileName__.ts
@@ -1,5 +1,5 @@
import { module, test } from 'qunit';
-import { setupTest } from 'test-app/tests/helpers';
+import { setupTest } from '<%= options.testApp.name %>/tests/helpers';
module('Unit | Service | <%= options.entity.name %>', function (hooks) {
setupTest(hooks);
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-new/__addonLocation__/.eslintrc.js b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-new/__addonLocation__/.eslintrc.js
index 6befcff2..c4a80d3e 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-new/__addonLocation__/.eslintrc.js
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-new/__addonLocation__/.eslintrc.js
@@ -4,22 +4,4 @@ require('@shared-configs/eslint-config-ember/patch');
module.exports = {
extends: ['@shared-configs/eslint-config-ember/v2-addon'],
- parserOptions: {
- project: true,
- tsconfigRootDir: __dirname,
- },
- overrides: [
- // TypeScript files
- {
- files: ['**/*.{gts,ts}'],
- rules: {
- '@typescript-eslint/no-unnecessary-condition': 'error',
- },
- },
- // JavaScript files
- {
- files: ['**/*.{cjs,js,gjs,mjs}'],
- extends: ['plugin:@typescript-eslint/disable-type-checked'],
- },
- ],
};
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-new/__addonLocation__/.prettierignore b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-new/__addonLocation__/.prettierignore
index d3b7efae..dd79592e 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-new/__addonLocation__/.prettierignore
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-new/__addonLocation__/.prettierignore
@@ -4,7 +4,3 @@
# compiled output
/declarations/
/dist/
-
-# tag
-/**/*.gjs
-/**/*.gts
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-new/__addonLocation__/README.md b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-new/__addonLocation__/README.md
index ce6f408f..55d800c5 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-new/__addonLocation__/README.md
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-new/__addonLocation__/README.md
@@ -24,7 +24,7 @@ pnpm start
Generate and destroy
-From the package root, you can create (or remove) the source code and its corresponding test file in `test-app`.
+From the package root, you can create (or remove) the source code and its corresponding test file in `<%= options.testApp.name %>`.
```sh
pnpm addon [options]
@@ -43,4 +43,4 @@ For more information, pass `--help`.
## Compatibility
-* Node.js v18 or above
+- Node.js v18 or above
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/run-destroy.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/run-destroy.ts
index 82db3eb4..d95bb09c 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/run-destroy.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/run-destroy.ts
@@ -1,4 +1,5 @@
import {
+ canSkip,
createOptions,
updateAddon,
updateTestApp,
@@ -8,6 +9,16 @@ import type { CodemodOptions } from './types/run-destroy.js';
export function runDestroy(codemodOptions: CodemodOptions): void {
const options = createOptions(codemodOptions);
+ if (canSkip(options)) {
+ console.log(
+ `🚫 Skipped removing ${options.entity.name}, because it was already removed.\n`,
+ );
+
+ return;
+ }
+
updateAddon(options);
updateTestApp(options);
+
+ console.log(`✅ Removed ${options.entity.name} and its test file.\n`);
}
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/run-generate.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/run-generate.ts
index b707756a..473e62ad 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/run-generate.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/run-generate.ts
@@ -10,9 +10,15 @@ export function runGenerate(codemodOptions: CodemodOptions): void {
const options = createOptions(codemodOptions);
if (canSkip(options)) {
+ console.log(
+ `🚫 Skipped creating ${options.entity.name}, because it already exists.\n`,
+ );
+
return;
}
updateAddon(options);
updateTestApp(options);
+
+ console.log(`✅ Created ${options.entity.name} and its test file.\n`);
}
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/run-new.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/run-new.ts
index e8be7825..270947cf 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/run-new.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/run-new.ts
@@ -11,10 +11,16 @@ export function runNew(codemodOptions: CodemodOptions): void {
const options = createOptions(codemodOptions);
if (canSkip(options)) {
+ console.log(
+ `🚫 Skipped creating ${options.addon.name}, because it already exists.\n`,
+ );
+
return;
}
createAddon(options);
updateDocsApp(options);
updateTestApp(options);
+
+ console.log(`✅ Created ${options.addon.name}.\n`);
}
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-destroy/can-skip.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-destroy/can-skip.ts
new file mode 100644
index 00000000..e3ef47a3
--- /dev/null
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-destroy/can-skip.ts
@@ -0,0 +1,16 @@
+import { join } from 'node:path';
+
+import { findFiles } from '@codemod-utils/files';
+
+import type { Options } from '../../types/run-destroy.js';
+
+export function canSkip(options: Options): boolean {
+ const { entity, projectRoot } = options;
+
+ const filePaths = findFiles(
+ join('src', `${entity.type}s`, `${entity.name}.*`),
+ { projectRoot },
+ );
+
+ return filePaths.length === 0;
+}
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-destroy/index.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-destroy/index.ts
index c3a9cb13..95ccba73 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-destroy/index.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-destroy/index.ts
@@ -1,3 +1,4 @@
+export * from './can-skip.js';
export * from './create-options.js';
export * from './update-addon.js';
export * from './update-test-app.js';
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-generate/create-options.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-generate/create-options.ts
index 76a7c207..f8ffbff1 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-generate/create-options.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-generate/create-options.ts
@@ -33,6 +33,8 @@ export function createOptions(codemodOptions: CodemodOptions): Options {
projectRoot,
testApp: {
location: testAppLocation,
+ name: 'test-app',
+ useTemplateTag: true,
},
};
}
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-generate/update-test-app/create-test-file.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-generate/update-test-app/create-test-file.ts
index 5d791c24..ad1fefa3 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-generate/update-test-app/create-test-file.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-generate/update-test-app/create-test-file.ts
@@ -7,15 +7,23 @@ import { createFiles, findFiles } from '@codemod-utils/files';
import type { Options } from '../../../types/run-generate.js';
import { blueprintsRoot } from '../../../utils/blueprints.js';
-const ENABLE_TEMPLATE_TAG = false;
+function getFilesToSkip(options: Options): string[] {
+ const { entity, testApp } = options;
-function getFilesToSkip(): string[] {
const files = new Set();
- if (ENABLE_TEMPLATE_TAG) {
- files.add('__fileName__.ts');
- } else {
- files.add('__fileName__.gts');
+ switch (entity.type) {
+ case 'component':
+ case 'helper':
+ case 'modifier': {
+ if (testApp.useTemplateTag) {
+ files.add('__fileName__.ts');
+ } else {
+ files.add('__fileName__.gts');
+ }
+
+ break;
+ }
}
return Array.from(files);
@@ -48,7 +56,7 @@ function resolveBlueprintFilePath(
}
export function createTestFile(options: Options): void {
- const filesToSkip = getFilesToSkip();
+ const filesToSkip = getFilesToSkip(options);
const cwd = join(
blueprintsRoot,
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/types/run-generate.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/types/run-generate.ts
index de34f7a5..8de7840e 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/types/run-generate.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/types/run-generate.ts
@@ -41,6 +41,8 @@ type Options = {
projectRoot: string;
testApp: {
location: string;
+ name: string;
+ useTemplateTag: boolean;
};
};
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/packages/ui/button/src/components/my-example/template-tag.gts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/packages/ui/button/src/components/my-example/template-tag.gts
index f66fa172..9ea4c119 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/packages/ui/button/src/components/my-example/template-tag.gts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/packages/ui/button/src/components/my-example/template-tag.gts
@@ -1,4 +1,4 @@
-import Component from '@glimmer/component';
+import type { TOC } from '@ember/component/template-only';
import styles from './template-tag.css';
@@ -10,11 +10,11 @@ interface MyExampleTemplateTagSignature {
Element: null;
}
-// eslint-disable-next-line ember/no-empty-glimmer-component-classes
-export default class MyExampleTemplateTagComponent extends Component {
+const MyExampleTemplateTagComponent: TOC =
{{yield}}
-
-}
+ ;
+
+export default MyExampleTemplateTagComponent;
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.gts
similarity index 72%
rename from packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.ts
rename to packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.gts
index c5533f63..5b419e61 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/glimmer-test.gts
@@ -1,5 +1,5 @@
+import { MyExampleGlimmer } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Component | my-example/glimmer', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
-
- `);
+ await render(
+
+ );
assert.dom().hasText('');
});
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.gts
similarity index 71%
rename from packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.ts
rename to packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.gts
index 28ab1ea2..52d5f10b 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/components/my-example/template-tag-test.gts
@@ -1,5 +1,5 @@
+import { MyExampleTemplateTag } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Component | my-example/template-tag', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
-
- `);
+ await render(
+
+ );
assert.dom().hasText('');
});
diff --git a/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.gts
similarity index 72%
rename from packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.ts
rename to packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.gts
index 4fe90f3b..26d8a78c 100644
--- a/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/class-test.gts
@@ -1,5 +1,5 @@
+import { myExampleClass } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Helper | my-example/class', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
- {{my-example/class "1234"}}
- `);
+ await render(
+ {{myExampleClass '1234'}}
+ );
assert.dom().hasText('1234');
});
diff --git a/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.gts
similarity index 71%
rename from packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.ts
rename to packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.gts
index 3b122735..b7484ac4 100644
--- a/packages/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/helpers/my-example/function-test.gts
@@ -1,5 +1,5 @@
+import { myExampleFunction } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Helper | my-example/function', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
- {{my-example/function "1234"}}
- `);
+ await render(
+ {{myExampleFunction '1234'}}
+ );
assert.dom().hasText('1234');
});
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.gts
similarity index 70%
rename from packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.ts
rename to packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.gts
index dbebcf64..8bbf3a6c 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/class-test.gts
@@ -1,5 +1,5 @@
+import { myExampleClass } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Modifier | my-example/class', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
-
- `);
+ await render(
+
+ );
assert.ok(true);
});
diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.gts
similarity index 70%
rename from packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.ts
rename to packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.gts
index d64c6728..27b2e32d 100644
--- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.ts
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-generate/output/test-app/tests/integration/modifiers/my-example/function-test.gts
@@ -1,5 +1,5 @@
+import { myExampleFunction } from '@my-org-ui/button';
import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'test-app/tests/helpers';
@@ -7,9 +7,9 @@ module('Integration | Modifier | my-example/function', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
- await render(hbs`
-
- `);
+ await render(
+
+ );
assert.ok(true);
});
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.eslintrc.js b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.eslintrc.js
index 6befcff2..c4a80d3e 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.eslintrc.js
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.eslintrc.js
@@ -4,22 +4,4 @@ require('@shared-configs/eslint-config-ember/patch');
module.exports = {
extends: ['@shared-configs/eslint-config-ember/v2-addon'],
- parserOptions: {
- project: true,
- tsconfigRootDir: __dirname,
- },
- overrides: [
- // TypeScript files
- {
- files: ['**/*.{gts,ts}'],
- rules: {
- '@typescript-eslint/no-unnecessary-condition': 'error',
- },
- },
- // JavaScript files
- {
- files: ['**/*.{cjs,js,gjs,mjs}'],
- extends: ['plugin:@typescript-eslint/disable-type-checked'],
- },
- ],
};
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.prettierignore b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.prettierignore
index d3b7efae..dd79592e 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.prettierignore
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/.prettierignore
@@ -4,7 +4,3 @@
# compiled output
/declarations/
/dist/
-
-# tag
-/**/*.gjs
-/**/*.gts
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/README.md b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/README.md
index 246ae7c0..855a9e83 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/README.md
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/output/packages/ui/button/README.md
@@ -43,4 +43,4 @@ For more information, pass `--help`.
## Compatibility
-* Node.js v18 or above
+- Node.js v18 or above
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/ember/app/index.js b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/ember/app/index.js
index 0166bfce..6e5d05fa 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/ember/app/index.js
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/ember/app/index.js
@@ -59,14 +59,14 @@ module.exports = {
},
},
{
- files: ['**/*.gts'],
+ files: ['**/*.gjs'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gts'],
+ extends: ['plugin:ember/recommended-gjs'],
},
{
- files: ['**/*.gjs'],
+ files: ['**/*.gts'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gjs'],
+ extends: ['plugin:ember/recommended-gts'],
},
{
files: ['**/*.{gjs,gts,js,ts}'],
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/ember/v1-addon/index.js b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/ember/v1-addon/index.js
index c0155d20..f04c4351 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/ember/v1-addon/index.js
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/ember/v1-addon/index.js
@@ -59,14 +59,14 @@ module.exports = {
},
},
{
- files: ['**/*.gts'],
+ files: ['**/*.gjs'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gts'],
+ extends: ['plugin:ember/recommended-gjs'],
},
{
- files: ['**/*.gjs'],
+ files: ['**/*.gts'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gjs'],
+ extends: ['plugin:ember/recommended-gts'],
},
{
files: ['**/*.{gjs,gts,js,ts}'],
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/ember/v2-addon/index.js b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/ember/v2-addon/index.js
index 381b3a02..e48e8eaf 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/ember/v2-addon/index.js
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/ember/v2-addon/index.js
@@ -59,14 +59,14 @@ module.exports = {
},
},
{
- files: ['**/*.gts'],
+ files: ['**/*.gjs'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gts'],
+ extends: ['plugin:ember/recommended-gjs'],
},
{
- files: ['**/*.gjs'],
+ files: ['**/*.gts'],
parser: 'ember-eslint-parser',
- extends: ['plugin:ember/recommended-gjs'],
+ extends: ['plugin:ember/recommended-gts'],
},
{
files: ['**/*.{gjs,gts,js,ts}'],
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/prettier/.prettierrc.js b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/prettier/.prettierrc.js
index 000fbb45..09dd01df 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/prettier/.prettierrc.js
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/prettier/.prettierrc.js
@@ -1,6 +1,7 @@
'use strict';
module.exports = {
+ plugins: ['prettier-plugin-ember-template-tag'],
overrides: [
{
files: '*.css.d.ts',
@@ -9,17 +10,25 @@ module.exports = {
},
},
{
- files: '*.hbs',
+ files: '*.{cjs,cts,js,mjs,mts,ts}',
+ options: {
+ printWidth: 80,
+ singleQuote: true,
+ },
+ },
+ {
+ files: ['*.hbs'],
options: {
printWidth: 64,
singleQuote: false,
},
},
{
- files: '*.{cjs,cts,gjs,gts,js,mjs,mts,ts}',
+ files: ['*.gjs', '*.gts'],
options: {
printWidth: 80,
singleQuote: true,
+ templateSingleQuote: false,
},
},
],
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/prettier/package.json b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/prettier/package.json
index 26de18e7..4f3c48c7 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/prettier/package.json
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/prettier/package.json
@@ -10,6 +10,9 @@
"lint:js": "prettier --check '**/*.js'",
"lint:js:fix": "prettier --write '**/*.js'"
},
+ "dependencies": {
+ "prettier-plugin-ember-template-tag": "^2.0.2"
+ },
"devDependencies": {
"concurrently": "^8.2.2",
"prettier": "^3.3.3"
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/.eslintrc.js b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/.eslintrc.js
index 98002cae..7949408a 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/.eslintrc.js
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/.eslintrc.js
@@ -4,22 +4,4 @@ require('@shared-configs/eslint-config-ember/patch');
module.exports = {
extends: ['@shared-configs/eslint-config-ember/app'],
- parserOptions: {
- project: true,
- tsconfigRootDir: __dirname,
- },
- overrides: [
- // TypeScript files
- {
- files: ['**/*.{gts,ts}'],
- rules: {
- '@typescript-eslint/no-unnecessary-condition': 'error',
- },
- },
- // JavaScript files
- {
- files: ['**/*.{cjs,gjs,js,mjs}'],
- extends: ['plugin:@typescript-eslint/disable-type-checked'],
- },
- ],
};
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/.prettierignore b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/.prettierignore
index 51b8489e..caf5de49 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/.prettierignore
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/.prettierignore
@@ -8,7 +8,3 @@
/coverage/
!.*
.*/
-
-# tag
-/**/*.gjs
-/**/*.gts
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/README.md b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/README.md
index f8e5ef8e..cd9f57c0 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/README.md
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/README.md
@@ -32,4 +32,4 @@ pnpm test
## Compatibility
-* Node.js v18 or above
+- Node.js v18 or above
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/package.json b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/package.json
index fc3739a1..aa917beb 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/package.json
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/package.json
@@ -23,7 +23,7 @@
"prelint:types": "type-css-modules --src app",
"lint:types": "glint",
"start": "ember serve",
- "test": "ember test --test-port=0"
+ "test": "ember test --test-port 0"
},
"devDependencies": {
"@babel/core": "^7.25.2",
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/package.json b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/package.json
index b566411f..0ec1a1df 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/package.json
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/package.json
@@ -5,23 +5,13 @@
"description": "Workspace root for my-repo",
"scripts": {
"addon": "blueprints-addon",
- "build": "concurrently 'pnpm:build:*' --group --names 'build:' --prefix-colors cyan,yellow,white",
- "build:blueprints-addon": "pnpm --filter blueprints-addon build",
- "build:packages": "pnpm --filter './packages/**' build",
- "lint": "concurrently 'pnpm:lint:*(!fix)' --group --names 'lint:' --prefix-colors cyan,yellow,white",
- "lint:docs-app": "pnpm --filter docs-app lint",
- "lint:docs-app:fix": "pnpm --filter docs-app lint:fix",
- "lint:fix": "concurrently 'pnpm:lint:*:fix' --group --names 'fix:' --prefix-colors cyan,yellow,white",
- "lint:packages": "pnpm --filter './packages/**' lint",
- "lint:packages:fix": "pnpm --filter './packages/**' lint:fix",
- "lint:test-app": "pnpm --filter test-app lint",
- "lint:test-app:fix": "pnpm --filter test-app lint:fix",
+ "build": "pnpm --filter blueprints-addon --filter './packages/**' build",
+ "lint": "pnpm --filter '*' lint",
+ "lint:fix": "pnpm --filter '*' lint:fix",
"start": "concurrently 'pnpm:start:*' --names 'start:' --prefix-colors cyan,yellow,white",
"start:docs-app": "pnpm --filter docs-app start",
"start:test-app": "pnpm --filter test-app start",
- "test": "concurrently 'pnpm:test:*' --group --names 'test:' --prefix-colors cyan,yellow,white",
- "test:docs-app": "pnpm --filter docs-app test",
- "test:test-app": "pnpm --filter test-app test"
+ "test": "pnpm --filter docs-app --filter test-app test"
},
"devDependencies": {
"blueprints-addon": "workspace:*",
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/.eslintrc.js b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/.eslintrc.js
index 98002cae..7949408a 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/.eslintrc.js
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/.eslintrc.js
@@ -4,22 +4,4 @@ require('@shared-configs/eslint-config-ember/patch');
module.exports = {
extends: ['@shared-configs/eslint-config-ember/app'],
- parserOptions: {
- project: true,
- tsconfigRootDir: __dirname,
- },
- overrides: [
- // TypeScript files
- {
- files: ['**/*.{gts,ts}'],
- rules: {
- '@typescript-eslint/no-unnecessary-condition': 'error',
- },
- },
- // JavaScript files
- {
- files: ['**/*.{cjs,gjs,js,mjs}'],
- extends: ['plugin:@typescript-eslint/disable-type-checked'],
- },
- ],
};
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/.prettierignore b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/.prettierignore
index 62f9c1d8..9385391f 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/.prettierignore
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/.prettierignore
@@ -11,7 +11,3 @@
# ember-try
/.node_modules.ember-try/
-
-# tag
-/**/*.gjs
-/**/*.gts
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/README.md b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/README.md
index 74158c3a..2213437c 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/README.md
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/README.md
@@ -32,4 +32,4 @@ pnpm test
## Compatibility
-* Node.js v18 or above
+- Node.js v18 or above
diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/package.json b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/package.json
index 306c4343..705c7e06 100644
--- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/package.json
+++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/package.json
@@ -21,8 +21,8 @@
"lint:js": "eslint . --cache",
"lint:js:fix": "eslint . --fix",
"lint:types": "glint",
- "start": "ember serve --port=4300",
- "test": "ember test --test-port=0",
+ "start": "ember serve --port 4300",
+ "test": "ember test --test-port 0",
"test:ember-compatibility": "./node_modules/.bin/ember try:one"
},
"devDependencies": {
diff --git a/packages/create-v2-addon-repo/update-blueprints-addon.sh b/packages/create-v2-addon-repo/update-blueprints-addon.sh
index 40fec29e..64c11025 100755
--- a/packages/create-v2-addon-repo/update-blueprints-addon.sh
+++ b/packages/create-v2-addon-repo/update-blueprints-addon.sh
@@ -13,14 +13,26 @@
#---------
# Copy files
-rm -r "src/blueprints/blueprints-addon/bin"
-rm -r "src/blueprints/blueprints-addon/src"
-rm -r "src/blueprints/blueprints-addon/tests"
-rm "src/blueprints/blueprints-addon/update-test-fixtures.sh"
+rm -r "src/blueprints/blueprints-addon"
+mkdir "src/blueprints/blueprints-addon"
cp -r "../blueprints-addon/bin" "src/blueprints/blueprints-addon/bin"
cp -r "../blueprints-addon/src" "src/blueprints/blueprints-addon/src"
cp -r "../blueprints-addon/tests" "src/blueprints/blueprints-addon/tests"
+
+cp "../blueprints-addon/.eslintignore" "src/blueprints/blueprints-addon/.eslintignore"
+cp "../blueprints-addon/.eslintrc.cjs" "src/blueprints/blueprints-addon/.eslintrc.cjs"
+cp "../blueprints-addon/.gitignore" "src/blueprints/blueprints-addon/__gitignore__"
+cp "../blueprints-addon/.npmignore" "src/blueprints/blueprints-addon/__npmignore__"
+cp "../blueprints-addon/.prettierrc.cjs" "src/blueprints/blueprints-addon/.prettierrc.cjs"
+cp "../blueprints-addon/build.sh" "src/blueprints/blueprints-addon/build.sh"
+cp "../blueprints-addon/CHANGELOG.md" "src/blueprints/blueprints-addon/CHANGELOG.md"
+touch "src/blueprints/blueprints-addon/CHANGELOG.md"; echo "# blueprints-addon" > "src/blueprints/blueprints-addon/CHANGELOG.md"
+cp "../blueprints-addon/LICENSE.md" "src/blueprints/blueprints-addon/LICENSE.md"
+cp "../blueprints-addon/package.json" "src/blueprints/blueprints-addon/package.json"
+cp "../blueprints-addon/README.md" "src/blueprints/blueprints-addon/README.md"
+cp "../blueprints-addon/tsconfig.build.json" "src/blueprints/blueprints-addon/tsconfig.build.json"
+cp "../blueprints-addon/tsconfig.json" "src/blueprints/blueprints-addon/tsconfig.json"
cp "../blueprints-addon/update-test-fixtures.sh" "src/blueprints/blueprints-addon/update-test-fixtures.sh"
# Escape delimiters