@hint/utils-create-server v3.4.27
Create Server (@hint/utils-create-server)
Create a server to run tests
Installation
This package is installed automatically when using npm create hint,
no need to do anything from your side.
Architecture
The test web server can run in a different thread (default) or the same one (when in CI or if indicated by the user ) as the tests. The following is a summary on the benefits of each one:
- Independent:
- Better isolation
- Improve the debugging experience (website can load even if the execution is stopped in a breakpoint)
- Same thread:
- Less resources needed
- Faster execution
There main pieces are:
index.ts: This is what modules consume. Depending on the configuration or the environment it will use one type of server or another.same-thread-server.ts: The real web server. It usesexpressand listens to the messages sent byindex.ts. This will also be the class used when running in CI. Ifspawned then it will listen for IPC messages for the configuration.independent-thread-server.ts: It is a "wrapper" on top ofsame-thread-server.ts. Itspawns that process and handles the communication with it asynchronously.
When using a different process, each message sent needs a response to confirm
the action has been completed, i.e. if it sends a start message it should
receive a start message as well.
In the case of same thread all the methods are async as well so both servers
implement the same interface and the code does not need to special handle one
or the other.
The following is an example of messages used:
{
"webhint": {
"type": "start"
}
}Please note that all messages are "scoped" to webhint to avoid collision
with other possible messages.
IPC serializes the messages to JSON. Unfortunatelly it does not accept
replacer/reviver functions. The server
configuration accepts Buffers so in order to send the right data we need
to manually (de)serialize the messages in both ends.
1 year ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago