Files
solid/.github/workflows
Ryan Carniato a209b35b87 Solid 1.5 (#1176)
* new batching, fix #1001, fix #1062

* fix #1019, resource state

* pluggable storage on resource

* Fix createMutable to handle reactivity in case element is undefined

* Added tests

* better fixes, ssr spread improvements

* Add `has` trap for accurate `in` with stores and mutables (#1109)

* Add `has` trap for accurate `in` with stores and mutables

Fixes #1107

* Fix ?. typo

* Remove optional chaining ?.

* fix(types): fix mergeProps type when spreading array as params (#1028)

This fixes the return type of mergeProps when an array is spread as params: `mergeProps(...propsArray)`, `mergeProps(...propsArray, props)`, and `mergeProps(props1, ...propsArray, props2)`. Previously these calls would ignore the type of the array being spread and all props after the spread e.g.:

```ts
const merged = mergeProps({ a: 1 }, ...[{ b: 2 }], { c: 3 }); // { a: 1 }
```

- Allow mergeProps to be called with all manner of spread params and return the correct type.
- As a consequence of the above, mergeProps' type allows calling it with no params.
- Brought back `Simplify`, since it doesn't interfere with generics and improves readability of the result type.
- Simplified and added comments for component.ts type tests.

Additionally:
- Improved types when generic props are present.

Issues:
- This doesn't correctly type spreading multiple arrays however, since typescript doesn't allow two "rest" params: `someFn(...[1], ...["2"], 3)` is inferred as `T = [...(string | number)[], number]` and not `T = [...number[], ...string[], number]`. In this case the union of types in the array is merged into a single type, which may not be entirely accurate.

* Fix `Dynamic` types (#1116)

* Fix `Dynamic` types

* Fix `component` type

* Fix `DynamicProps`, `ComponentProps`; Add `ValidComponent`

* Fix `Dynamic` test for type fix

* Fix `Dynamic` test to use `id` instead of `title` for DOM compatibility

* Fix `component` to be required property

* fix #1112 fix built in functions on proxy failing pass through

* v1.5.0-beta.0

* cleanups on the server

* update and rework build system

* tweak turbo commands

* remove clean command

* update ci

* decrease dependency on symlink

* update lockfile

* more type issues

* fix build

* SSR performance improvement

* fix bug with ssr resolve

* bump

* Add build instructions to CONTRIBUTING (#1136)

* Add pnpm build instructions to CONTRIBUTING

* Fix Turbo link

* fix: add explicit extensions and exports fields

* errors on server while not flushed, many bug fixes

* feat(types): createResource improvements (#1130)

* feat(types): createResource improvements

- Add typable `refetching`/`refetch` with default type `unknown` for backwards compatibility.
- Remove unneeded generics.
- Refactor `createResource` parameters to reduce casting.
- Remove unneeded instances of casting, non-null assertations and `any`.
- Fix `onHydrated` type, removing `refetching`.
- Add `InitializedResource` types for overloads which define `initialValue`.
- Changed `Error` to return `never` instead of `undefined`, since reading resources in such a state throws, so the values will never be used.
- Updated docs slightly.
- Fixed a test slightly (type of an unused parameter from `string` to `unknown`).

Potential Issues:
- Adding the initialized types might slightly break userland functions. However adding them is necessary to differentiate `{ initialValue: undefined }` from omitting `initialValue`, and for cases where `T` includes `undefined` to be typed correctly.
- `store` should not need to accept `undefined` if `initialValue` is provided, but in order to make passing a generic `createSignal`-typed function work without an error, `init` and the type of the signal returned must be the same.
- In various places `undefined` can still appear if a resource errors and refetches. As such `mutate` and `store` also need to handle `undefined` correctly. This might break typing for existing `mutate` calls which are typed without `undefined`.

* test(types): add tests for createResource types

* refactor(types): fix and clean up createResource types

- Add `NoInfer` for options so that only the fetcher is used to infer the type of the resource
- Remove some unneeded casting

* feat(types): export initialized resource types

Co-authored-by: Ryan Carniato <ryansolid@gmail.com>

* simplify batching, reduce createComputed, fix #1122 enable transitions.

* bump

* remove computed from SuspenseList

* Remove computed from createProvider

* Remove a console.log (#1146)

* fixes to suspenselist

* useInitialValue on resources

* fix #1138 dialog type, fix #1147 untrack ref, fix #1151 untrack cleanup

* keyed control flow updates

* bump

* improve createSelector perf

* draft 1.5 changelog

* fix falsy check

* faster asset rendering

* children.toArray

* refactor(types): change `createStore` types for a clearer error message (#1157)

Specifically, this change targets these differences:

- Initializing a store with a generic type which is not restricted to `object` now shows `Argument of type 'T' is not assignable to parameter of type 'object | undefined'. Type 'T' is not assignable to type 'object'` instead of `Argument of type '[T]' is not assignable to parameter of type '{} extends T ? [store?: T | undefined, options?: { name?: string | undefined; } | undefined] : [store: object & T, options?: { name?: string | undefined; } | undefined]'`.

- Initializing a store with a non-generic, non-object type now shows that the expected parameter type is `object | undefined` instead of `never` (or `{} | undefiend` if trying to use `null`).

* `resource.value` and small tweaks to resources

* bump

* experimenting with nodenext

* fix

* delete resource.value, defer to further deliberation

* small naming tweaks

* bump

* update packages

* bump

* docs: add quotes to snippets (#1153)

* better option naming for resource

* add missing deps

* Update Readme (#1137)

* add missing type exports

* bump

* small updates

* untrack JSON.stringify to avoid reactive side-effects on serialization. (#1177)

* untrack JSON.stringify to avoid reactive side-effects on serialization.

* untrack JSON.stringify to avoid reactive side-effects on serialization.

* keep immdiately evaluated module code, below its indirect declared let dependencies.

Co-authored-by: Ryan Carniato <ryansolid@gmail.com>

Co-authored-by: Paolo Ricciuti <ricciutipaolo@gmail.com>
Co-authored-by: Erik Demaine <edemaine@mit.edu>
Co-authored-by: Xavier Loh <42372774+otonashixav@users.noreply.github.com>
Co-authored-by: Alexis H. Munsayac <alexis.munsayac@gmail.com>
Co-authored-by: modderme123 <modderme123@gmail.com>
Co-authored-by: Kirill Mironov <k.mironov@tinkoff.ru>
Co-authored-by: Milo <modderme123@users.noreply.github.com>
Co-authored-by: Seanghay Yath <seanghay.dev@gmail.com>
Co-authored-by: Mathieu Decaffmeyer <5883963+mathieuprog@users.noreply.github.com>
Co-authored-by: LiQuidProQuo <105608035+LiQuidProQuo@users.noreply.github.com>
2022-08-25 20:17:02 -07:00
..
2022-08-25 20:17:02 -07:00