emberjs / ember-test-waiters Goto Github PK
View Code? Open in Web Editor NEWAn Ember addon to allow @ember/test-helpers to manage asynchronous operations
License: MIT License
An Ember addon to allow @ember/test-helpers to manage asynchronous operations
License: MIT License
Can we have token enumeration start from 1
? Just got trolled checking if a token existed or not using a simple if (token) {}
check and it didn't work cause it was 0
...
ReferenceError: _EmberTestRegisterWaiter is not defined
42
at Module.callback (http://localhost:7357/assets/vendor.js:62823:5)
43
at Module.exports (http://localhost:7357/assets/vendor.js:118:32)
44
at Module._reify (http://localhost:7357/assets/vendor.js:155:59)
45
at Module.reify (http://localhost:7357/assets
[waitFor ember-concurrency interopt failing] in ember 3.16 + ember 3.20 likely do to ember-concurrency. I am investigating this now...
I'm building an addon/lib to use in Ember and Glimmer standalone (No Ember). The project is for fetching data, so having built-in support for waiting when network requests are done is essential.
Looking at the code, this project doesn't seem too reliable in Ember itself. So what would it take to make it compatible with Glimmer?
@waitFor('my-label')
async doSomething() {}
Errors with
wait-for.js:38 Uncaught (in promise) TypeError: fn.call is not a function
at wait-for.js:38
at index.js:15
at Array.reduce (<anonymous>)
at _applyDecoratedDescriptor (index.js:15)
at Module.callback (index.js:122)
at Module.exports (loader.js:106)
at requireModule (loader.js:27)
at Class._extractDefaultExport (index.js:463)
at Class.resolveOther (index.js:123)
at Class.resolve (index.js:186)
Trying to set up embroider - I ran into this build issue:
Build Error (PackagerRunner) in ../../node_modules/@ember/test-waiters/index.ts
Module parse failed: Unexpected token (1:7)
File was processed with these loaders:
* ...node_modules/@embroider/babel-loader-8/index.js
You may need an additional loader to handle the result of these loaders.
> export type { WaiterName, Token, Primitive, Waiter, TestWaiter, TestWaiterDebugInfo, PendingWaiterState } from './types';
Is this maybe because of the main
field pointing to the index.ts instead of index.js?
https://github.com/emberjs/ember-test-waiters/blob/master/package.json#L14
NOTE: the main
branch will not be releasable during this time, because we need to complete the plan, so that there is minimal/zero disruption to folks' test suites.
In order of blockers:
main
unless we really have to.Can happen in any order
ComputedProperty
which is different from the built-in types)ember-fetch@v8
main
branch -- already implemented a long time ago via getGlobal
and storing the WAITERS
on globalThis
.@ember/test-waiters
to a native package
WAITERS
' keys. (allows deleting code)@ts-ignore
from the test-appsfetch
-- coordinate with ember-cli/ember-fetch#738@ember/test-waiters
is present across all their dependencies (which won't be required for the waiter system to work, but will be required to get improvements across the whole dep graph)
peerDependencies
with @ember/test-waiters
(with permissive range, which would be allowed post-globalThis
usage)globalThis
, we don't need peerDependencies
, we can allow duplicates of test-waiters. Using dependencies
instead of peerDependencies
can help make installation experience smoother for folks, however everyone should end up having @ember/test-waiters
declared in their apps anyway.ember-test-waiters
that re-exports everything from @ember/test-waiters
@ember/test-waiters
their deep dep of ember-test-waiters
is using.ember-test-waiters
as deprecatedTried upgrading to 2.0.0 again, but am getting these type errors:
app/services/toast.ts:28:20 - error TS2345: Argument of type 'Promise<unknown>' is not assignable to parameter of type 'import("C:/Users/Preston/Documents/Development/NullVoxPopuli/emberclear/packages/frontend/node_modules/@types/rsvp/index").Promise<unknown>'.
Property 'new' is missing in type 'Promise<unknown>' but required in type 'import("C:/Users/Preston/Documents/Development/NullVoxPopuli/emberclear/packages/frontend/node_modules/@types/rsvp/index").Promise<unknown>'.
28 waitForPromise(createToast(status, message, options));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
node_modules/@types/rsvp/index.d.ts:103:9
103 new<T>(
~~~
'new' is declared here.
whether or not I have @types/rsvp
installed myself seems to not matter.
I'm not sure why I'm getting an RSVP error now? unless ember-test-waiters uses TS and is using an old version of @types/rsvp
? ๐ค
As the title suggests, we should enable Dependabot to manage dependency upgrades.
I'm making a series of changes required to get canary passing, such as matching @ember/test-helpers's supported node versions that are technically breaking and require a major version.
These changes will be landing over the next day or so, but I would like to hold off releasing until sunday or monday so I personally have time to deal with the release if something goes wrong.
Hi,
CI for ember-web-app
is failing now, because test timeout https://travis-ci.org/zonkyio/ember-web-app/jobs/567242322.
The registration of legacy test waiter is causing tests to timeout, because it expects true
if there are no pending tasks, but hasPendingWaiters() returns true
, when it has some pending tasks to wait for.
x package/.prettierrc.js
x package/config/environment.js
x package/vendor/shims/qunit.js
x package/tsconfig.json
x package/.github/workflows/ci-build.yml
x package/.github/dependabot.yml
Is it feasible to provide a type for waitFor
that is compatible with Ember's runloop functions?
Looking to do something like:
schedule('afterRender', waitFor(async () => { โฆ }))
However this currently throws a type error:
Argument of type 'Function' is not assignable to parameter of type 'AnyFn'.
Type 'Function' provides no match for the signature '(...args: any[]): unknown'. ts(2345)
Adding this function override appears to minimally be enough to clear up the issue:
export default function waitFor(fn: AsyncFunction<any[], any>, label?: string): (...args: any[]) => unknown;
A possibly more robust solution:
export default function waitFor(fn: AsyncFunction<unknown[], unknown>, label?: string): (...args: unknown[]) => unknown;
the only way to pass a label to beginAsync
is to also pass a token yourself, meaning:
waiter.beginAsync(waiter.nextToken(), myLabel)
in production builds this will throw because the no-op waiter does not stub this function
We currently only error if endAsync
is called without calling a beginAsync
in the TestWaiter
class. It may be the case that we find we need more fine grained error messaging for two scenarios:
endAsync
is called before beginAsync
is called, thus not registering the waiter item (implemented)endAsync
is called more than once for the same waiter item (not implemented).When an addon uses ember-test-waiters
it wants to ensure that consuming applications get "proper waiting" semantics, however at the moment when the consuming application is using @ember/test-helper
< 1.5.0 the ember-test-waiter
registered waiters have no effect!!
A simple but effective solution here would be to detect if we are using an older @ember/test-helper
and register a "legacy" test waiter. Something like:
import { gte } from 'ember-compatibility-helpers';
if (Ember.Test && !gte('@ember/test-helper', '1.6.0')) {
Ember.Test.registerWaiter(hasPendingWaiters());
}
Because embroider respects node_modules resolution rules, it's not OK to null out one copy of this package and assume that another copy will serve instead. Not every consumer of the nulled-out copy is guaranteed to be able to resolve the remaining copy.
This comes up particularly in monorepos, where the copy that is nulled-out may be at the monorepo root and the winning copy can be down inside one workspace.
If it's important that only one copy of test-waiter exists, then it should be a peerDep of each package that uses it, all the way up the dependency tree to the application, which should install it.
Alternatively, every copy needs to end up with working code. Instead of nulling out the losing copies, they should delegate to the winning copy to emit some code that will properly connect them with the winning copy.
Hi,
I saw that ember-test-waiters it always included in our production build.
This seems weird as one wouldn't expect test-waiters in an app that isn't build for testing.
Our app was using [email protected] and I've also tried to manually resolve to 1.2.0 but it didn't change the resulting payload.
Would it be ok to strip ember-test-waiters in all production builds or provide an option to make it configurable?
I could open a PR that adds a funnel that excludes everything from the addon tree if enabled.
Hi @rwjblue , I have quick but important question. Why do we need this package separately?
Since this package is a hard dependency to @ember/test-helpers
, can we merge this to @ember/test-helpers
and provide the API & functionality there?
I'm using import { waitFor } from '@ember/test-waiters';
in the action inside component:
@action
@waitFor
setListenersToAnimate(element: HTMLElement): void {
this.elementToAnimate = element;
document.addEventListener('scroll', this.canAnimateCheck);
window.addEventListener('resize', this.canAnimateCheck);
this.canAnimateCheck();
}
But I'm receiving this error on tests:
It appears this projects TS files are being publish, I am under the impression that we want to publish the build js
+ d.ts
but not the ts
. Has this change or...
Reproduction:
stefanpenner@stefan /t/foo [23|1]> curl (npm info @ember/test-waiters --json | jq -r '.dist.tarball') | tar xvz -
x package/.prettierrc.js
x package/config/environment.js
x package/node-tests/force-highlander-addon-test.js
x package/force-highlander-addon.js
x package/index.js
x package/vendor/shims/qunit.js
x package/package.json
x package/tsconfig.json
x package/CHANGELOG.md
x package/LICENSE.md
x package/README.md
x package/RELEASE.md
x package/build-waiter.d.ts
x package/addon/@ember/test-waiters/build-waiter.ts
x package/types/custom-ember-debug.d.ts
x package/types/global.d.ts
x package/index.d.ts
x package/types/dummy/index.d.ts
x package/types/index.d.ts
x package/types/qunit/index.d.ts
x package/addon/@ember/test-waiters/index.ts
x package/addon/@ember/test-waiters/types/index.ts
x package/addon/ember-test-waiters/index.ts
x package/token.d.ts
x package/addon/@ember/test-waiters/token.ts
x package/wait-for-promise.d.ts
x package/addon/@ember/test-waiters/wait-for-promise.ts
x package/wait-for.d.ts
x package/addon/@ember/test-waiters/wait-for.ts
x package/waiter-manager.d.ts
x package/addon/@ember/test-waiters/waiter-manager.ts
x package/.github/workflows/ci-build.yml
x package/.github/dependabot.yml
Previously reported (with some exploration / discovery) here: bendemboski/ember-concurrency-test-waiter#15
I know this lib recently had a breaking change, but since I'm not directly using ember-test-waiters, the breaking was surprising to me.
C.I. run: https://github.com/NullVoxPopuli/emberclear/pull/558/checks?check_run_id=476263612
Error:
not ok 1 Chrome 80.0 - [191 ms] - Acceptance | Settings | Relays > when logged in: the default relays are rendered
---
actual: >
null
stack: >
TypeError: Cannot read property 'TestWaiter' of undefined
at Object.get [as TestWaiter] (https://0.0.0.0:7357/assets/vendor.js:101768:21)
at reset (https://0.0.0.0:7357/assets/vendor.js:91619:45)
Debugging further,
running locally, (in firefox):
the error is that _types is undefined?
looks like that is in ember-app-scheduler/scheduler
?
never heard of this package.
Near the top of vendor.js, (maybe in requirejs?),
Hypothesis / Question:
The Error
error TS1236: The return type of a property decorator function must be either 'void' or 'any'.
Unable to resolve signature of property decorator when called as an expression.
32 @waitFor
~~~~~~~~
error TS2769: No overload matches this call.
Overload 1 of 3, '(fn: AsyncFunction<any[], any>, label?: string | undefined): Function', gave the following error.
Argument of type 'MyComponentClass' is not assignable to parameter of type 'AsyncFunction<any[], any>'.
Type 'MyComponentClass' provides no match for the signature '(...args: any[]): Promise<any>'.
Overload 2 of 3, '(fn: CoroutineFunction<any[], any>, label?: string | undefined): CoroutineFunction<any[], any>', gave the following error.
Argument of type 'MyComponentClass' is not assignable to parameter of type 'CoroutineFunction<any[], any>'.
Type 'MyComponentClass' provides no match for the signature '(...args: any[]): CoroutineGenerator<any>'.
32 @waitFor
~~~~~~~
Found 2 errors.
This is an code that looks like:
@task
@waitFor
myTask = taskFor(async () => {
// ...
using:
I believe the fix would be to make this change:
export default function waitFor(
target: object,
_key: string,
descriptor: PropertyDescriptor,
label?: string
- ): PropertyDescriptor;
+ ): any;
This is with TypeScript 4.1.2
I've worked around this via:
import { waitFor as _waitFor } from '@ember/test-waiters';
export const waitFor = (_waitFor as unknown) as PropertyDecorator;
I'd specifically like to add a smoke test using ember s --prod
and puppeteer (aka not ember test
) that confirms things "work" when an addon / app depends on ember-test-waiters
that it does not error.
Over on this branch: NullVoxPopuli/emberclear#922
CI Log: (shows a different error related to broccoli-persistent-filter, so nothing useful there)
But locally, I got this this error:
Build Error (PackagerRunner)
Module not found: Error: Can't resolve 'ember-test-waiters/@ember/test-waiters/index.ts' in '/tmp/embroider/1fa051/emberclear/components/pod/chat/chat-entry'
Stack Trace and Error Report: /tmp/error.dump.7513682a37c80366568ac0ad779c60e4.log
At first, I was confused about why ember-test-waiters would be imported from an app file, but then looking at the file, I see that I'm doing
import { waitForPromise } from '@ember/test-waiters';
which makes sense. (also reminded myself what ember-test-waiters was even for, cause it's been a while since I've done a lot with this project)
=================================================================================
ENV Summary:
TIME: Sat Jun 06 2020 22:59:10 GMT-0400 (Eastern Daylight Time)
TITLE: ember
ARGV:
- /home/lprestonsegoiii/.volta/tools/image/node/14.4.0/bin/node
- /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/.bin/ember
- serve
- -p
- 4201
EXEC_PATH: /home/lprestonsegoiii/.volta/tools/image/node/14.4.0/bin/node
TMPDIR: /tmp
SHELL: /bin/bash
PATH:
- /tmp/yarn--1591498689832-0.1412731329260819
- /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/emberclear/node_modules/.bin
- /home/lprestonsegoiii/.config/yarn/link/node_modules/.bin
- /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/.bin
- /home/lprestonsegoiii/.volta/tools/image/node/14.4.0/libexec/lib/node_modules/npm/bin/node-gyp-bin
- /home/lprestonsegoiii/.volta/tools/image/node/14.4.0/lib/node_modules/npm/bin/node-gyp-bin
- /home/lprestonsegoiii/.volta/tools/image/node/14.4.0/bin/node_modules/npm/bin/node-gyp-bin
- /tmp/yarn--1591498689486-0.8795073939338094
- /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/emberclear/node_modules/.bin
- /home/lprestonsegoiii/.config/yarn/link/node_modules/.bin
- /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/.bin
- /home/lprestonsegoiii/.yarn/bin
- /home/lprestonsegoiii/.volta/tools/image/node/14.4.0/libexec/lib/node_modules/npm/bin/node-gyp-bin
- /home/lprestonsegoiii/.volta/tools/image/node/14.4.0/lib/node_modules/npm/bin/node-gyp-bin
- /home/lprestonsegoiii/.volta/tools/image/node/14.4.0/bin/node_modules/npm/bin/node-gyp-bin
- /home/lprestonsegoiii/.volta/tools/image/yarn/1.22.4/bin
- /home/lprestonsegoiii/.volta/tools/image/node/14.4.0/bin
- /home/lprestonsegoiii/.pythons/Python-3.6.3/bin
- /home/lprestonsegoiii/.cargo/bin
- /home/lprestonsegoiii/Applications
- /home/lprestonsegoiii/apps/phantomjs/bin
- /home/lprestonsegoiii/scripts/system-utils
- /home/lprestonsegoiii/scripts/git
- /home/lprestonsegoiii/scripts/rails
- /home/lprestonsegoiii/scripts
- /home/lprestonsegoiii/.cargo/bin
- /usr/local/sbin
- /usr/local/bin
- /usr/sbin
- /usr/bin
- /sbin
- /bin
- /usr/games
- /usr/local/games
- /snap/bin
- /home/lprestonsegoiii/.fzf/bin
- /home/lprestonsegoiii/.rvm/bin
PLATFORM: linux x64
FREEMEM: 333049856
TOTALMEM: 8226172928
UPTIME: 635092
LOADAVG: 2.6318359375,2.02685546875,1.54248046875
CPUS:
- Intel(R) Core(TM) i7-4558U CPU @ 2.80GHz - 2271
- Intel(R) Core(TM) i7-4558U CPU @ 2.80GHz - 2415
- Intel(R) Core(TM) i7-4558U CPU @ 2.80GHz - 2446
- Intel(R) Core(TM) i7-4558U CPU @ 2.80GHz - 2599
ENDIANNESS: LE
VERSIONS:
- ares: 1.16.0
- brotli: 1.0.7
- cldr: 37.0
- icu: 67.1
- llhttp: 2.0.4
- modules: 83
- napi: 6
- nghttp2: 1.41.0
- node: 14.4.0
- openssl: 1.1.1g
- tz: 2019c
- unicode: 13.0
- uv: 1.37.0
- v8: 8.1.307.31-node.33
- zlib: 1.2.11
ERROR Summary:
- broccoliBuilderErrorStack: ModuleNotFoundError: Module not found: Error: Can't resolve 'ember-test-waiters/@ember/test-waiters/index.ts' in '/tmp/embroider/1fa051/emberclear/components/pod/chat/chat-entry'
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/webpack/lib/Compilation.js:925:10
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/webpack/lib/NormalModuleFactory.js:401:22
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/webpack/lib/NormalModuleFactory.js:130:21
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/webpack/lib/NormalModuleFactory.js:224:22
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/neo-async/async.js:2830:7
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/neo-async/async.js:6877:13
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/webpack/lib/NormalModuleFactory.js:214:25
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:213:14
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:15:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:44:7
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:15:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:27:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:67:43
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:28:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/ModuleKindPlugin.js:30:40
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:15:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:15:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/forEachBail.js:30:14
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:15:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:44:7
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:15:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:16:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:16:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:27:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:67:43
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:16:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:15:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/DirectoryExistsPlugin.js:27:15
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:85:15
at processTicksAndRejections (internal/process/task_queues.js:79:11)
- code: [undefined]
- codeFrame: Module not found: Error: Can't resolve 'ember-test-waiters/@ember/test-waiters/index.ts' in '/tmp/embroider/1fa051/emberclear/components/pod/chat/chat-entry'
- errorMessage: Module not found: Error: Can't resolve 'ember-test-waiters/@ember/test-waiters/index.ts' in '/tmp/embroider/1fa051/emberclear/components/pod/chat/chat-entry'
at PackagerRunner (@embroider/webpack)
-~- created here: -~-
at new Plugin (/home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/@embroider/core/node_modules/broccoli-plugin/dist/index.js:45:31)
at new PackagerRunner (/home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/@embroider/core/src/to-broccoli-plugin.js:10:13)
at defaultPipeline (/home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/@embroider/compat/src/default-pipeline.js:36:12)
at module.exports (/home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/emberclear/ember-cli-build.js:118:12)
at Builder.readBuildFile (/home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/ember-cli/lib/models/builder.js:49:14)
at Builder.setupBroccoliBuilder (/home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/ember-cli/lib/models/builder.js:63:22)
at new Builder (/home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/ember-cli/lib/models/builder.js:29:10)
at ServeTask.run (/home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/ember-cli/lib/tasks/serve.js:49:7)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/ember-cli/lib/models/command.js:238:24
at processTicksAndRejections (internal/process/task_queues.js:97:5)
-~- (end) -~-
- errorType: Build Error
- location:
- column: [undefined]
- file: [undefined]
- line: [undefined]
- treeDir: [undefined]
- message: Module not found: Error: Can't resolve 'ember-test-waiters/@ember/test-waiters/index.ts' in '/tmp/embroider/1fa051/emberclear/components/pod/chat/chat-entry'
at PackagerRunner (@embroider/webpack)
-~- created here: -~-
at new Plugin (/home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/@embroider/core/node_modules/broccoli-plugin/dist/index.js:45:31)
at new PackagerRunner (/home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/@embroider/core/src/to-broccoli-plugin.js:10:13)
at defaultPipeline (/home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/@embroider/compat/src/default-pipeline.js:36:12)
at module.exports (/home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/emberclear/ember-cli-build.js:118:12)
at Builder.readBuildFile (/home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/ember-cli/lib/models/builder.js:49:14)
at Builder.setupBroccoliBuilder (/home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/ember-cli/lib/models/builder.js:63:22)
at new Builder (/home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/ember-cli/lib/models/builder.js:29:10)
at ServeTask.run (/home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/ember-cli/lib/tasks/serve.js:49:7)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/ember-cli/lib/models/command.js:238:24
at processTicksAndRejections (internal/process/task_queues.js:97:5)
-~- (end) -~-
- name: Error
- nodeAnnotation: @embroider/webpack
- nodeName: PackagerRunner
- originalErrorMessage: Module not found: Error: Can't resolve 'ember-test-waiters/@ember/test-waiters/index.ts' in '/tmp/embroider/1fa051/emberclear/components/pod/chat/chat-entry'
- stack: ModuleNotFoundError: Module not found: Error: Can't resolve 'ember-test-waiters/@ember/test-waiters/index.ts' in '/tmp/embroider/1fa051/emberclear/components/pod/chat/chat-entry'
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/webpack/lib/Compilation.js:925:10
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/webpack/lib/NormalModuleFactory.js:401:22
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/webpack/lib/NormalModuleFactory.js:130:21
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/webpack/lib/NormalModuleFactory.js:224:22
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/neo-async/async.js:2830:7
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/neo-async/async.js:6877:13
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/webpack/lib/NormalModuleFactory.js:214:25
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:213:14
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:15:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:44:7
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:15:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:27:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:67:43
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:28:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/ModuleKindPlugin.js:30:40
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:15:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:15:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/forEachBail.js:30:14
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:15:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:44:7
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:15:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:16:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:16:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:27:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:67:43
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:16:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/Resolver.js:285:5
at eval (<anonymous>:15:1)
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/DirectoryExistsPlugin.js:27:15
at /home/lprestonsegoiii/Development/NullVoxPopuli/emberclear/client/web/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:85:15
at processTicksAndRejections (internal/process/task_queues.js:79:11)
=================================================================================
This is with the alpha version of ember-cli-typescript and embroider 0.19.0
Also maybe cc @chriskrycho & @ef4 ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.