Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Paolo Ricciuti <[email protected]> Co-authored-by: Erik Demaine <[email protected]> Co-authored-by: Xavier Loh <[email protected]> Co-authored-by: Alexis H. Munsayac <[email protected]> Co-authored-by: modderme123 <[email protected]> Co-authored-by: Kirill Mironov <[email protected]> Co-authored-by: Milo <[email protected]> Co-authored-by: Seanghay Yath <[email protected]> Co-authored-by: Mathieu Decaffmeyer <[email protected]> Co-authored-by: LiQuidProQuo <[email protected]>
- Loading branch information