diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 9165cf41..9bbadde1 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -86,10 +86,6 @@ jobs: run: 'pnpm add --save-dev ${{ matrix.typescript-scenario}}' working-directory: ./test-apps/base-tests/ - - name: 'Change ember-concurrency TS to ${{ matrix.typescript-scenario }}' - run: 'pnpm add --save-dev ${{ matrix.typescript-scenario}}' - working-directory: ./test-apps/ember-concurrency-v2 - - name: 'Change ember-fetch TS to ${{ matrix.typescript-scenario }}' run: 'pnpm add --save-dev ${{ matrix.typescript-scenario}}' working-directory: ./test-apps/ember-fetch-v8 @@ -110,7 +106,6 @@ jobs: matrix: app: - test-apps/base-tests - - test-apps/ember-concurrency-v2 ember-try-scenario: - ember-lts-3.16 - ember-lts-3.20 diff --git a/addon/addon/wait-for.ts b/addon/addon/wait-for.ts index e0f89868..cdd14eac 100644 --- a/addon/addon/wait-for.ts +++ b/addon/addon/wait-for.ts @@ -48,32 +48,6 @@ type DecoratorArguments = [object, string, PropertyDescriptor, string?]; * } * } * - * @example - * - * import Component from '@ember/component'; - * import { task } from 'ember-concurrency'; - * import { waitFor } from '@ember/test-waiters'; - * - * export default Component.extend({ - * doTaskStuff: task(waitFor(function* doTaskStuff() { - * yield somethingAsync(); - * } - * }); - * - * @example - * - * import Component from '@ember/component'; - * import { task } from 'ember-concurrency-decorators'; - * import { waitFor } from '@ember/test-waiters'; - * - * export default class Friendz extends Component { - * @task - * @waitFor - * *doTaskStuff() { - * yield somethingAsync(); - * } - * } - * */ export default function waitFor, PromiseReturn>( fn: AsyncFunction, diff --git a/addon/package.json b/addon/package.json index 0c17cbd0..461743f3 100644 --- a/addon/package.json +++ b/addon/package.json @@ -53,8 +53,6 @@ "ember-cli-htmlbars": "^6.3.0", "ember-cli-inject-live-reload": "^2.1.0", "ember-cli-uglify": "^3.0.0", - "ember-concurrency-decorators": "^2.0.3", - "ember-concurrency-ts": "^0.3.1", "ember-decorators-polyfill": "^1.1.5", "ember-disable-prototype-extensions": "^1.1.3", "ember-load-initializers": "^2.1.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2fc53609..99ae78a5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -87,12 +87,6 @@ importers: ember-cli-uglify: specifier: ^3.0.0 version: 3.0.0 - ember-concurrency-decorators: - specifier: ^2.0.3 - version: 2.0.3(@babel/core@7.24.5) - ember-concurrency-ts: - specifier: ^0.3.1 - version: 0.3.1(ember-concurrency@2.3.7) ember-decorators-polyfill: specifier: ^1.1.5 version: 1.1.5(@babel/core@7.24.5) @@ -326,184 +320,6 @@ importers: specifier: ^5.88.2 version: 5.88.2 - test-apps/ember-concurrency-v2: - dependencies: - '@ember/test-waiters': - specifier: workspace:* - version: link:../../addon - devDependencies: - '@babel/core': - specifier: ^7.24.5 - version: 7.24.5(supports-color@8.1.1) - '@ember/optional-features': - specifier: ^2.0.0 - version: 2.0.0 - '@ember/string': - specifier: ^3.1.1 - version: 3.1.1 - '@ember/test-helpers': - specifier: ^3.2.0 - version: 3.2.0(@glint/template@1.2.1)(ember-source@5.3.0)(webpack@5.88.2) - '@glimmer/component': - specifier: ^1.1.2 - version: 1.1.2(@babel/core@7.24.5) - '@glimmer/env': - specifier: ^0.1.7 - version: 0.1.7 - '@glimmer/tracking': - specifier: ^1.1.2 - version: 1.1.2 - '@glint/environment-ember-loose': - specifier: ^1.1.0 - version: 1.2.1(@glimmer/component@1.1.2)(@glint/template@1.2.1)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.1.0) - '@glint/template': - specifier: ^1.1.0 - version: 1.2.1 - '@tsconfig/ember': - specifier: ^3.0.6 - version: 3.0.6 - '@types/qunit': - specifier: ^2.19.9 - version: 2.19.9 - '@types/rsvp': - specifier: ^4.0.4 - version: 4.0.4 - '@typescript-eslint/eslint-plugin': - specifier: ^6.7.2 - version: 6.9.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.0.4) - '@typescript-eslint/parser': - specifier: ^6.7.2 - version: 6.9.0(eslint@8.52.0)(typescript@5.0.4) - broccoli-asset-rev: - specifier: ^3.0.0 - version: 3.0.0 - co: - specifier: ^4.6.0 - version: 4.6.0 - concurrently: - specifier: ^8.2.1 - version: 8.2.1 - ember-auto-import: - specifier: ^2.7.2 - version: 2.7.2(@glint/template@1.2.1)(webpack@5.88.2) - ember-cli: - specifier: ~5.3.0 - version: 5.3.0 - ember-cli-app-version: - specifier: ^6.0.1 - version: 6.0.1(ember-source@5.3.0) - ember-cli-babel: - specifier: ^8.0.0 - version: 8.2.0(@babel/core@7.24.5) - ember-cli-clean-css: - specifier: ^3.0.0 - version: 3.0.0 - ember-cli-dependency-checker: - specifier: ^3.3.2 - version: 3.3.2(ember-cli@5.3.0) - ember-cli-htmlbars: - specifier: ^6.3.0 - version: 6.3.0 - ember-cli-inject-live-reload: - specifier: ^2.1.0 - version: 2.1.0 - ember-cli-sri: - specifier: ^2.1.1 - version: 2.1.1 - ember-cli-terser: - specifier: ^4.0.2 - version: 4.0.2 - ember-concurrency: - specifier: ^2.1.2 - version: 2.3.7(@babel/core@7.24.5) - ember-concurrency-decorators: - specifier: ^2.0.3 - version: 2.0.3(@babel/core@7.24.5) - ember-concurrency-ts: - specifier: ^0.3.1 - version: 0.3.1(ember-concurrency@2.3.7) - ember-fetch: - specifier: ^8.1.2 - version: 8.1.2 - ember-load-initializers: - specifier: ^2.1.2 - version: 2.1.2(@babel/core@7.24.5) - ember-modifier: - specifier: ^4.1.0 - version: 4.1.0(ember-source@5.3.0) - ember-page-title: - specifier: ^8.0.0 - version: 8.0.0 - ember-qunit: - specifier: ^8.0.2 - version: 8.0.2(@ember/test-helpers@3.2.0)(@glint/template@1.2.1)(ember-source@5.3.0)(qunit@2.20.0) - ember-resolver: - specifier: ^11.0.1 - version: 11.0.1(ember-source@5.3.0) - ember-source: - specifier: ~5.3.0 - version: 5.3.0(@babel/core@7.24.5)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(rsvp@4.8.5)(webpack@5.88.2) - ember-source-channel-url: - specifier: ^3.0.0 - version: 3.0.0 - ember-template-lint: - specifier: ^5.11.2 - version: 5.11.2 - ember-try: - specifier: ^3.0.0 - version: 3.0.0 - ember-welcome-page: - specifier: ^7.0.2 - version: 7.0.2 - eslint: - specifier: ^8.49.0 - version: 8.52.0 - eslint-config-prettier: - specifier: ^9.0.0 - version: 9.0.0(eslint@8.52.0) - eslint-plugin-ember: - specifier: ^11.11.1 - version: 11.11.1(eslint@8.52.0) - eslint-plugin-n: - specifier: ^16.1.0 - version: 16.2.0(eslint@8.52.0) - eslint-plugin-prettier: - specifier: ^5.0.0 - version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.52.0)(prettier@3.0.3) - eslint-plugin-qunit: - specifier: ^8.0.0 - version: 8.0.1(eslint@8.52.0) - loader.js: - specifier: ^4.7.0 - version: 4.7.0 - prettier: - specifier: ^3.0.3 - version: 3.0.3 - qunit: - specifier: ^2.20.0 - version: 2.20.0 - qunit-dom: - specifier: ^3.0.0 - version: 3.0.0 - stylelint: - specifier: ^15.10.3 - version: 15.11.0(typescript@5.0.4) - stylelint-config-standard: - specifier: ^34.0.0 - version: 34.0.0(stylelint@15.11.0) - stylelint-prettier: - specifier: ^4.0.2 - version: 4.0.2(prettier@3.0.3)(stylelint@15.11.0) - tracked-built-ins: - specifier: ^3.2.0 - version: 3.3.0 - typescript: - specifier: ~5.0.0 - version: 5.0.4 - webpack: - specifier: ^5.88.2 - version: 5.88.2 - test-apps/ember-fetch-v8: devDependencies: '@babel/core': @@ -3034,19 +2850,6 @@ packages: - supports-color dev: true - /@babel/plugin-transform-typescript@7.8.7(@babel/core@7.24.5): - resolution: {integrity: sha512-7O0UsPQVNKqpHeHLpfvOG4uXmlw+MOxYvUv6Otc9uH5SYMIxvF6eBdjkWvC3f9G+VXe0RsNExyAQBeTRug/wqQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.5(supports-color@8.1.1) - '@babel/helper-create-class-features-plugin': 7.17.6(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.16.7(@babel/core@7.24.5) - transitivePeerDependencies: - - supports-color - dev: true - /@babel/plugin-transform-unicode-escapes@7.16.7(@babel/core@7.24.5): resolution: {integrity: sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==} engines: {node: '>=6.9.0'} @@ -3611,15 +3414,6 @@ packages: /@ember-data/rfc395-data@0.0.4: resolution: {integrity: sha512-tGRdvgC9/QMQSuSuJV45xoyhI0Pzjm7A9o/MVVA3HakXIImJbbzx/k/6dO9CUEQXIyS2y0fW6C1XaYOG7rY0FQ==} - /@ember-decorators/utils@6.1.1: - resolution: {integrity: sha512-0KqnoeoLKb6AyoSU65TRF5T85wmS4uDn06oARddwNPxxf/lt5jQlh41uX3W7V/fWL9tPu8x1L1Vvpc80MN1+YA==} - engines: {node: '>= 8.*'} - dependencies: - ember-cli-babel: 7.26.11 - transitivePeerDependencies: - - supports-color - dev: true - /@ember/edition-utils@1.2.0: resolution: {integrity: sha512-VmVq/8saCaPdesQmftPqbFtxJWrzxNGSQ+e8x8LLe3Hjm36pJ04Q8LeORGZkAeOhldoUX9seLGmSaHeXkIqoog==} dev: true @@ -6157,11 +5951,6 @@ packages: lodash: 4.17.21 dev: true - /babel-plugin-htmlbars-inline-precompile@3.2.0: - resolution: {integrity: sha512-IUeZmgs9tMUGXYu1vfke5I18yYJFldFGdNFQOWslXTnDWXzpwPih7QFduUqvT+awDpDuNtXpdt5JAf43Q1Hhzg==} - engines: {node: 8.* || 10.* || >= 12.*} - dev: true - /babel-plugin-htmlbars-inline-precompile@5.3.1: resolution: {integrity: sha512-QWjjFgSKtSRIcsBhJmEwS2laIdrA6na8HAlc/pEAhjHgQsah/gMiBFRZvbQTy//hWxR4BMwV7/Mya7q5H8uHeA==} engines: {node: 10.* || >= 12.*} @@ -7154,14 +6943,6 @@ packages: resolution: {integrity: sha512-VabSGRpKIzpmC+r+tJueCE5h8k6vON7EIMMWu6d/FyPdtijwLQ7QvzShEw+m3mHoDzUaj/kiZsDYrS8X2adsBg==} engines: {node: 8.* || >= 10.*} - /broccoli-output-wrapper@2.0.0: - resolution: {integrity: sha512-V/ozejo+snzNf75i/a6iTmp71k+rlvqjE3+jYfimuMwR1tjNNRdtfno+NGNQB2An9bIAeqZnKhMDurAznHAdtA==} - dependencies: - heimdalljs-logger: 0.1.10 - transitivePeerDependencies: - - supports-color - dev: true - /broccoli-output-wrapper@3.2.5: resolution: {integrity: sha512-bQAtwjSrF4Nu0CK0JOy5OZqw9t5U0zzv2555EA/cF8/a8SLDTIetk9UgrtMVw7qKLKdSpOZ2liZNeZZDaKgayw==} engines: {node: 10.* || >= 12.*} @@ -7257,21 +7038,6 @@ packages: rimraf: 2.7.1 symlink-or-copy: 1.3.1 - /broccoli-plugin@3.1.0: - resolution: {integrity: sha512-7w7FP8WJYjLvb0eaw27LO678TGGaom++49O1VYIuzjhXjK5kn2+AMlDm7CaUFw4F7CLGoVQeZ84d8gICMJa4lA==} - engines: {node: 8.* || 10.* || >= 12.*} - dependencies: - broccoli-node-api: 1.7.0 - broccoli-output-wrapper: 2.0.0 - fs-merger: 3.2.1 - promise-map-series: 0.2.3 - quick-temp: 0.1.8 - rimraf: 2.7.1 - symlink-or-copy: 1.3.1 - transitivePeerDependencies: - - supports-color - dev: true - /broccoli-plugin@4.0.7: resolution: {integrity: sha512-a4zUsWtA1uns1K7p9rExYVYG99rdKeGRymW0qOCNkvDPHQxVi3yVyJHhQbM3EZwdt2E0mnhr5e0c/bPpJ7p3Wg==} engines: {node: 10.* || >= 12.*} @@ -8952,28 +8718,6 @@ packages: resolution: {integrity: sha512-k47TDwcJ2zPideBCZE8sCiShSxQSpebY2BHcX2DdipMmBox5gsfyVrbKJWIHeSTTKyEUgmBIvQkqTOozEziCZA==} dev: true - /ember-cli-htmlbars@4.5.0: - resolution: {integrity: sha512-bYJpK1pqFu9AadDAGTw05g2LMNzY8xTCIqQm7dMJmKEoUpLRFbPf4SfHXrktzDh7Q5iggl6Skzf1M0bPlIxARw==} - engines: {node: 8.* || 10.* || >= 12.*} - dependencies: - '@ember/edition-utils': 1.2.0 - babel-plugin-htmlbars-inline-precompile: 3.2.0 - broccoli-debug: 0.6.5 - broccoli-persistent-filter: 2.3.1 - broccoli-plugin: 3.1.0 - common-tags: 1.8.2 - ember-cli-babel-plugin-helpers: 1.1.1 - fs-tree-diff: 2.0.1 - hash-for-dep: 1.5.1 - heimdalljs-logger: 0.1.10 - json-stable-stringify: 1.0.1 - semver: 6.3.1 - strip-bom: 4.0.0 - walk-sync: 2.2.0 - transitivePeerDependencies: - - supports-color - dev: true - /ember-cli-htmlbars@5.7.2: resolution: {integrity: sha512-Uj6R+3TtBV5RZoJY14oZn/sNPnc+UgmC8nb5rI4P3fR/gYoyTFIZSXiIM7zl++IpMoIrocxOrgt+mhonKphgGg==} engines: {node: 10.* || >= 12.*} @@ -9151,29 +8895,6 @@ packages: - supports-color dev: true - /ember-cli-typescript@3.1.4(@babel/core@7.24.5): - resolution: {integrity: sha512-HJ73kL45OGRmIkPhBNFt31I1SGUvdZND+LCH21+qpq3pPlFpJG8GORyXpP+2ze8PbnITNLzwe5AwUrpyuRswdQ==} - engines: {node: 8.* || >= 10.*} - dependencies: - '@babel/plugin-proposal-nullish-coalescing-operator': 7.16.7(@babel/core@7.24.5) - '@babel/plugin-proposal-optional-chaining': 7.16.7(@babel/core@7.24.5) - '@babel/plugin-transform-typescript': 7.8.7(@babel/core@7.24.5) - ansi-to-html: 0.6.15 - broccoli-stew: 3.0.0 - debug: 4.3.4(supports-color@8.1.1) - ember-cli-babel-plugin-helpers: 1.1.1 - execa: 3.4.0 - fs-extra: 8.1.0 - resolve: 1.22.0 - rsvp: 4.8.5 - semver: 6.3.1 - stagehand: 1.0.0 - walk-sync: 2.2.0 - transitivePeerDependencies: - - '@babel/core' - - supports-color - dev: true - /ember-cli-typescript@4.2.1: resolution: {integrity: sha512-0iKTZ+/wH6UB/VTWKvGuXlmwiE8HSIGcxHamwNhEC5x1mN3z8RfvsFZdQWYUzIWFN2Tek0gmepGRPTwWdBYl/A==} engines: {node: 10.* || >= 12.*} @@ -9578,63 +9299,6 @@ packages: - supports-color dev: true - /ember-compatibility-helpers@1.2.7(@babel/core@7.24.5): - resolution: {integrity: sha512-BtkjulweiXo9c3yVWrtexw2dTmBrvavD/xixNC6TKOBdrixUwU+6nuOO9dufDWsMxoid7MvtmDpzc9+mE8PdaA==} - engines: {node: 10.* || >= 12.*} - dependencies: - babel-plugin-debug-macros: 0.2.0(@babel/core@7.24.5) - ember-cli-version-checker: 5.1.2 - find-up: 5.0.0 - fs-extra: 9.1.0 - semver: 5.7.2 - transitivePeerDependencies: - - '@babel/core' - - supports-color - dev: true - - /ember-concurrency-decorators@2.0.3(@babel/core@7.24.5): - resolution: {integrity: sha512-r6O34YKI/slyYapVsuOPnmaKC4AsmBSwvgcadbdy+jHNj+mnryXPkm+3hhhRnFdlsKUKdEuXvl43lhjhYRLhhA==} - engines: {node: 10.* || >= 12} - dependencies: - '@ember-decorators/utils': 6.1.1 - ember-cli-babel: 7.26.11 - ember-cli-htmlbars: 4.5.0 - ember-cli-typescript: 3.1.4(@babel/core@7.24.5) - transitivePeerDependencies: - - '@babel/core' - - supports-color - dev: true - - /ember-concurrency-ts@0.3.1(ember-concurrency@2.3.7): - resolution: {integrity: sha512-lE9uqPgK1Y9PN/0BJ5zE2a+h95izRCn6FCyt7qVV3012TlblTynsBaoUuAbN1T3KfzFsrJaXwsxzRbDjEde2Sw==} - engines: {node: 10.* || >= 12} - peerDependencies: - ember-concurrency: ^1.2.1 || ^2.0.0-rc.1 - dependencies: - ember-cli-babel: 7.26.11 - ember-cli-htmlbars: 4.5.0 - ember-concurrency: 2.3.7(@babel/core@7.24.5) - transitivePeerDependencies: - - supports-color - dev: true - - /ember-concurrency@2.3.7(@babel/core@7.24.5): - resolution: {integrity: sha512-sz6sTIXN/CuLb5wdpauFa+rWXuvXXSnSHS4kuNzU5GSMDX1pLBWSuovoUk61FUe6CYRqBmT1/UushObwBGickQ==} - engines: {node: 10.* || 12.* || 14.* || >= 16} - dependencies: - '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.5 - '@glimmer/tracking': 1.1.2 - ember-cli-babel: 7.26.11 - ember-cli-babel-plugin-helpers: 1.1.1 - ember-cli-htmlbars: 5.7.2 - ember-compatibility-helpers: 1.2.7(@babel/core@7.24.5) - ember-destroyable-polyfill: 2.0.3(@babel/core@7.24.5) - transitivePeerDependencies: - - '@babel/core' - - supports-color - dev: true - /ember-decorators-polyfill@1.1.5(@babel/core@7.24.5): resolution: {integrity: sha512-O154i8sLoVjsiKzSqxGRfHGr+N+drT6mRrLDbNgJCnW/V5uLg/ppZFpUsrdxuXnp5Q9us3OfXV1nX2CH+7bUpA==} engines: {node: 8.* || >= 10.*} @@ -9647,18 +9311,6 @@ packages: - supports-color dev: true - /ember-destroyable-polyfill@2.0.3(@babel/core@7.24.5): - resolution: {integrity: sha512-TovtNqCumzyAiW0/OisSkkVK93xnVF4NRU6+FN0ubpfwEOpRrmM2RqDwXI6YAChCgSHON1cz0DfQStpA1Gjuuw==} - engines: {node: 10.* || >= 12} - dependencies: - ember-cli-babel: 7.26.11 - ember-cli-version-checker: 5.1.2 - ember-compatibility-helpers: 1.2.6(@babel/core@7.24.5) - transitivePeerDependencies: - - '@babel/core' - - supports-color - dev: true - /ember-disable-prototype-extensions@1.1.3: resolution: {integrity: sha512-SB9NcZ27OtoUk+gfalsc3QU17+54OoqR668qHcuvHByk4KAhGxCKlkm9EBlKJcGr7yceOOAJqohTcCEBqfRw9g==} engines: {node: '>= 0.10.0'} @@ -10671,22 +10323,6 @@ packages: strip-final-newline: 2.0.0 dev: true - /execa@3.4.0: - resolution: {integrity: sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==} - engines: {node: ^8.12.0 || >=9.7.0} - dependencies: - cross-spawn: 7.0.3 - get-stream: 5.2.0 - human-signals: 1.1.1 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - p-finally: 2.0.1 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - /execa@4.1.0: resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} engines: {node: '>=10'} diff --git a/test-apps/ember-concurrency-v2/.editorconfig b/test-apps/ember-concurrency-v2/.editorconfig deleted file mode 100644 index c35a0024..00000000 --- a/test-apps/ember-concurrency-v2/.editorconfig +++ /dev/null @@ -1,19 +0,0 @@ -# EditorConfig helps developers define and maintain consistent -# coding styles between different editors and IDEs -# editorconfig.org - -root = true - -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -indent_style = space -indent_size = 2 - -[*.hbs] -insert_final_newline = false - -[*.{diff,md}] -trim_trailing_whitespace = false diff --git a/test-apps/ember-concurrency-v2/.ember-cli b/test-apps/ember-concurrency-v2/.ember-cli deleted file mode 100644 index 978eea26..00000000 --- a/test-apps/ember-concurrency-v2/.ember-cli +++ /dev/null @@ -1,15 +0,0 @@ -{ - /** - Ember CLI sends analytics information by default. The data is completely - anonymous, but there are times when you might want to disable this behavior. - - Setting `disableAnalytics` to true will prevent any data from being sent. - */ - "disableAnalytics": false, - - /** - Setting `isTypeScriptProject` to true will force the blueprint generators to generate TypeScript - rather than JavaScript by default, when a TypeScript version of a given blueprint is available. - */ - "isTypeScriptProject": true -} diff --git a/test-apps/ember-concurrency-v2/.eslintignore b/test-apps/ember-concurrency-v2/.eslintignore deleted file mode 100644 index 9385391f..00000000 --- a/test-apps/ember-concurrency-v2/.eslintignore +++ /dev/null @@ -1,13 +0,0 @@ -# unconventional js -/blueprints/*/files/ - -# compiled output -/dist/ - -# misc -/coverage/ -!.* -.*/ - -# ember-try -/.node_modules.ember-try/ diff --git a/test-apps/ember-concurrency-v2/.eslintrc.js b/test-apps/ember-concurrency-v2/.eslintrc.js deleted file mode 100644 index 63a17669..00000000 --- a/test-apps/ember-concurrency-v2/.eslintrc.js +++ /dev/null @@ -1,65 +0,0 @@ -'use strict'; - -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - parserOptions: { - ecmaVersion: 'latest', - }, - plugins: ['ember', '@typescript-eslint'], - extends: [ - 'eslint:recommended', - 'plugin:ember/recommended', - 'plugin:prettier/recommended', - ], - env: { - browser: true, - }, - rules: {}, - overrides: [ - // ts files - { - files: ['**/*.ts'], - extends: [ - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - ], - rules: {}, - }, - // node files - { - files: [ - './.eslintrc.js', - './.prettierrc.js', - './.stylelintrc.js', - './.template-lintrc.js', - './ember-cli-build.js', - './testem.js', - './blueprints/*/index.js', - './config/**/*.js', - './lib/*/index.js', - './server/**/*.js', - ], - env: { - browser: false, - node: true, - }, - extends: ['plugin:n/recommended'], - }, - { - // test files - files: ['tests/**/*.{js,ts}'], - extends: ['plugin:qunit/recommended'], - rules: { - // Disabled rules when migrating to v2 addon / updated app - 'ember/no-classic-classes': 'off', - 'qunit/no-assert-equal': 'off', - 'qunit/no-identical-names': 'off', - '@typescript-eslint/ban-types': 'off', - '@typescript-eslint/ban-ts-comment': 'off', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-empty-function': 'off', - }, - }, - ], -}; diff --git a/test-apps/ember-concurrency-v2/.gitignore b/test-apps/ember-concurrency-v2/.gitignore deleted file mode 100644 index 71ad79d0..00000000 --- a/test-apps/ember-concurrency-v2/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -# compiled output -/dist/ -/declarations/ - -# dependencies -/node_modules/ - -# misc -/.env* -/.pnp* -/.eslintcache -/coverage/ -/npm-debug.log* -/testem.log -/yarn-error.log - -# ember-try -/.node_modules.ember-try/ -/npm-shrinkwrap.json.ember-try -/package.json.ember-try -/package-lock.json.ember-try -/yarn.lock.ember-try - -# broccoli-debug -/DEBUG/ diff --git a/test-apps/ember-concurrency-v2/.prettierignore b/test-apps/ember-concurrency-v2/.prettierignore deleted file mode 100644 index 5d42a532..00000000 --- a/test-apps/ember-concurrency-v2/.prettierignore +++ /dev/null @@ -1,15 +0,0 @@ -# unconventional js -/blueprints/*/files/ - -# compiled output -/dist/ - -# misc -/coverage/ -!.* -.*/ -*.md -*.html - -# ember-try -/.node_modules.ember-try/ diff --git a/test-apps/ember-concurrency-v2/.prettierrc.js b/test-apps/ember-concurrency-v2/.prettierrc.js deleted file mode 100644 index e5f7b6d1..00000000 --- a/test-apps/ember-concurrency-v2/.prettierrc.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -module.exports = { - overrides: [ - { - files: '*.{js,ts}', - options: { - singleQuote: true, - }, - }, - ], -}; diff --git a/test-apps/ember-concurrency-v2/.stylelintignore b/test-apps/ember-concurrency-v2/.stylelintignore deleted file mode 100644 index a0cf71cb..00000000 --- a/test-apps/ember-concurrency-v2/.stylelintignore +++ /dev/null @@ -1,8 +0,0 @@ -# unconventional files -/blueprints/*/files/ - -# compiled output -/dist/ - -# addons -/.node_modules.ember-try/ diff --git a/test-apps/ember-concurrency-v2/.stylelintrc.js b/test-apps/ember-concurrency-v2/.stylelintrc.js deleted file mode 100644 index 021c539a..00000000 --- a/test-apps/ember-concurrency-v2/.stylelintrc.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = { - extends: ['stylelint-config-standard', 'stylelint-prettier/recommended'], -}; diff --git a/test-apps/ember-concurrency-v2/.template-lintrc.js b/test-apps/ember-concurrency-v2/.template-lintrc.js deleted file mode 100644 index f35f61c7..00000000 --- a/test-apps/ember-concurrency-v2/.template-lintrc.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = { - extends: 'recommended', -}; diff --git a/test-apps/ember-concurrency-v2/.watchmanconfig b/test-apps/ember-concurrency-v2/.watchmanconfig deleted file mode 100644 index f9c3d8f8..00000000 --- a/test-apps/ember-concurrency-v2/.watchmanconfig +++ /dev/null @@ -1,3 +0,0 @@ -{ - "ignore_dirs": ["dist"] -} diff --git a/test-apps/ember-concurrency-v2/README.md b/test-apps/ember-concurrency-v2/README.md deleted file mode 100644 index c31baf5c..00000000 --- a/test-apps/ember-concurrency-v2/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# ember-concurrency-v2 - -This README outlines the details of collaborating on this Ember application. -A short introduction of this app could easily go here. - -## Prerequisites - -You will need the following things properly installed on your computer. - -* [Git](https://git-scm.com/) -* [Node.js](https://nodejs.org/) (with npm) -* [Ember CLI](https://cli.emberjs.com/release/) -* [Google Chrome](https://google.com/chrome/) - -## Installation - -* `git clone ` this repository -* `cd ember-concurrency-v2` -* `npm install` - -## Running / Development - -* `ember serve` -* Visit your app at [http://localhost:4200](http://localhost:4200). -* Visit your tests at [http://localhost:4200/tests](http://localhost:4200/tests). - -### Code Generators - -Make use of the many generators for code, try `ember help generate` for more details - -### Running Tests - -* `ember test` -* `ember test --server` - -### Linting - -* `npm run lint` -* `npm run lint:fix` - -### Building - -* `ember build` (development) -* `ember build --environment production` (production) - -### Deploying - -Specify what it takes to deploy your app. - -## Further Reading / Useful Links - -* [ember.js](https://emberjs.com/) -* [ember-cli](https://cli.emberjs.com/release/) -* Development Browser Extensions - * [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi) - * [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/) diff --git a/test-apps/ember-concurrency-v2/app/app.ts b/test-apps/ember-concurrency-v2/app/app.ts deleted file mode 100644 index 948427ec..00000000 --- a/test-apps/ember-concurrency-v2/app/app.ts +++ /dev/null @@ -1,12 +0,0 @@ -import Application from '@ember/application'; -import Resolver from 'ember-resolver'; -import loadInitializers from 'ember-load-initializers'; -import config from 'ember-concurrency-v2/config/environment'; - -export default class App extends Application { - modulePrefix = config.modulePrefix; - podModulePrefix = config.podModulePrefix; - Resolver = Resolver; -} - -loadInitializers(App, config.modulePrefix); diff --git a/test-apps/ember-concurrency-v2/app/components/.gitkeep b/test-apps/ember-concurrency-v2/app/components/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/test-apps/ember-concurrency-v2/app/config/environment.d.ts b/test-apps/ember-concurrency-v2/app/config/environment.d.ts deleted file mode 100644 index a53a2098..00000000 --- a/test-apps/ember-concurrency-v2/app/config/environment.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -export default config; - -/** - * Type declarations for - * import config from 'my-app/config/environment' - */ -declare const config: { - environment: string; - modulePrefix: string; - podModulePrefix: string; - locationType: 'history' | 'hash' | 'none' | 'auto'; - rootURL: string; - APP: Record; - isTestCli: boolean | undefined; -}; diff --git a/test-apps/ember-concurrency-v2/app/controllers/.gitkeep b/test-apps/ember-concurrency-v2/app/controllers/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/test-apps/ember-concurrency-v2/app/helpers/.gitkeep b/test-apps/ember-concurrency-v2/app/helpers/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/test-apps/ember-concurrency-v2/app/index.html b/test-apps/ember-concurrency-v2/app/index.html deleted file mode 100644 index cca7124b..00000000 --- a/test-apps/ember-concurrency-v2/app/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - EmberConcurrencyV2 - - - - {{content-for "head"}} - - - - - {{content-for "head-footer"}} - - - {{content-for "body"}} - - - - - {{content-for "body-footer"}} - - diff --git a/test-apps/ember-concurrency-v2/app/models/.gitkeep b/test-apps/ember-concurrency-v2/app/models/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/test-apps/ember-concurrency-v2/app/router.ts b/test-apps/ember-concurrency-v2/app/router.ts deleted file mode 100644 index 6bdce492..00000000 --- a/test-apps/ember-concurrency-v2/app/router.ts +++ /dev/null @@ -1,11 +0,0 @@ -import EmberRouter from '@ember/routing/router'; -import config from 'ember-concurrency-v2/config/environment'; - -export default class Router extends EmberRouter { - location = config.locationType; - rootURL = config.rootURL; -} - -Router.map(function () { - // Add route declarations here -}); diff --git a/test-apps/ember-concurrency-v2/app/routes/.gitkeep b/test-apps/ember-concurrency-v2/app/routes/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/test-apps/ember-concurrency-v2/app/styles/app.css b/test-apps/ember-concurrency-v2/app/styles/app.css deleted file mode 100644 index 2763afa4..00000000 --- a/test-apps/ember-concurrency-v2/app/styles/app.css +++ /dev/null @@ -1 +0,0 @@ -/* Ember supports plain CSS out of the box. More info: https://cli.emberjs.com/release/advanced-use/stylesheets/ */ diff --git a/test-apps/ember-concurrency-v2/app/templates/application.hbs b/test-apps/ember-concurrency-v2/app/templates/application.hbs deleted file mode 100644 index 1bd21f13..00000000 --- a/test-apps/ember-concurrency-v2/app/templates/application.hbs +++ /dev/null @@ -1,7 +0,0 @@ -{{page-title "EmberConcurrencyV2"}} - -{{! The following component displays Ember's default welcome message. }} - -{{! Feel free to remove this! }} - -{{outlet}} \ No newline at end of file diff --git a/test-apps/ember-concurrency-v2/config/ember-cli-update.json b/test-apps/ember-concurrency-v2/config/ember-cli-update.json deleted file mode 100644 index 512e25e7..00000000 --- a/test-apps/ember-concurrency-v2/config/ember-cli-update.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "packages": [ - { - "name": "ember-cli", - "version": "5.3.0", - "blueprints": [ - { - "name": "app", - "outputRepo": "https://github.com/ember-cli/ember-new-output", - "codemodsSource": "ember-app-codemods-manifest@1", - "isBaseBlueprint": true, - "options": ["--ci-provider=github", "--typescript"] - } - ] - } - ] -} diff --git a/test-apps/ember-concurrency-v2/config/ember-try.js b/test-apps/ember-concurrency-v2/config/ember-try.js deleted file mode 100644 index 84c1a479..00000000 --- a/test-apps/ember-concurrency-v2/config/ember-try.js +++ /dev/null @@ -1,141 +0,0 @@ -'use strict'; - -const getChannelURL = require('ember-source-channel-url'); - -function embroider(label, deps) { - return [ - { - name: `${label}-embroider-safe`, - npm: { - devDependencies: { - ...deps, - }, - }, - env: { - EMBROIDER_TEST_SETUP_OPTIONS: 'safe', - }, - }, - { - name: `${label}-embroider-optimized`, - npm: { - devDependencies: { - ...deps, - }, - }, - env: { - EMBROIDER_TEST_SETUP_OPTIONS: 'optimized', - }, - }, - ]; -} - -const v3Embroider = embroider('3.x', { - '@embroider/core': `^3.4.2`, - '@embroider/webpack': `^3.2.1`, - '@embroider/compat': `^3.4.0`, - '@embroider/test-setup': `^3.0.3`, -}); - -module.exports = async function () { - return { - usePnpm: true, - scenarios: [ - { - name: 'ember-lts-3.16', - npm: { - devDependencies: { - '@ember/test-helpers': '^2.0.0', - 'ember-source': '~3.16.0', - 'ember-cli': '^4.10.0', - }, - }, - }, - { - name: 'ember-lts-3.20', - npm: { - devDependencies: { - '@ember/test-helpers': '^2.0.0', - 'ember-source': '~3.20.0', - 'ember-cli': '^4.10.0', - }, - }, - }, - { - name: 'ember-lts-3.24', - npm: { - devDependencies: { - '@ember/test-helpers': '^2.0.0', - 'ember-source': '~3.24.0', - 'ember-cli': '^4.10.0', - }, - }, - }, - { - name: 'ember-lts-3.28', - npm: { - devDependencies: { - '@ember/test-helpers': '^2.0.0', - 'ember-source': '~3.28.0', - 'ember-cli': '^4.10.0', - }, - }, - }, - { - name: 'ember-lts-4.12', - npm: { - devDependencies: { - 'ember-source': '~4.12.0', - }, - }, - }, - { - name: 'ember-lts-5.4', - npm: { - devDependencies: { - 'ember-source': '~5.4.0', - }, - }, - }, - - { - name: 'ember-release', - npm: { - dependencies: { - 'ember-auto-import': '^2.2.0', - webpack: '^5.0.0', - }, - devDependencies: { - 'ember-source': await getChannelURL('release'), - }, - }, - }, - { - name: 'ember-beta', - npm: { - dependencies: { - 'ember-auto-import': '^2.2.0', - webpack: '^5.0.0', - }, - devDependencies: { - 'ember-resolver': '^10.0.0', - 'ember-source': await getChannelURL('beta'), - }, - }, - }, - { - name: 'ember-canary', - npm: { - dependencies: { - 'ember-auto-import': '^2.2.0', - webpack: '^5.0.0', - }, - devDependencies: { - 'ember-resolver': '^10.0.0', - 'ember-source': await getChannelURL('canary'), - }, - }, - }, - ...v3Embroider, - ], - }; -}; diff --git a/test-apps/ember-concurrency-v2/config/environment.js b/test-apps/ember-concurrency-v2/config/environment.js deleted file mode 100644 index dda46289..00000000 --- a/test-apps/ember-concurrency-v2/config/environment.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -module.exports = function (environment) { - const ENV = { - modulePrefix: 'ember-concurrency-v2', - environment, - rootURL: '/', - locationType: 'history', - EmberENV: { - EXTEND_PROTOTYPES: false, - FEATURES: { - // Here you can enable experimental features on an ember canary build - // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true - }, - }, - - APP: { - // Here you can pass flags/options to your application instance - // when it is created - }, - }; - - if (environment === 'development') { - // ENV.APP.LOG_RESOLVER = true; - // ENV.APP.LOG_ACTIVE_GENERATION = true; - // ENV.APP.LOG_TRANSITIONS = true; - // ENV.APP.LOG_TRANSITIONS_INTERNAL = true; - // ENV.APP.LOG_VIEW_LOOKUPS = true; - } - - if (environment === 'test') { - // Testem prefers this... - ENV.locationType = 'none'; - - // keep test console output quieter - ENV.APP.LOG_ACTIVE_GENERATION = false; - ENV.APP.LOG_VIEW_LOOKUPS = false; - - ENV.APP.rootElement = '#ember-testing'; - ENV.APP.autoboot = false; - } - - if (environment === 'production') { - // here you can enable a production-specific feature - } - - return ENV; -}; diff --git a/test-apps/ember-concurrency-v2/config/optional-features.json b/test-apps/ember-concurrency-v2/config/optional-features.json deleted file mode 100644 index b26286e2..00000000 --- a/test-apps/ember-concurrency-v2/config/optional-features.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "application-template-wrapper": false, - "default-async-observers": true, - "jquery-integration": false, - "template-only-glimmer-components": true -} diff --git a/test-apps/ember-concurrency-v2/config/targets.js b/test-apps/ember-concurrency-v2/config/targets.js deleted file mode 100644 index 1e48e059..00000000 --- a/test-apps/ember-concurrency-v2/config/targets.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -const browsers = [ - 'last 1 Chrome versions', - 'last 1 Firefox versions', - 'last 1 Safari versions', -]; - -module.exports = { - browsers, -}; diff --git a/test-apps/ember-concurrency-v2/ember-cli-build.js b/test-apps/ember-concurrency-v2/ember-cli-build.js deleted file mode 100644 index 12f8dea5..00000000 --- a/test-apps/ember-concurrency-v2/ember-cli-build.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -const EmberApp = require('ember-cli/lib/broccoli/ember-app'); - -module.exports = function (defaults) { - const app = new EmberApp(defaults, { - 'ember-cli-babel': { enableTypeScriptTransform: true }, - - // Add options here - }); - - return app.toTree(); -}; diff --git a/test-apps/ember-concurrency-v2/package.json b/test-apps/ember-concurrency-v2/package.json deleted file mode 100644 index 9895ec4c..00000000 --- a/test-apps/ember-concurrency-v2/package.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "name": "ember-concurrency-v2", - "version": "0.0.0", - "private": true, - "description": "Small description for ember-concurrency-v2 goes here", - "repository": "", - "license": "MIT", - "author": "", - "directories": { - "doc": "doc", - "test": "tests" - }, - "scripts": { - "build": "ember build --environment=production", - "lint": "concurrently \"npm:lint:*(!fix)\" --names \"lint:\"", - "lint:css": "stylelint \"**/*.css\"", - "lint:css:fix": "concurrently \"npm:lint:css -- --fix\"", - "format": "pnpm prettier -w .", - "lint:fix": "concurrently \"npm:lint:*:fix\" --names \"fix:\" && pnpm format", - "lint:prettier": "prettier --check .", - "lint:hbs": "ember-template-lint .", - "lint:hbs:fix": "ember-template-lint . --fix", - "lint:js": "eslint . --cache", - "lint:js:fix": "eslint . --fix", - "lint:types": "tsc --noEmit", - "start": "ember serve", - "test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"", - "test:ember": "ember test" - }, - "dependencies": { - "@ember/test-waiters": "workspace:*" - }, - "devDependencies": { - "@babel/core": "^7.24.5", - "@ember/optional-features": "^2.0.0", - "@ember/string": "^3.1.1", - "@ember/test-helpers": "^3.2.0", - "@glimmer/component": "^1.1.2", - "@glimmer/env": "^0.1.7", - "@glimmer/tracking": "^1.1.2", - "@glint/environment-ember-loose": "^1.1.0", - "@glint/template": "^1.1.0", - "@tsconfig/ember": "^3.0.6", - "@types/qunit": "^2.19.9", - "@types/rsvp": "^4.0.4", - "@typescript-eslint/eslint-plugin": "^6.7.2", - "@typescript-eslint/parser": "^6.7.2", - "broccoli-asset-rev": "^3.0.0", - "co": "^4.6.0", - "concurrently": "^8.2.1", - "ember-auto-import": "^2.7.2", - "ember-cli": "~5.3.0", - "ember-cli-app-version": "^6.0.1", - "ember-cli-babel": "^8.0.0", - "ember-cli-clean-css": "^3.0.0", - "ember-cli-dependency-checker": "^3.3.2", - "ember-cli-htmlbars": "^6.3.0", - "ember-cli-inject-live-reload": "^2.1.0", - "ember-cli-sri": "^2.1.1", - "ember-cli-terser": "^4.0.2", - "ember-concurrency": "^2.1.2", - "ember-concurrency-decorators": "^2.0.3", - "ember-concurrency-ts": "^0.3.1", - "ember-fetch": "^8.1.2", - "ember-load-initializers": "^2.1.2", - "ember-modifier": "^4.1.0", - "ember-page-title": "^8.0.0", - "ember-qunit": "^8.0.2", - "ember-resolver": "^11.0.1", - "ember-source": "~5.3.0", - "ember-source-channel-url": "^3.0.0", - "ember-template-lint": "^5.11.2", - "ember-try": "^3.0.0", - "ember-welcome-page": "^7.0.2", - "eslint": "^8.49.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-ember": "^11.11.1", - "eslint-plugin-n": "^16.1.0", - "eslint-plugin-prettier": "^5.0.0", - "eslint-plugin-qunit": "^8.0.0", - "loader.js": "^4.7.0", - "prettier": "^3.0.3", - "qunit": "^2.20.0", - "qunit-dom": "^3.0.0", - "stylelint": "^15.10.3", - "stylelint-config-standard": "^34.0.0", - "stylelint-prettier": "^4.0.2", - "tracked-built-ins": "^3.2.0", - "typescript": "~5.0.0", - "webpack": "^5.88.2" - }, - "engines": { - "node": "16.* || >= 18" - }, - "ember": { - "edition": "octane" - }, - "volta": { - "extends": "../../package.json" - } -} diff --git a/test-apps/ember-concurrency-v2/public/robots.txt b/test-apps/ember-concurrency-v2/public/robots.txt deleted file mode 100644 index f5916452..00000000 --- a/test-apps/ember-concurrency-v2/public/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# http://www.robotstxt.org -User-agent: * -Disallow: diff --git a/test-apps/ember-concurrency-v2/testem.js b/test-apps/ember-concurrency-v2/testem.js deleted file mode 100644 index ed2f3712..00000000 --- a/test-apps/ember-concurrency-v2/testem.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -module.exports = { - test_page: 'tests/index.html?hidepassed', - disable_watching: true, - launch_in_ci: ['Chrome'], - launch_in_dev: ['Chrome'], - browser_start_timeout: 120, - browser_args: { - Chrome: { - ci: [ - // --no-sandbox is needed when running Chrome inside a container - process.env.CI ? '--no-sandbox' : null, - '--headless', - '--disable-dev-shm-usage', - '--disable-software-rasterizer', - '--mute-audio', - '--remote-debugging-port=0', - '--window-size=1440,900', - ].filter(Boolean), - }, - }, -}; diff --git a/test-apps/ember-concurrency-v2/tests/index.html b/test-apps/ember-concurrency-v2/tests/index.html deleted file mode 100644 index ca0406cd..00000000 --- a/test-apps/ember-concurrency-v2/tests/index.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - EmberConcurrencyV2 Tests - - - - {{content-for "head"}} - {{content-for "test-head"}} - - - - - - {{content-for "head-footer"}} - {{content-for "test-head-footer"}} - - - {{content-for "body"}} - {{content-for "test-body"}} - -
-
-
-
-
-
- - - - - - - - {{content-for "body-footer"}} - {{content-for "test-body-footer"}} - - diff --git a/test-apps/ember-concurrency-v2/tests/test-helper.ts b/test-apps/ember-concurrency-v2/tests/test-helper.ts deleted file mode 100644 index d9ef0f5c..00000000 --- a/test-apps/ember-concurrency-v2/tests/test-helper.ts +++ /dev/null @@ -1,12 +0,0 @@ -import Application from 'ember-concurrency-v2/app'; -import config from 'ember-concurrency-v2/config/environment'; -import * as QUnit from 'qunit'; -import { setApplication } from '@ember/test-helpers'; -import { setup } from 'qunit-dom'; -import { start } from 'ember-qunit'; - -setApplication(Application.create(config.APP)); - -setup(QUnit.assert); - -start(); diff --git a/test-apps/ember-concurrency-v2/tests/unit/utils/mock-stable-error.ts b/test-apps/ember-concurrency-v2/tests/unit/utils/mock-stable-error.ts deleted file mode 100644 index 744d196f..00000000 --- a/test-apps/ember-concurrency-v2/tests/unit/utils/mock-stable-error.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* eslint-disable no-global-assign */ -/* eslint-disable no-unused-vars */ - -const ERROR = Error; - -// @ts-ignore -Error = ERROR; - -export function overrideError(_Error: any) { - // @ts-ignore - Error = _Error; -} -export function resetError() { - // @ts-ignore - Error = ERROR; -} -export default class MockStableError { - message: string; - // @ts-ignore - constructor(message: string) { - this.message = message; - } - get stack() { - return 'STACK'; - } -} diff --git a/test-apps/ember-concurrency-v2/tests/unit/wait-for-test.ts b/test-apps/ember-concurrency-v2/tests/unit/wait-for-test.ts deleted file mode 100644 index 9af6e97e..00000000 --- a/test-apps/ember-concurrency-v2/tests/unit/wait-for-test.ts +++ /dev/null @@ -1,446 +0,0 @@ -import MockStableError, { - overrideError, - resetError, -} from './utils/mock-stable-error'; -// @ember/test-waiters is still a v1 addon and is too weird -// to have in-repo types working correctly. -// @ts-ignore -import { _reset, getPendingWaiterState, waitFor } from '@ember/test-waiters'; -import { module, test } from 'qunit'; - -import EmberObject, { get } from '@ember/object'; -import { DEBUG } from '@glimmer/env'; - -import { task as taskFn, didCancel } from 'ember-concurrency'; -import type { TaskGenerator } from 'ember-concurrency'; -// type resolution is not working correctly due to usage of forked -// (non-published) ember-concurrency-decorators remove this ts-ignore when -// migrating back to mainline off the fork -// @ts-ignore -import { task as taskDec } from 'ember-concurrency-decorators'; -import { perform } from 'ember-concurrency-ts'; -// @ts-ignore -import co from 'co'; - -// @ember/test-waiters is still a v1 addon and is too weird -// to have in-repo types working correctly. -// @ts-ignore -import { PromiseType, Thenable } from '@ember/test-waiters/types'; - -interface ModeDef { - name: string; - createPromise: Function; - createThrowingPromise: Function; -} - -if (DEBUG) { - module('wait-for', function (hooks) { - hooks.afterEach(function () { - _reset(); - resetError(); - }); - const generatorTestModules = [ - (function () { - const EmberObjectThing = EmberObject.extend({ - doStuffTask: taskFn( - waitFor(function* doTaskStuff(...args: any) { - yield new Promise((resolve) => { - setTimeout(resolve, 10); - }); - return args.reverse(); - }), - ), - doAsyncStuff(...args: any) { - // @ts-ignore - return this.doStuffTask.perform(...args); - }, - - throwingTask: taskFn( - waitFor(function* taskThrow() { - yield new Promise((resolve) => { - setTimeout(resolve, 10); - }); - throw new Error('doh!'); - }), - ), - asyncThrow() { - // @ts-ignore - return this.throwingTask.perform(); - }, - }); - - class NativeThing { - @taskDec - @waitFor - *doStuffTask(...args: any): TaskGenerator { - yield new Promise((resolve) => { - setTimeout(resolve, 10); - }); - return args.reverse(); - } - doAsyncStuff(...args: any) { - return perform(this.doStuffTask, ...args); - } - - @taskDec - @waitFor - *throwingTask() { - yield new Promise((resolve) => { - setTimeout(resolve, 10); - }); - throw new Error('doh!'); - } - asyncThrow(...args: any) { - // @ts-expect-error throwingTask missing, due to `this` not having its type changed - return perform(this.throwingTask, ...args); - } - } - return { - name: 'Generator', - waiterName: '@ember/test-waiters:generator-waiter', - EmberObjectThing, - NativeThing, - }; - })(), - ]; - - const testModules = [...generatorTestModules]; - - testModules.forEach( - ({ name, waiterName, EmberObjectThing, NativeThing }) => { - module(name, function () { - const invocationType = [ - { - name: 'class function', - createPromise(...args: any[]) { - // @ts-expect-error - doAsyncStuff missing due to TS being hard to use with the old (pre)class model - return EmberObjectThing.create().doAsyncStuff(...args); - }, - createThrowingPromise() { - // @ts-expect-error - asyncThrow missing due to TS being hard to use with the old (pre)class model - return EmberObjectThing.create().asyncThrow(); - }, - }, - { - name: 'decorator', - createPromise(...args: any[]) { - return new NativeThing().doAsyncStuff(...args); - }, - createThrowingPromise() { - return new NativeThing().asyncThrow(); - }, - }, - ]; - - invocationType.forEach( - ({ name, createPromise, createThrowingPromise }: ModeDef) => { - module(name, function () { - test('waitFor wraps and registers a waiter', async function (assert) { - overrideError(MockStableError); - - const promise = createPromise(); - - assert.deepEqual(getPendingWaiterState(), { - pending: 1, - waiters: { - [waiterName]: [ - { - label: undefined, - stack: 'STACK', - }, - ], - }, - }); - - await ( - promise as unknown as Thenable> - ).then(() => { - assert.deepEqual(getPendingWaiterState(), { - pending: 0, - waiters: {}, - }); - }); - }); - - test('waitFor handles arguments and return value', async function (assert) { - overrideError(MockStableError); - - const ret = await createPromise(1, 'foo'); - assert.deepEqual(ret, ['foo', 1]); - }); - - test('waitFor transitions waiter to not pending even if promise throws when thenable wrapped', async function (assert) { - const promise = createThrowingPromise(); - - try { - await promise; - } catch (e) { - assert.deepEqual(getPendingWaiterState(), { - pending: 0, - waiters: {}, - }); - } - }); - }); - }, - ); - }); - }, - ); - - module('waitFor ember-concurrency interop', function () { - class Deferred { - promise: Promise; - resolve: Function = () => null; - - constructor() { - this.promise = new Promise((res) => (this.resolve = res)); - } - } - - class NativeThing { - iterations: Array = []; - _continue?: Function; - - @taskDec - @waitFor - *doStuffTask(): TaskGenerator { - for (let i = 0; i < 3; i += 1) { - const continuation = new Deferred(); - if (this._continue !== undefined) { - throw new Error('pending continue, cannot proceed'); - } - const completion = new Deferred(); - let complete = false; - - this._continue = () => { - if (complete === true) { - throw new Error( - 'Cannot call continue twice on a single iteration', - ); - } else { - complete = true; - } - - continuation.resolve(); - return completion.promise; - }; - - try { - yield continuation.promise; - } finally { - this._continue = undefined; - completion.resolve(); - } - this.iterations.push(i); - } - return 'done'; - } - - get continue() { - if (this._continue === undefined) { - throw new Error('Cannot call continue twice on a single iteration'); - } else { - try { - return this._continue; - } finally { - // detect invalid usage. Specifically, our test (as written - // currently) would be in-error if any given continue() is invoked more - // then once - this._continue = undefined; - } - } - } - - @taskDec - *parentTask(): TaskGenerator { - // @ts-ignore - return yield this.doStuffTask.perform(); - } - - @taskDec - @waitFor - *wrappedParentTask(): TaskGenerator { - // @ts-ignore - return yield this.doStuffTask.perform(); - } - } - - test('tasks with multiple yields work', async function (assert) { - const thing = new NativeThing(); - const task = perform(thing.doStuffTask); - - assert.deepEqual(getPendingWaiterState().pending, 1); - - await thing.continue(); - assert.deepEqual(thing.iterations, [0]); - assert.deepEqual(getPendingWaiterState().pending, 1); - - await thing.continue(); - assert.deepEqual(thing.iterations, [0, 1]); - assert.deepEqual(getPendingWaiterState().pending, 1); - - await thing.continue(); - await task; - - assert.deepEqual(thing.iterations, [0, 1, 2]); - assert.deepEqual(getPendingWaiterState().pending, 0); - }); - - interface CancellationDef { - desc: string; - taskName: 'doStuffTask' | 'parentTask' | 'wrappedParentTask'; - } - - const cancellationCases: CancellationDef[] = [ - { desc: 'direct', taskName: 'doStuffTask' }, - { desc: 'parent', taskName: 'parentTask' }, - { desc: 'wrapped parent', taskName: 'wrappedParentTask' }, - ]; - - cancellationCases.forEach(({ desc, taskName }) => { - test(`${desc} task cancellation works`, async function (assert) { - const thing = new NativeThing(); - - const instance = perform(get(thing, taskName)); - assert.deepEqual(getPendingWaiterState().pending, 1); - - await thing.continue(); - assert.deepEqual(thing.iterations, [0]); - assert.deepEqual(getPendingWaiterState().pending, 1); - - instance.cancel(); - try { - await instance; - assert.ok(false); - } catch (e) { - assert.ok(didCancel(e)); - assert.deepEqual(getPendingWaiterState().pending, 0); - } - }); - }); - }); - - module('waitFor co interop', function () { - function coDec( - _target: object, - _key: string, - descriptor: PropertyDescriptor, - ): PropertyDescriptor { - descriptor.value = co.wrap(descriptor.value); - return descriptor; - } - - class Deferred { - promise: Promise; - resolve: Function = () => null; - - constructor() { - this.promise = new Promise((res) => (this.resolve = res)); - } - } - - class NativeThing { - iterations: Array = []; - _continue?: Function; - - @coDec - @waitFor - *doStuffCo(): TaskGenerator { - for (let i = 0; i < 3; i += 1) { - const continuation = new Deferred(); - if (this._continue !== undefined) { - throw new Error('pending continue, cannot proceed'); - } - const completion = new Deferred(); - let continued = false; - - this._continue = () => { - if (continued === true) { - throw new Error( - 'Cannot call continue twice on a single iteration', - ); - } else { - continued = true; - } - - continuation.resolve(); - return completion.promise; - }; - - try { - yield continuation.promise; - } finally { - completion.resolve(); - this._continue = undefined; - } - this.iterations.push(i); - } - return 'done'; - } - - get continue() { - if (this._continue === undefined) { - throw new Error('Cannot call continue twice on a single iteration'); - } else { - try { - return this._continue; - } finally { - // detect invalid usage. Specifically, our test (as written - // currently) would be in-error if any given continue() is invoked more - // then once - this._continue = undefined; - } - } - } - } - - test('it works', async function (assert) { - const thing = new NativeThing(); - - thing.doStuffCo(); - assert.deepEqual(getPendingWaiterState().pending, 1); - - await thing.continue(); - assert.deepEqual(thing.iterations, [0]); - assert.deepEqual(getPendingWaiterState().pending, 1); - - await thing.continue(); - assert.deepEqual(thing.iterations, [0, 1]); - assert.deepEqual(getPendingWaiterState().pending, 1); - - await thing.continue(); - - assert.deepEqual(thing.iterations, [0, 1, 2]); - assert.deepEqual(getPendingWaiterState().pending, 0); - }); - }); - - test('types', async function (assert) { - assert.expect(0); - - async function asyncFn(a: string, b: string) { - return `${a}${b}`; - } - function* genFn(a: string, b: string) { - yield `${a}${b}`; - return `${a}${b}`; - } - - function asyncNoop(fn: typeof asyncFn) { - return fn; - } - function genNoop(fn: typeof genFn) { - return fn; - } - - asyncNoop(waitFor(asyncFn)); - genNoop(waitFor(genFn)); - - // @ts-expect-error wrong argument types - waitFor(asyncFn)(1, 2); - // @ts-expect-error wrong argument types - waitFor(genFn)(1, 2); - }); - }); -} diff --git a/test-apps/ember-concurrency-v2/tsconfig.json b/test-apps/ember-concurrency-v2/tsconfig.json deleted file mode 100644 index 037eefa2..00000000 --- a/test-apps/ember-concurrency-v2/tsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "extends": "@tsconfig/ember/tsconfig.json", - "compilerOptions": { - // have to skipLibCheck becauseu ember-concurrency has the wrong types for ComputedProperty - "skipLibCheck": true, - // The combination of `baseUrl` with `paths` allows Ember's classic package - // layout, which is not resolvable with the Node resolution algorithm, to - // work with TypeScript. - "baseUrl": ".", - "paths": { - "ember-concurrency-v2/tests/*": ["tests/*"], - "ember-concurrency-v2/*": ["app/*"], - "*": ["types/*"] - } - } -} diff --git a/test-apps/ember-concurrency-v2/types/index.d.ts b/test-apps/ember-concurrency-v2/types/index.d.ts deleted file mode 100644 index 33a43970..00000000 --- a/test-apps/ember-concurrency-v2/types/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -import 'ember-source/types';