CrowdStrike / ember-headless-table

https://ember-headless-table.pages.dev
MIT License
23 stars 8 forks source link

chore(deps): update dependency expect-type to ^0.20.0 #196

Open renovate[bot] opened 1 year ago

renovate[bot] commented 1 year ago

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
expect-type ^0.14.2 -> ^0.20.0 age adoption passing confidence
expect-type ^0.15.0 -> ^0.20.0 age adoption passing confidence

Release Notes

mmkal/expect-type (expect-type) ### [`v0.20.0`](https://togithub.com/mmkal/expect-type/releases/tag/v0.20.0) [Compare Source](https://togithub.com/mmkal/expect-type/compare/0.19.0...v0.20.0) #### Breaking changes - improve overloads support, attempt 2 by [@​mmkal](https://togithub.com/mmkal) in [https://github.com/mmkal/expect-type/pull/83](https://togithub.com/mmkal/expect-type/pull/83) This change updates how overloaded functions are treated. Now, `.parameters` gives you a *union* of the parameter-tuples that a function can take. For example, given the following type: ```ts type Factorize = { (input: number): number[] (input: bigint): bigint[] } ``` Behvaiour before: ```ts expectTypeOf().parameters.toEqualTypeOf<[bigint]>() ``` Behaviour now: ```ts expectTypeOf().parameters.toEqualTypeOf<[number] | [bigint]>() ``` There were similar changes for `.returns`, `.parameter(...)`, and `.toBeCallableWith`. Also, overloaded functions are now differentiated properly when using `.branded.toEqualTypeOf` (this was a bug that it seems nobody found). See [#​83](https://togithub.com/mmkal/expect-type/issues/83) for more details or look at the updated docs (including a new section called "[Overloaded functions](https://togithub.com/mmkal/expect-type#overloaded-functions)", which has more info on how this behaviour differs for TypeScript versions before 5.3). #### What's Changed - Fix rendering issue in readme by [@​mrazauskas](https://togithub.com/mrazauskas) in [https://github.com/mmkal/expect-type/pull/69](https://togithub.com/mmkal/expect-type/pull/69) - Fix minor issues in docs by [@​aryaemami59](https://togithub.com/aryaemami59) in [https://github.com/mmkal/expect-type/pull/91](https://togithub.com/mmkal/expect-type/pull/91) - create utils file by [@​mmkal](https://togithub.com/mmkal) in [https://github.com/mmkal/expect-type/pull/93](https://togithub.com/mmkal/expect-type/pull/93) - branding.ts and messages.ts by [@​mmkal](https://togithub.com/mmkal) in [https://github.com/mmkal/expect-type/pull/95](https://togithub.com/mmkal/expect-type/pull/95) - improve overloads support, attempt 2 by [@​mmkal](https://togithub.com/mmkal) in [https://github.com/mmkal/expect-type/pull/83](https://togithub.com/mmkal/expect-type/pull/83) - Extends: explain myself [`1e37116`](https://togithub.com/mmkal/expect-type/commit/1e37116) - Mark internal APIs with `@internal` JSDoc tag ([#​104](https://togithub.com/mmkal/expect-type/issues/104)) [`4c40b07`](https://togithub.com/mmkal/expect-type/commit/4c40b07) - Re-export everything in `overloads.ts` file ([#​107](https://togithub.com/mmkal/expect-type/issues/107)) [`5ee0181`](https://togithub.com/mmkal/expect-type/commit/5ee0181) - JSDoc improvements ([#​100](https://togithub.com/mmkal/expect-type/issues/100)) [`0bbeffa`](https://togithub.com/mmkal/expect-type/commit/0bbeffa) **Full Changelog**: https://github.com/mmkal/expect-type/compare/v0.19.0...v0.20.0 ### [`v0.19.0`](https://togithub.com/mmkal/expect-type/releases/tag/0.19.0) [Compare Source](https://togithub.com/mmkal/expect-type/compare/0.18.0...0.19.0) #### What's Changed - Fix `.omit()` to work similarly to `Omit` by [@​aryaemami59](https://togithub.com/aryaemami59) in [https://github.com/mmkal/expect-type/pull/54](https://togithub.com/mmkal/expect-type/pull/54) - Add JSDocs to everything by [@​aryaemami59](https://togithub.com/aryaemami59) in [https://github.com/mmkal/expect-type/pull/56](https://togithub.com/mmkal/expect-type/pull/56) - Remove `test` import in `README.md` by [@​aryaemami59](https://togithub.com/aryaemami59) in [https://github.com/mmkal/expect-type/pull/65](https://togithub.com/mmkal/expect-type/pull/65) **Full Changelog**: https://github.com/mmkal/expect-type/compare/0.18.0...0.19.0 ### [`v0.18.0`](https://togithub.com/mmkal/expect-type/releases/tag/0.18.0) [Compare Source](https://togithub.com/mmkal/expect-type/compare/v0.17.3...0.18.0) #### What's Changed - Add `.pick` and `.omit` by [@​aryaemami59](https://togithub.com/aryaemami59) in [https://github.com/mmkal/expect-type/pull/51](https://togithub.com/mmkal/expect-type/pull/51) #### New Contributors - [@​aryaemami59](https://togithub.com/aryaemami59) made their first contribution in [https://github.com/mmkal/expect-type/pull/51](https://togithub.com/mmkal/expect-type/pull/51) **Full Changelog**: https://github.com/mmkal/expect-type/compare/v0.17.3...0.18.0 ### [`v0.17.3`](https://togithub.com/mmkal/expect-type/releases/tag/v0.17.3) [Compare Source](https://togithub.com/mmkal/expect-type/compare/v0.17.2...v0.17.3) - docs: why-is-my-assertion-failing [`907b8aa`](https://togithub.com/mmkal/expect-type/commit/907b8aa) - I think the previous build was out of date somehow too, so see https://github.com/mmkal/expect-type/releases/v0.17.2 ### [`v0.17.2`](https://togithub.com/mmkal/expect-type/releases/tag/v0.17.2) [Compare Source](https://togithub.com/mmkal/expect-type/compare/v0.17.1...v0.17.2) - Improve tuple errors ([#​40](https://togithub.com/mmkal/expect-type/issues/40)) [`4b38117`](https://togithub.com/mmkal/expect-type/commit/4b38117) Diff(truncated - scroll right!): ```diff test('toEqualTypeOf with tuples', () => { const assertion = `expectTypeOf<[[number], [1], []]>().toEqualTypeOf<[[number], [2], []]>()` expect(tsErrors(assertion)).toMatchInlineSnapshot(` - "test/test.ts:999:999 - error TS2344: Type '[[number], [2], []]' does not satisfy the constraint '{ [x: number]: { [x: number]: number; [iterator]: (() => IterableIterator<1>) | (() => IterableIterator) | (() => IterableIterator); [unscopables]: (() => { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }) | (() => { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }) | (() => { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }); length: 0 | 1; toString: ... truncated!!!!'. - Types of property 'sort' are incompatible. - Type '(compareFn?: ((a: [] | [number] | [2], b: [] | [number] | [2]) => number) | undefined) => [[number], [2], []]' is not assignable to type '\\"Expected: function, Actual: function\\"'. + "test/test.ts:999:999 - error TS2344: Type '[[number], [2], []]' does not satisfy the constraint '{ 0: { 0: number; }; 1: { 0: \\"Expected: literal number: 2, Actual: literal number: 1\\"; }; 2: {}; }'. + The types of '1[0]' are incompatible between these types. + Type '2' is not assignable to type '\\"Expected: literal number: 2, Actual: literal number: 1\\"'. 999 expectTypeOf<[[number], [1], []]>().toEqualTypeOf<[[number], [2], []]>() ~~~~~~~~~~~~~~~~~~~" `) }) ``` ### [`v0.17.1`](https://togithub.com/mmkal/expect-type/releases/tag/v0.17.1) [Compare Source](https://togithub.com/mmkal/expect-type/compare/v0.17.0...v0.17.1) - disallow `.not` and `.branded` together [`cf38918`](https://togithub.com/mmkal/expect-type/commit/cf38918) (this was actually documented in the [v0.17.0 release](https://togithub.com/mmkal/expect-type/releases/tag/v0.17.0) but really it was only pushed here) ### [`v0.17.0`](https://togithub.com/mmkal/expect-type/releases/tag/v0.17.0) [Compare Source](https://togithub.com/mmkal/expect-type/compare/v0.16.0...v0.17.0) [#​16](https://togithub.com/mmkal/expect-type/issues/16) went in to - hopefully - significantly improve the error messages produce on failing assertions. Here's an example of how vitest's failing tests were improved: Before: image After: image Docs copied from [the readme](https://togithub.com/mmkal/expect-type#error-messages) about how to interpret these error messages *** ##### Error messages When types don't match, `.toEqualTypeOf` and `.toMatchTypeOf` use a special helper type to produce error messages that are as actionable as possible. But there's a bit of an nuance to understanding them. Since the assertions are written "fluently", the failure should be on the "expected" type, not the "actual" type (`expect().toEqualTypeOf()`). This means that type errors can be a little confusing - so this library produces a `MismatchInfo` type to try to make explicit what the expectation is. For example: ```ts expectTypeOf({a: 1}).toEqualTypeOf<{a: string}>() ``` Is an assertion that will fail, since `{a: 1}` has type `{a: number}` and not `{a: string}`. The error message in this case will read something like this: test/test.ts:999:999 - error TS2344: Type '{ a: string; }' does not satisfy the constraint '{ a: \\"Expected: string, Actual: number\\"; }'. Types of property 'a' are incompatible. Type 'string' is not assignable to type '\\"Expected: string, Actual: number\\"'. 999 expectTypeOf({a: 1}).toEqualTypeOf<{a: string}>() Note that the type constraint reported is a human-readable messaging specifying both the "expected" and "actual" types. Rather than taking the sentence `Types of property 'a' are incompatible // Type 'string' is not assignable to type "Expected: string, Actual: number"` literally - just look at the property name (`'a'`) and the message: `Expected: string, Actual: number`. This will tell you what's wrong, in most cases. Extremely complex types will of course be more effort to debug, and may require some experimentation. Please [raise an issue](https://togithub.com/mmkal/expect-type) if the error messages are actually misleading. The `toBe...` methods (like `toBeString`, `toBeNumber`, `toBeVoid` etc.) fail by resolving to a non-callable type when the `Actual` type under test doesn't match up. For example, the failure for an assertion like `expectTypeOf(1).toBeString()` will look something like this: test/test.ts:999:999 - error TS2349: This expression is not callable. Type 'ExpectString' has no call signatures. 999 expectTypeOf(1).toBeString() ~~~~~~~~~~ The `This expression is not callable` part isn't all that helpful - the meaningful error is the next line, `Type 'ExpectString has no call signatures`. This essentially means you passed a number but asserted it should be a string. If TypeScript added support for ["throw" types](https://togithub.com/microsoft/TypeScript/pull/40468) these error messagess could be improved. Until then they will take a certain amount of squinting. ##### Concrete "expected" objects vs typeargs Error messages for an assertion like this: ```ts expectTypeOf({a: 1}).toEqualTypeOf({a: ''}) ``` Will be less helpful than for an assertion like this: ```ts expectTypeOf({a: 1}).toEqualTypeOf<{a: string}>() ``` This is because the TypeScript compiler needs to infer the typearg for the `.toEqualTypeOf({a: ''})` style, and this library can only mark it as a failure by comparing it against a generic `Mismatch` type. So, where possible, use a typearg rather than a concrete type for `.toEqualTypeOf` and `toMatchTypeOf`. If it's much more convenient to compare two concrete types, you can use `typeof`: ```ts const one = valueFromFunctionOne({some: {complex: inputs}}) const two = valueFromFunctionTwo({some: {other: inputs}}) expectTypeOf(one).toEqualTypeof() ``` *** Kinda-breaking changes: essentially none, but technically, `.branded` no longer returns a "full" `ExpectTypeOf` instance at compile-time. Previously you could do this: ```ts expectTypeOf<{a: {b: 1} & {c: 1}}>().branded.not.toEqualTypeOf<{a: {b: 1; c: ''}}>() expectTypeOf<{a: {b: 1} & {c: 1}}>().not.branded.toEqualTypeOf<{a: {b: 1; c: ''}}>() ``` Now that won't work (and it was always slightly nonsensical), so you'd have to use `// @​ts-expect-error` instead of `not` if you have a negated case where you need `branded`: ```ts // @​ts-expect-error expectTypeOf<{a: {b: 1} & {c: 1}}>().branded.not.toEqualTypeOf<{a: {b: 1; c: ''}}>() ``` *** #### What's Changed - Improve CLI error messages by [@​mmkal](https://togithub.com/mmkal) in [https://github.com/mmkal/expect-type/pull/16](https://togithub.com/mmkal/expect-type/pull/16) - expect-type is usually a dev dependency by [@​SerkanSipahi](https://togithub.com/SerkanSipahi) in [https://github.com/mmkal/expect-type/pull/39](https://togithub.com/mmkal/expect-type/pull/39) #### New Contributors - [@​SerkanSipahi](https://togithub.com/SerkanSipahi) made their first contribution in [https://github.com/mmkal/expect-type/pull/39](https://togithub.com/mmkal/expect-type/pull/39) **Full Changelog**: https://github.com/mmkal/expect-type/compare/v0.16.0...v0.17.0 ### [`v0.16.0`](https://togithub.com/mmkal/expect-type/releases/tag/v0.16.0) [Compare Source](https://togithub.com/mmkal/expect-type/compare/v0.15.0...v0.16.0) #### What's Changed - support functions with `this` parameters by [@​mmkal](https://togithub.com/mmkal) and [@​papb](https://togithub.com/papb) in [https://github.com/mmkal/expect-type/pull/15](https://togithub.com/mmkal/expect-type/pull/15) - Prevent the .not modifier from being chained by [@​trevorade](https://togithub.com/trevorade) in [https://github.com/mmkal/expect-type/pull/20](https://togithub.com/mmkal/expect-type/pull/20) - Rewrite `Equal` to use the equality check from `ReadonlyEquivalent` exclusively by [@​trevorade](https://togithub.com/trevorade) in [https://github.com/mmkal/expect-type/pull/21](https://togithub.com/mmkal/expect-type/pull/21) Note that [#​21](https://togithub.com/mmkal/expect-type/issues/21) has affected behavior for intersection types, which can result in (arguably) false errors: ```ts // @​ts-expect-error the following line doesn't compile, even though the types are arguably the same. // See https://github.com/mmkal/expect-type/pull/21 expectTypeOf<{a: 1} & {b: 2}>().toEqualTypeOf<{a: 1; b: 2}>() ``` **Full Changelog**: https://github.com/mmkal/expect-type/compare/v0.15.0...v16.0.0 ### [`v0.15.0`](https://togithub.com/mmkal/expect-type/releases/tag/v0.15.0) [Compare Source](https://togithub.com/mmkal/expect-type/compare/v0.14.2...v0.15.0) #### What's Changed - Update Extends to not distribute over union types by [@​trevorade](https://togithub.com/trevorade) in [https://github.com/mmkal/expect-type/pull/12](https://togithub.com/mmkal/expect-type/pull/12) #### New Contributors - [@​trevorade](https://togithub.com/trevorade) made their first contribution in [https://github.com/mmkal/expect-type/pull/12](https://togithub.com/mmkal/expect-type/pull/12) **Full Changelog**: https://github.com/mmkal/expect-type/compare/v0.14.2...v0.15.0

Configuration

📅 Schedule: Branch creation - "after 9pm on sunday" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.



This PR was generated by Mend Renovate. View the repository job log.

changeset-bot[bot] commented 1 year ago

⚠️ No Changeset found

Latest commit: bc981122b84fa5870ac5145985bc87e8e62d3dce

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR