lukeed/uvu
### [`v0.5.2`](https://togithub.com/lukeed/uvu/releases/v0.5.2)
[Compare Source](https://togithub.com/lukeed/uvu/compare/v0.5.1...v0.5.2)
#### Patches
- (`uvu`) Improve deferral for single-file execution ([#145](https://togithub.com/lukeed/uvu/issues/145)): [`2a3a598`](https://togithub.com/lukeed/uvu/commit/2a3a598)
*This allows top-level `await` when using the `node ` approach.*
- (`uvu/diff`): Handle `undefined|null` vs object values ([#94](https://togithub.com/lukeed/uvu/issues/94)): [`0acb895`](https://togithub.com/lukeed/uvu/commit/0acb895)
- (`uvu/assert`): Normalize windows newlines (`\r\n`) for `snapshot` & `fixture` helpers: [`2ec6735`](https://togithub.com/lukeed/uvu/commit/2ec6735)
- (`uvu/assert`): Rewrite `dedent` with for-loop ([#117](https://togithub.com/lukeed/uvu/issues/117)): [`b84c0a4`](https://togithub.com/lukeed/uvu/commit/b84c0a4)
*Thank you [@bartveneman](https://togithub.com/bartveneman)~!*
- (`uvu/assert`): Include TypeScript `asserts` typehint for `assert.ok` method ([#105](https://togithub.com/lukeed/uvu/issues/105)): [`a1f9bfb`](https://togithub.com/lukeed/uvu/commit/a1f9bfb)
*Thank you [@ryanatkn](https://togithub.com/ryanatkn)~!*
- (types): Replace `VoidFunction` type ([#89](https://togithub.com/lukeed/uvu/issues/89)): [`1d75357`](https://togithub.com/lukeed/uvu/commit/1d75357)
#### Examples
- NEW: Add [`/examples/esbuild`](/examples/esbuild) demo ([#119](https://togithub.com/lukeed/uvu/issues/119)): [`d56753e`](https://togithub.com/lukeed/uvu/commit/d56753e), [`8792e3b`](https://togithub.com/lukeed/uvu/commit/8792e3b)
*Thank you [@osdevisnot](https://togithub.com/osdevisnot)~!*
- NEW: Add [`/examples/typescript.module`](/examples/typescript.module) example: [`75b6573`](https://togithub.com/lukeed/uvu/commit/75b6573)
*Shows how to use TypeScript tests in a file that also uses ESM via `"type": "module"` source.*
- Simplify the [`/examples/typescript`](/examples/typescript) demo: [`44a437d`](https://togithub.com/lukeed/uvu/commit/44a437d)
*Replaces `ts-node` usage with [`tsm`](https://togithub.com/lukeed/tsm) instead!*
#### Chores
- (docs): Add `assert.match` and `assert.not.match` info ([#118](https://togithub.com/lukeed/uvu/issues/118)): [`271b7f1`](https://togithub.com/lukeed/uvu/commit/271b7f1)
*Thank you [@aldy505](https://togithub.com/aldy505)~!*
- (docs): Remove duplicate `esm` content ([#83](https://togithub.com/lukeed/uvu/issues/83)): [`ae7fd4e`](https://togithub.com/lukeed/uvu/commit/ae7fd4e)
*Thank you [@apfelbox](https://togithub.com/apfelbox)~!*
***
> **Full Changelog**: https://github.com/lukeed/uvu/compare/v0.5.1...v0.5.2
### [`v0.5.1`](https://togithub.com/lukeed/uvu/releases/v0.5.1)
[Compare Source](https://togithub.com/lukeed/uvu/compare/v0.5.0...v0.5.1)
#### Patches
- (core) Use `performance.now` in supporting browsers ([#70](https://togithub.com/lukeed/uvu/issues/70)): [`d126d2c`](https://togithub.com/lukeed/uvu/commit/d126d2c)
*Results in higher fidelity measurements; avoids most `fakerTimer` issues.*
- (core) Move `QUEUE` to `globalThis` scope ([#76](https://togithub.com/lukeed/uvu/issues/76)): [`e419ff9`](https://togithub.com/lukeed/uvu/commit/e419ff9)
*Guarantees that all tests reside in same queue, even if both `uvu` CommonJS **and** ESM variants are loaded.*
- (core) Force CommonJS mode when any `-r/--require` option is defined ([#72](https://togithub.com/lukeed/uvu/issues/72), [#78](https://togithub.com/lukeed/uvu/issues/78))
*Ensures that any desired `--require` flags **actually** can be invoked. Native ESM does not trigger require hooks.*
- (parse) Return `requires` boolean in result: [`4288f22`](https://togithub.com/lukeed/uvu/commit/4288f22)
- (parse) Add `opts.cwd` default: [`838646f`](https://togithub.com/lukeed/uvu/commit/838646f), [`bcda8c9`](https://togithub.com/lukeed/uvu/commit/bcda8c9)
- (types) Make `uvu/parse` arguments optional: [`2762c1c`](https://togithub.com/lukeed/uvu/commit/2762c1c)
#### Examples
- Add ["puppeteer"](/examples/puppeteer) example ([#77](https://togithub.com/lukeed/uvu/issues/77)): [`53ac99a`](https://togithub.com/lukeed/uvu/commit/53ac99a), [`43d100b`](https://togithub.com/lukeed/uvu/commit/43d100b)
*Thank you [@AlexVipond](https://togithub.com/AlexVipond)~!*
#### Chores
- Upgrade `uvu` version within ["typescript"](/examples/typescript) example: [`6169070`](https://togithub.com/lukeed/uvu/commit/6169070)
- Fix "lightweight" link in README: [`bd05953`](https://togithub.com/lukeed/uvu/commit/bd05953)
### [`v0.5.0`](https://togithub.com/lukeed/uvu/releases/v0.5.0)
[Compare Source](https://togithub.com/lukeed/uvu/compare/v0.4.1...v0.5.0)
#### Features
- Added Native ESM Support 🎉 ([#7](https://togithub.com/lukeed/uvu/issues/7), [#68](https://togithub.com/lukeed/uvu/issues/68)): [`5ae6740`](https://togithub.com/lukeed/uvu/commit/5ae6740)
*Promoted the `next`-tagged release to stable. Thank you all who helped me test it* 🙇
As mentioned in [#7](https://togithub.com/lukeed/uvu/issues/7), maintaining legacy Node.js support was a high priority. Mission accomplished!
With this release, `uvu` retains Node.js 8.x and 10.x support. 💪 Native support for ESM is detected before invoked, only attempting to `import` test files when it's supported.
> Check out the ["esm.dual"](/examples/esm.dual) example to find out how to run the *same tests* across varying Node versions.
#### Examples
- Add ["esm.mjs"](/examples/esm.mjs) example: [`5ae6740`](https://togithub.com/lukeed/uvu/commit/5ae6740)
*Shows how to use Native ESM within `.mjs` files. (Node 12+ only)*
- Add ["esm.loader"](/examples/esm.loader) example: [`5ae6740`](https://togithub.com/lukeed/uvu/commit/5ae6740)
*Demo with `-r esm` require hook for ESM polyfill*
- Add ["esm.dual"](/examples/esm.dual) example: [`5ae6740`](https://togithub.com/lukeed/uvu/commit/5ae6740)
*Shows how to use run tests with Native ESM (Node 12+) **without** neglecting older Node.js runtimes.*
#### Chores
- Added new [`/docs/esm`](https://togithub.com/lukeed/uvu/blob/master/docs/esm.md) documentation: [`5ae6740`](https://togithub.com/lukeed/uvu/commit/5ae6740)
- Add notice re: `-r esm` notice to main README: [`e29a711`](https://togithub.com/lukeed/uvu/commit/e29a711)
- Fix typo in [`/docs/cli`](/docs/cli.md): [`113ca82`](https://togithub.com/lukeed/uvu/commit/113ca82)
### [`v0.4.1`](https://togithub.com/lukeed/uvu/releases/v0.4.1)
[Compare Source](https://togithub.com/lukeed/uvu/compare/v0.4.0...v0.4.1)
#### Patches
- (bin) Employ stricter logic for `isNode` check ([#63](https://togithub.com/lukeed/uvu/issues/63)): [`d736cef`](https://togithub.com/lukeed/uvu/commit/d736cef)
*Thank you [@zigomir](https://togithub.com/zigomir)*
### [`v0.4.0`](https://togithub.com/lukeed/uvu/releases/v0.4.0)
[Compare Source](https://togithub.com/lukeed/uvu/compare/v0.3.5...v0.4.0)
#### Breaking
- Remove immutability protection on `context` object ([#39](https://togithub.com/lukeed/uvu/issues/39), [#58](https://togithub.com/lukeed/uvu/issues/58)): [`3d3076d`](https://togithub.com/lukeed/uvu/commit/3d3076d)
Previously, `uvu` only allowed suites' `context` to be modified within suite hooks. It would then pass in a read-only copy into the test handlers. The idea was to help ensure that the tests weren't unexpectedly relying on mutated `context` values between tests. However, in practice, this caused more problems than it prevented ([#39](https://togithub.com/lukeed/uvu/issues/39), [#58](https://togithub.com/lukeed/uvu/issues/58)).
So now, `uvu` passes around the original `context` object, allowing your hooks *and* tests to read/write/whatever to `context`. The warning has also been removed. You're in full control~!
#### Features
- Write the current suite and test names into `context` object ([#55](https://togithub.com/lukeed/uvu/issues/55)): [`28d12e9`](https://togithub.com/lukeed/uvu/commit/28d12e9)
*Allows your hooks and/or tests to be made aware of which suite+test combination was executed.*
*Every `context` object will be given `__suite__` and `__test__` keys, which will be the respective name (string) values.*
*Thank you [@maraisr](https://togithub.com/maraisr)~!*
#### Patches
- (types) Export the `Test` interface ([#57](https://togithub.com/lukeed/uvu/issues/57)): [`1772435`](https://togithub.com/lukeed/uvu/commit/1772435)
*Thank you [@maraisr](https://togithub.com/maraisr)*
### [`v0.3.5`](https://togithub.com/lukeed/uvu/releases/v0.3.5)
[Compare Source](https://togithub.com/lukeed/uvu/compare/v0.3.4...v0.3.5)
#### Patches
- (diff) Allow comparison with empty strings ([#59](https://togithub.com/lukeed/uvu/issues/59)): [`a1a5621`](https://togithub.com/lukeed/uvu/commit/a1a5621)
*Thank you [@matej21](https://togithub.com/matej21)*
- (types) Rename `context` parameter within `suite` definition ([#56](https://togithub.com/lukeed/uvu/issues/56)): [`d2f2504`](https://togithub.com/lukeed/uvu/commit/d2f2504)
*Thank you [@maraisr](https://togithub.com/maraisr)*
### [`v0.3.4`](https://togithub.com/lukeed/uvu/releases/v0.3.4)
[Compare Source](https://togithub.com/lukeed/uvu/compare/v0.3.3...v0.3.4)
#### Patches
- (bin) Bail with non-zero exit code on boot/`require` error ([#50](https://togithub.com/lukeed/uvu/issues/50)): [`973eb04`](https://togithub.com/lukeed/uvu/commit/973eb04)
#### Chores
- (deps) Update `bundt` version: [`dba97ff`](https://togithub.com/lukeed/uvu/commit/dba97ff)
- (deps) Update `totalist` version: [`c916972`](https://togithub.com/lukeed/uvu/commit/c916972)
- (deps) Update `dequal` version: [`4cb9310`](https://togithub.com/lukeed/uvu/commit/4cb9310), [`083e2bd`](https://togithub.com/lukeed/uvu/commit/083e2bd)
- (types) Split `index.d.ts` into separate files: [`4786a85`](https://togithub.com/lukeed/uvu/commit/4786a85)
- Enable [GitHub Sponsor](https://togithub.com/sponsors/lukeed) button: [`0354288`](https://togithub.com/lukeed/uvu/commit/0354288)
### [`v0.3.3`](https://togithub.com/lukeed/uvu/releases/v0.3.3)
[Compare Source](https://togithub.com/lukeed/uvu/compare/v0.3.2...v0.3.3)
#### Patches
- (diff) Apply `undefined` and `NaN` preservation to Array value diff'ing ([#44](https://togithub.com/lukeed/uvu/issues/44)): [`80172fa`](https://togithub.com/lukeed/uvu/commit/80172fa)
### [`v0.3.2`](https://togithub.com/lukeed/uvu/releases/v0.3.2)
[Compare Source](https://togithub.com/lukeed/uvu/compare/v0.3.1...v0.3.2)
#### Patches
- (diff) Preserve `undefined` and `NaN` values in diff details ([#42](https://togithub.com/lukeed/uvu/issues/42)): [`4853b49`](https://togithub.com/lukeed/uvu/commit/4853b49)
*Circumvent `JSON.stringify` which naturally hides/alters these values -- missing info!*
- (types) Move `Arrayable` and `Promisable` types into `uvu` namespace: [`d1f1b5f`](https://togithub.com/lukeed/uvu/commit/d1f1b5f)
*Avoids potential conflict(s) with user and/or third-party types.*
- (uvu) Print `err.operator` property only if it exists ([#41](https://togithub.com/lukeed/uvu/issues/41)): [`18ada58`](https://togithub.com/lukeed/uvu/commit/18ada58)
*Allows for custom and/or plain `throw new Error` in tests without visual artifact.*
*Thank you [@lukeshiru](https://togithub.com/lukeshiru)~!*
### [`v0.3.1`](https://togithub.com/lukeed/uvu/releases/v0.3.1)
[Compare Source](https://togithub.com/lukeed/uvu/compare/v0.3.0...v0.3.1)
#### Features
- (assert): Added `assert.match` and `assert.not.match` operators ([#34](https://togithub.com/lukeed/uvu/issues/34)): [`74d1d84`](https://togithub.com/lukeed/uvu/commit/74d1d84)
#### Patches
- (uvu) Allow `uvu` to run in the browser without `process` shims ([#37](https://togithub.com/lukeed/uvu/issues/37)): [`878524c`](https://togithub.com/lukeed/uvu/commit/878524c)
### [`v0.3.0`](https://togithub.com/lukeed/uvu/releases/v0.3.0)
[Compare Source](https://togithub.com/lukeed/uvu/compare/v0.2.3...v0.3.0)
#### Features
- Support [Suite Context](/docs/api.uvu.md#context-1) ([#23](https://togithub.com/lukeed/uvu/issues/23), [#30](https://togithub.com/lukeed/uvu/issues/30)): [`b5ddb50`](https://togithub.com/lukeed/uvu/commit/b5ddb50)
#### Examples
- Add ["supertest"](/examples/supertest) example: [`a99e21a`](https://togithub.com/lukeed/uvu/commit/a99e21a)
#### Chores
- (bench): Run `jest` with `--env=node` flag for fairplay ([#28](https://togithub.com/lukeed/uvu/issues/28)): [`f9f268c`](https://togithub.com/lukeed/uvu/commit/f9f268c)
- (bench): Update benchmark results ([#28](https://togithub.com/lukeed/uvu/issues/28)): [`6dd7b5f`](https://togithub.com/lukeed/uvu/commit/6dd7b5f)
Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, click this checkbox.
This PR contains the following updates:
^0.2.2
->0.5.2
Release Notes
lukeed/uvu
### [`v0.5.2`](https://togithub.com/lukeed/uvu/releases/v0.5.2) [Compare Source](https://togithub.com/lukeed/uvu/compare/v0.5.1...v0.5.2) #### Patches - (`uvu`) Improve deferral for single-file execution ([#145](https://togithub.com/lukeed/uvu/issues/145)): [`2a3a598`](https://togithub.com/lukeed/uvu/commit/2a3a598) *This allows top-level `await` when using the `nodeConfiguration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.