From 13cf98970f14d84cf985007489532c480462925a Mon Sep 17 00:00:00 2001 From: Damian Tarnawski Date: Tue, 16 Jan 2024 15:52:06 +0100 Subject: [PATCH 01/25] immutable: Support storing other class instances than plain objects. --- .changeset/chatty-balloons-end.md | 5 ++++ packages/immutable/README.md | 43 +++++++++++++++++++++++++-- packages/immutable/package.json | 2 +- packages/immutable/src/index.ts | 13 ++++---- packages/immutable/test/index.test.ts | 11 +++++++ 5 files changed, 65 insertions(+), 9 deletions(-) create mode 100644 .changeset/chatty-balloons-end.md diff --git a/.changeset/chatty-balloons-end.md b/.changeset/chatty-balloons-end.md new file mode 100644 index 000000000..de7b9b98d --- /dev/null +++ b/.changeset/chatty-balloons-end.md @@ -0,0 +1,5 @@ +--- +"@solid-primitives/immutable": patch +--- + +Support storing other class instances than plain objects. diff --git a/packages/immutable/README.md b/packages/immutable/README.md index 1928fdba4..d550cf7a4 100644 --- a/packages/immutable/README.md +++ b/packages/immutable/README.md @@ -7,7 +7,7 @@ [![turborepo](https://img.shields.io/badge/built%20with-turborepo-cc00ff.svg?style=for-the-badge&logo=turborepo)](https://turborepo.org/) [![size](https://img.shields.io/bundlephobia/minzip/@solid-primitives/immutable?style=for-the-badge&label=size)](https://bundlephobia.com/package/@solid-primitives/immutable) [![version](https://img.shields.io/npm/v/@solid-primitives/immutable?style=for-the-badge)](https://www.npmjs.com/package/@solid-primitives/immutable) -[![stage](https://img.shields.io/endpoint?style=for-the-badge&url=https%3A%2F%2Ffd.xuwubk.eu.org%3A443%2Fhttps%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives#contribution-process) +[![stage](https://img.shields.io/endpoint?style=for-the-badge&url=https%3A%2F%2Ffd.xuwubk.eu.org%3A443%2Fhttps%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives#contribution-process) Primitive for rectifying immutable values and dealing with immutability in Solid. @@ -55,7 +55,7 @@ setData({ a: 2, b: 3 }); // logs 2 3 ``` -### Usage with immutable state management libraries +### Usage with Redux Toolkit There are many state management libraries that provide immutable data structures, such as [Immer](https://immerjs.github.io/immer/), [Redux Toolkit](https://redux-toolkit.js.org/), [XState](https://xstate.js.org/docs/), etc. @@ -101,6 +101,45 @@ const todos = createImmutable(source); ; ``` +### Usage with XState + +`createImmutable` doesn't mutate the source objects, as opposed to `createStore` with `reconcile`. This makes it a good fit for XState, which uses relies on diffing the previous and next state to determine the changes. + +```tsx +import { onCleanup, createSignal } from "solid-js"; +import { createMachine, createActor } from "xstate"; +import { createImmutable } from "@solid-primitives/immutable"; + +const toggleMachine = createMachine({ + id: "toggle", + initial: "inactive", + states: { + inactive: { + on: { TOGGLE: "active" }, + }, + active: { + on: { TOGGLE: "inactive" }, + }, + }, +}); + +export const Toggler = () => { + const actor = x.createActor(toggleMachine).start(); + onCleanup(() => actor.stop()); + + const [snapshot, setSnapshot] = createSignal(actor.getSnapshot()); + actor.subscribe(setSnapshot); + + const state = createImmutable(snapshot); + + return ( + + ); +}; +``` + ### Usage with `createResource` Data fetched from the server is immutable, so `createImmutable` can help you turn it into a reactive object, only updating the changed values. diff --git a/packages/immutable/package.json b/packages/immutable/package.json index 98e17985f..e0237e26a 100644 --- a/packages/immutable/package.json +++ b/packages/immutable/package.json @@ -15,7 +15,7 @@ }, "primitive": { "name": "immutable", - "stage": 0, + "stage": 1, "list": [ "createImmutable" ], diff --git a/packages/immutable/src/index.ts b/packages/immutable/src/index.ts index b395ace72..7fb224d99 100644 --- a/packages/immutable/src/index.ts +++ b/packages/immutable/src/index.ts @@ -15,7 +15,7 @@ import { $RAW, ReconcileOptions } from "solid-js/store"; import { trueFn, arrayEquals, noop } from "@solid-primitives/utils"; import { keyArray } from "@solid-primitives/keyed"; -export type ImmutablePrimitive = string | number | boolean | null | undefined; +export type ImmutablePrimitive = string | number | boolean | null | undefined | object; export type ImmutableObject = { [key: string]: ImmutableValue }; export type ImmutableArray = ImmutableValue[]; export type ImmutableValue = ImmutablePrimitive | ImmutableObject | ImmutableArray; @@ -28,7 +28,8 @@ type Config = { const $NO_KEY = Symbol("no-key"); const ARRAY_EQUALS_OPTIONS = { equals: arrayEquals }; -const isObject = (v: unknown): v is Record => !!v && typeof v === "object"; +const isWrappable = (v: unknown): v is Record => + !!v && (v.constructor === Object || Array.isArray(v)); abstract class CommonTraps implements ProxyHandler { o = getOwner()!; @@ -98,7 +99,7 @@ class ObjectTraps extends CommonTraps implements ProxyHandler { const v = valueAccessor(); // memoize property access if it is an object limit traversal to one level - if (!memo && isObject(v)) { + if (!memo && isWrappable(v)) { runWithOwner(this.o, () => (valueAccessor = createMemo(valueAccessor))); memo = true; return valueAccessor(); @@ -114,7 +115,7 @@ class ObjectTraps extends CommonTraps implements ProxyHandler - isObject(item) && key in item ? item[key as never] : merge ? index : item; + isWrappable(item) && key in item ? item[key as never] : merge ? index : item; class ArrayTraps extends CommonTraps implements ProxyHandler { #trackLength!: Accessor; @@ -178,14 +179,14 @@ class PropertyWrapper { #calc(): ImmutableValue { const v = this.s() as any; - if (!isObject(v)) { + if (!isWrappable(v)) { this.#lastId = undefined; this.#dispose(); return (this.#prev = v); } const id = v[this.c.key]; - if (id === this.#lastId && isObject(this.#prev)) return this.#prev; + if (id === this.#lastId && isWrappable(this.#prev)) return this.#prev; this.#lastId = id; this.#dispose(); diff --git a/packages/immutable/test/index.test.ts b/packages/immutable/test/index.test.ts index e104b8736..7a477f24f 100644 --- a/packages/immutable/test/index.test.ts +++ b/packages/immutable/test/index.test.ts @@ -162,4 +162,15 @@ describe("createImmutable", () => { expect(store.value).toBe(undefined); }); }); + + test("Classes should be treated as primitives", () => { + class Test { + constructor(public value: string) {} + } + const [data, setData] = createSignal({ value: new Test("a") }); + const store = createRoot(() => createImmutable(data)); + expect(store.value).toBe(data().value); + setData({ value: new Test("b") }); + expect(store.value).toBe(data().value); + }); }); From b65f258e1f7e5c3e1fa29aba487a7b8b95186c05 Mon Sep 17 00:00:00 2001 From: thetarnav Date: Tue, 16 Jan 2024 15:08:43 +0000 Subject: [PATCH 02/25] Update Readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 68deb51b1..047fd02ee 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,7 @@ The goal of Solid Primitives is to wrap client and server side functionality to |

*Reactivity*

| |[deep](https://github.com/solidjs-community/solid-primitives/tree/main/packages/deep#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Ffd.xuwubk.eu.org%3A443%2Fhttps%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[trackDeep](https://github.com/solidjs-community/solid-primitives/tree/main/packages/deep#trackdeep)
[trackStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/deep#trackstore)
[captureStoreUpdates](https://github.com/solidjs-community/solid-primitives/tree/main/packages/deep#capturestoreupdates)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/deep?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/deep)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/deep?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/deep)| |[destructure](https://github.com/solidjs-community/solid-primitives/tree/main/packages/destructure#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Ffd.xuwubk.eu.org%3A443%2Fhttps%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[destructure](https://github.com/solidjs-community/solid-primitives/tree/main/packages/destructure#destructure)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/destructure?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/destructure)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/destructure?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/destructure)| -|[immutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/immutable#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Ffd.xuwubk.eu.org%3A443%2Fhttps%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createImmutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/immutable#createimmutable)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/immutable?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/immutable)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/immutable?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/immutable)| +|[immutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/immutable#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Ffd.xuwubk.eu.org%3A443%2Fhttps%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createImmutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/immutable#createimmutable)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/immutable?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/immutable)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/immutable?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/immutable)| |[lifecycle](https://github.com/solidjs-community/solid-primitives/tree/main/packages/lifecycle#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Ffd.xuwubk.eu.org%3A443%2Fhttps%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createIsMounted](https://github.com/solidjs-community/solid-primitives/tree/main/packages/lifecycle#createismounted)
[isHydrated](https://github.com/solidjs-community/solid-primitives/tree/main/packages/lifecycle#ishydrated)
[onConnect](https://github.com/solidjs-community/solid-primitives/tree/main/packages/lifecycle#onconnect)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/lifecycle?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/lifecycle)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/lifecycle?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/lifecycle)| |[map](https://github.com/solidjs-community/solid-primitives/tree/main/packages/map#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Ffd.xuwubk.eu.org%3A443%2Fhttps%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[ReactiveMap](https://github.com/solidjs-community/solid-primitives/tree/main/packages/map#reactivemap)
[ReactiveWeakMap](https://github.com/solidjs-community/solid-primitives/tree/main/packages/map#reactiveweakmap)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/map?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/map)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/map?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/map)| |[memo](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Ffd.xuwubk.eu.org%3A443%2Fhttps%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createLatest](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createlatest)
[createLatestMany](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createlatestmany)
[createWritableMemo](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createwritablememo)
[createLazyMemo](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createlazymemo)
[createPureReaction](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createpurereaction)
[createMemoCache](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#creatememocache)
[createReducer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createreducer)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/memo?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/memo)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/memo?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/memo)| From 3a682204547c0817fcb872c175e3ea4ddf960123 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 16 Jan 2024 15:08:47 +0000 Subject: [PATCH 03/25] Version Packages --- .changeset/chatty-balloons-end.md | 5 ----- packages/immutable/CHANGELOG.md | 6 ++++++ packages/immutable/package.json | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) delete mode 100644 .changeset/chatty-balloons-end.md diff --git a/.changeset/chatty-balloons-end.md b/.changeset/chatty-balloons-end.md deleted file mode 100644 index de7b9b98d..000000000 --- a/.changeset/chatty-balloons-end.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@solid-primitives/immutable": patch ---- - -Support storing other class instances than plain objects. diff --git a/packages/immutable/CHANGELOG.md b/packages/immutable/CHANGELOG.md index cc5d8ed44..637befc00 100644 --- a/packages/immutable/CHANGELOG.md +++ b/packages/immutable/CHANGELOG.md @@ -1,5 +1,11 @@ # @solid-primitives/immutable +## 1.0.5 + +### Patch Changes + +- 13cf989: Support storing other class instances than plain objects. + ## 1.0.4 ### Patch Changes diff --git a/packages/immutable/package.json b/packages/immutable/package.json index e0237e26a..845f5e624 100644 --- a/packages/immutable/package.json +++ b/packages/immutable/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/immutable", - "version": "1.0.4", + "version": "1.0.5", "description": "Primitive for rectifying immutable values and dealing with immutability in Solid.", "author": "Damian Tarnawski ", "contributors": [], From 1696655f62733f416c374b2e23fa3c19df64800f Mon Sep 17 00:00:00 2001 From: Damian Tarnawski Date: Wed, 17 Jan 2024 10:20:39 +0100 Subject: [PATCH 04/25] immutable: Fix tracking array indexes --- .changeset/stupid-games-drive.md | 5 ++++ packages/immutable/src/index.ts | 34 +++++++++++++++------------ packages/immutable/test/index.test.ts | 13 +++++++++- 3 files changed, 36 insertions(+), 16 deletions(-) create mode 100644 .changeset/stupid-games-drive.md diff --git a/.changeset/stupid-games-drive.md b/.changeset/stupid-games-drive.md new file mode 100644 index 000000000..24b242f95 --- /dev/null +++ b/.changeset/stupid-games-drive.md @@ -0,0 +1,5 @@ +--- +"@solid-primitives/immutable": patch +--- + +Loosen createImmutable types. Fix tracking array indexes. diff --git a/packages/immutable/src/index.ts b/packages/immutable/src/index.ts index 7fb224d99..ea092d03c 100644 --- a/packages/immutable/src/index.ts +++ b/packages/immutable/src/index.ts @@ -114,9 +114,6 @@ class ObjectTraps extends CommonTraps implements ProxyHandler - isWrappable(item) && key in item ? item[key as never] : merge ? index : item; - class ArrayTraps extends CommonTraps implements ProxyHandler { #trackLength!: Accessor; @@ -128,7 +125,14 @@ class ArrayTraps extends CommonTraps implements ProxyHandler getArrayItemKey(item, index, config), + (item, index) => + isWrappable(item) + ? config.key in item + ? item[config.key as never] + : config.merge + ? index + : item + : index, item => new PropertyWrapper(item, getOwner()!, config), ), [], @@ -138,7 +142,7 @@ class ArrayTraps extends CommonTraps implements ProxyHandler this.#trackItems().length, 0); } - get(target: ImmutableArray, property: PropertyKey, receiver: unknown) { + get(_: ImmutableArray, property: PropertyKey, receiver: unknown) { if (property === $RAW) return untrack(this.s); if (property === $PROXY) return receiver; if (property === $TRACK) return this.#trackItems(), receiver; @@ -150,16 +154,16 @@ class ArrayTraps extends CommonTraps implements ProxyHandler= untrack(this.#trackLength)) - return this.#trackLength(), this.s()[property as any]; + // out of bounds + if (num >= untrack(this.#trackLength)) return this.#trackLength(), this.s()[num]; - return untrack(this.#trackItems)[property]?.get(); + // valid index + return untrack(this.#trackItems)[num]?.get(); } } @@ -232,13 +236,13 @@ const wrap = ( * // logs 2 3 * ``` */ -export function createImmutable( +export function createImmutable( source: Accessor, options: ReconcileOptions = {}, ): T { const memo = createMemo(source); return untrack(() => - wrap(memo(), memo, { + wrap(memo() as any, memo, { key: options.key === null ? $NO_KEY : options.key ?? "id", merge: options.merge, }), diff --git a/packages/immutable/test/index.test.ts b/packages/immutable/test/index.test.ts index 7a477f24f..3c437936c 100644 --- a/packages/immutable/test/index.test.ts +++ b/packages/immutable/test/index.test.ts @@ -1,5 +1,5 @@ import { describe, test, expect } from "vitest"; -import { createRoot, createSignal } from "solid-js"; +import { createMemo, createRoot, createSignal } from "solid-js"; import { createImmutable } from "../src/index.js"; import { unwrap } from "solid-js/store"; @@ -173,4 +173,15 @@ describe("createImmutable", () => { setData({ value: new Test("b") }); expect(store.value).toBe(data().value); }); + + test("Array.join()", () => { + const [data, setData] = createSignal(["a", "b"]); + const joined = createRoot(() => { + const store = createImmutable(data); + return createMemo(() => store.join(",")); + }); + expect(joined()).toBe("a,b"); + setData(["b", "a"]); + expect(joined()).toBe("b,a"); + }); }); From b916a9e3f8613f0f690478a4362e6008f18e2e75 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 17 Jan 2024 09:21:16 +0000 Subject: [PATCH 05/25] Version Packages --- .changeset/stupid-games-drive.md | 5 ----- packages/immutable/CHANGELOG.md | 6 ++++++ packages/immutable/package.json | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) delete mode 100644 .changeset/stupid-games-drive.md diff --git a/.changeset/stupid-games-drive.md b/.changeset/stupid-games-drive.md deleted file mode 100644 index 24b242f95..000000000 --- a/.changeset/stupid-games-drive.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@solid-primitives/immutable": patch ---- - -Loosen createImmutable types. Fix tracking array indexes. diff --git a/packages/immutable/CHANGELOG.md b/packages/immutable/CHANGELOG.md index 637befc00..b79a7f3d4 100644 --- a/packages/immutable/CHANGELOG.md +++ b/packages/immutable/CHANGELOG.md @@ -1,5 +1,11 @@ # @solid-primitives/immutable +## 1.0.6 + +### Patch Changes + +- 1696655: Loosen createImmutable types. Fix tracking array indexes. + ## 1.0.5 ### Patch Changes diff --git a/packages/immutable/package.json b/packages/immutable/package.json index 845f5e624..f388d9ef8 100644 --- a/packages/immutable/package.json +++ b/packages/immutable/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/immutable", - "version": "1.0.5", + "version": "1.0.6", "description": "Primitive for rectifying immutable values and dealing with immutability in Solid.", "author": "Damian Tarnawski ", "contributors": [], From a632588cdae7b7fbae1bb8bb8d6cd9d226cf353e Mon Sep 17 00:00:00 2001 From: Damian Tarnawski Date: Wed, 17 Jan 2024 16:02:24 +0100 Subject: [PATCH 06/25] immutable: Correct getOwnPropertyDescriptor trap --- .changeset/moody-kiwis-nail.md | 5 +++ packages/immutable/src/index.ts | 46 +++++++++++++++++---------- packages/immutable/test/index.test.ts | 11 ++++++- 3 files changed, 45 insertions(+), 17 deletions(-) create mode 100644 .changeset/moody-kiwis-nail.md diff --git a/.changeset/moody-kiwis-nail.md b/.changeset/moody-kiwis-nail.md new file mode 100644 index 000000000..9abe93587 --- /dev/null +++ b/.changeset/moody-kiwis-nail.md @@ -0,0 +1,5 @@ +--- +"@solid-primitives/immutable": patch +--- + +Correct getOwnPropertyDescriptor trap diff --git a/packages/immutable/src/index.ts b/packages/immutable/src/index.ts index ea092d03c..66bb7a413 100644 --- a/packages/immutable/src/index.ts +++ b/packages/immutable/src/index.ts @@ -57,15 +57,30 @@ abstract class CommonTraps implement return this.#trackKeys ? this.#trackKeys() : Reflect.ownKeys(this.s()); } + abstract get(target: T, property: PropertyKey, receiver: unknown): unknown; + getOwnPropertyDescriptor(target: T, property: PropertyKey): PropertyDescriptor | undefined { - return this.has(target, property) - ? { - enumerable: true, - get: () => this.get(target, property, this), - configurable: true, - } - : undefined; + let desc = Reflect.getOwnPropertyDescriptor(target, property) as any; + + if (desc) { + if (desc.get) { + desc.get = this.get.bind(this, target, property, this); + delete desc.writable; + } else { + desc.value = this.get(target, property, this); + } + } else { + desc = this.has(target, property) + ? { + enumerable: true, + configurable: true, + get: this.get.bind(this, target, property, this), + } + : undefined; + } + + return desc; } set = trueFn; deleteProperty = trueFn; @@ -88,10 +103,10 @@ class ObjectTraps extends CommonTraps implements ProxyHandler { - const source = this.s() as unknown; - return source ? source[property as never] : undefined; - }, - memo = false; + const source = this.s() as unknown; + return source ? source[property as never] : undefined; + }; + let memo = false; this.#cache.set( property, @@ -163,7 +178,7 @@ class ArrayTraps extends CommonTraps implements ProxyHandler= untrack(this.#trackLength)) return this.#trackLength(), this.s()[num]; // valid index - return untrack(this.#trackItems)[num]?.get(); + return untrack(this.#trackItems)[num]!.get(); } } @@ -212,10 +227,9 @@ const wrap = ( source: Accessor, config: Config, ): ImmutableObject | ImmutableArray => - new Proxy( - initialValue.constructor(), - new (Array.isArray(initialValue) ? ArrayTraps : ObjectTraps)(source as any, config), - ); + Array.isArray(initialValue) + ? new Proxy([], new ArrayTraps(source as any, config)) + : new Proxy({}, new ObjectTraps(source as any, config)); /** * Creates a deeply nested reactive object derived from the given immutable source. The source can be any signal that is updated in an immutable fashion. diff --git a/packages/immutable/test/index.test.ts b/packages/immutable/test/index.test.ts index 3c437936c..3090753e0 100644 --- a/packages/immutable/test/index.test.ts +++ b/packages/immutable/test/index.test.ts @@ -1,7 +1,7 @@ import { describe, test, expect } from "vitest"; import { createMemo, createRoot, createSignal } from "solid-js"; -import { createImmutable } from "../src/index.js"; import { unwrap } from "solid-js/store"; +import { createImmutable } from "../src/index.js"; describe("createImmutable", () => { test("Reconcile a simple object", () => { @@ -184,4 +184,13 @@ describe("createImmutable", () => { setData(["b", "a"]); expect(joined()).toBe("b,a"); }); + + test("Correct .length property descriptor", () => { + /* + toEqual checks the not only the value but also the property descriptors + it should be the same as of normal array + */ + const store = createRoot(() => createImmutable(() => ["a", "b"])); + expect(store).toEqual(["a", "b"]); + }); }); From 9fd4a44b552c08c0ae2f1bbdf75f6d0bbd0e975d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 17 Jan 2024 15:04:23 +0000 Subject: [PATCH 07/25] Version Packages --- .changeset/moody-kiwis-nail.md | 5 ----- packages/immutable/CHANGELOG.md | 6 ++++++ packages/immutable/package.json | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) delete mode 100644 .changeset/moody-kiwis-nail.md diff --git a/.changeset/moody-kiwis-nail.md b/.changeset/moody-kiwis-nail.md deleted file mode 100644 index 9abe93587..000000000 --- a/.changeset/moody-kiwis-nail.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@solid-primitives/immutable": patch ---- - -Correct getOwnPropertyDescriptor trap diff --git a/packages/immutable/CHANGELOG.md b/packages/immutable/CHANGELOG.md index b79a7f3d4..ceb8b3cf9 100644 --- a/packages/immutable/CHANGELOG.md +++ b/packages/immutable/CHANGELOG.md @@ -1,5 +1,11 @@ # @solid-primitives/immutable +## 1.0.7 + +### Patch Changes + +- a632588: Correct getOwnPropertyDescriptor trap + ## 1.0.6 ### Patch Changes diff --git a/packages/immutable/package.json b/packages/immutable/package.json index f388d9ef8..9aef59ba3 100644 --- a/packages/immutable/package.json +++ b/packages/immutable/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/immutable", - "version": "1.0.6", + "version": "1.0.7", "description": "Primitive for rectifying immutable values and dealing with immutability in Solid.", "author": "Damian Tarnawski ", "contributors": [], From b88a24bb847894574207e2823a3a6cd08402e6c3 Mon Sep 17 00:00:00 2001 From: Asqar Arslanov Date: Wed, 17 Jan 2024 22:07:18 +0300 Subject: [PATCH 08/25] i18n: fix typo ("out" -> "our") --- packages/i18n/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/i18n/README.md b/packages/i18n/README.md index 8016c1b27..7c7912c69 100644 --- a/packages/i18n/README.md +++ b/packages/i18n/README.md @@ -213,7 +213,7 @@ t2("hello", { name: "John" }); // => 'hello John!' Splitting the dictionary into multiple modules can be useful when you have a large dictionary and want to avoid loading the entire dictionary at once. -For example if out app had a separate `login` and `dashboard` modules, we could split the dictionary into 3 modules: (`common`, `login` and `dashboard`). +For example if our app had a separate `login` and `dashboard` modules, we could split the dictionary into 3 modules: (`common`, `login` and `dashboard`). ``` i18n/ From 6581a8ec0480cdd62cf5328eba52c263397d4c73 Mon Sep 17 00:00:00 2001 From: Asqar Arslanov Date: Wed, 17 Jan 2024 22:07:48 +0300 Subject: [PATCH 09/25] i18n: add missing comma (after "for example") --- packages/i18n/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/i18n/README.md b/packages/i18n/README.md index 7c7912c69..79023523b 100644 --- a/packages/i18n/README.md +++ b/packages/i18n/README.md @@ -213,7 +213,7 @@ t2("hello", { name: "John" }); // => 'hello John!' Splitting the dictionary into multiple modules can be useful when you have a large dictionary and want to avoid loading the entire dictionary at once. -For example if our app had a separate `login` and `dashboard` modules, we could split the dictionary into 3 modules: (`common`, `login` and `dashboard`). +For example, if our app had a separate `login` and `dashboard` modules, we could split the dictionary into 3 modules: (`common`, `login` and `dashboard`). ``` i18n/ From 04e141c694ba2788de035048abc99f2823a6b2b8 Mon Sep 17 00:00:00 2001 From: David Bieregger Date: Thu, 18 Jan 2024 18:48:31 +0100 Subject: [PATCH 10/25] Add support for Generic Template Resolvers Add NullableChainedTranslators --- packages/i18n/src/index.ts | 126 ++++++++++++++++++++++--------------- 1 file changed, 76 insertions(+), 50 deletions(-) diff --git a/packages/i18n/src/index.ts b/packages/i18n/src/index.ts index 7b1e0ac28..dff73e42b 100644 --- a/packages/i18n/src/index.ts +++ b/packages/i18n/src/index.ts @@ -50,11 +50,11 @@ export type Flatten = number extends T ? /* catch any */ BaseRecordDict : T extends (infer V)[] ? /* array */ { readonly [K in JoinPath]?: V } & (V extends BaseDict - ? Partial>> - : {}) + ? Partial>> + : {}) : /* record */ UnionToIntersection< - { [K in keyof T]: T[K] extends BaseDict ? Flatten> : never }[keyof T] - > & { readonly [K in keyof T as JoinPath]: T[K] }; + { [K in keyof T]: T[K] extends BaseDict ? Flatten> : never }[keyof T] + > & { readonly [K in keyof T as JoinPath]: T[K] }; function visitDict(flat_dict: Record, dict: BaseDict, path: string): void { for (const [key, value] of Object.entries(dict)) { @@ -92,7 +92,7 @@ function visitDict(flat_dict: Record, dict: BaseDict, path: str * ``` */ export function flatten(dict: T): Flatten { - const flat_dict: Record = { ...dict }; + const flat_dict: Record = {...dict}; for (const [key, value] of Object.entries(dict)) { isDict(value) && visitDict(flat_dict, value, key); } @@ -162,7 +162,7 @@ export const template = (source: string): Template(template: T, ...args: ResolveArgs) => string; +export type TemplateResolver = (template: T, ...args: ResolveArgs) => O; /** * Simple template resolver that replaces `{{ key }}` with the value of `args.key`. @@ -185,27 +185,28 @@ export const resolveTemplate: TemplateResolver = (string: string, args?: BaseTem */ export const identityResolveTemplate = (v => v) as TemplateResolver; -export type Resolved = T extends (...args: any[]) => infer R ? R : T extends string ? string : T; +export type Resolved = T extends (...args: any[]) => infer R ? R : T extends O ? O : T; -export type ResolveArgs = T extends (...args: infer A) => any +export type ResolveArgs = T extends (...args: infer A) => any ? A : T extends Template ? [args: R] - : T extends string + : T extends O ? [args?: BaseTemplateArgs] : []; -export type Resolver = (...args: ResolveArgs) => Resolved; +export type Resolver = (...args: ResolveArgs) => Resolved; +export type NullableResolver = (...args: ResolveArgs) => Resolved | undefined; -export type Translator = ( +export type Translator = ( path: K, - ...args: ResolveArgs -) => Resolved; + ...args: ResolveArgs +) => Resolved; -export type NullableTranslator = ( +export type NullableTranslator = ( path: K, - ...args: ResolveArgs -) => Resolved | undefined; + ...args: ResolveArgs +) => Resolved | undefined; /** * Create a translator function that will resolve the path in the dictionary and return the value. @@ -237,14 +238,14 @@ export type NullableTranslator = ( * t("food.meat") // => "meat" * ``` */ -export function translator( +export function translator( dict: () => T, - resolveTemplate?: TemplateResolver, -): Translator; -export function translator( + resolveTemplate?: TemplateResolver, +): Translator; +export function translator( dict: () => T | undefined, - resolveTemplate?: TemplateResolver, -): NullableTranslator; + resolveTemplate?: TemplateResolver, +): NullableTranslator; export function translator( dict: () => BaseRecordDict | undefined, resolveTemplate: TemplateResolver = identityResolveTemplate, @@ -296,23 +297,27 @@ export type Scoped> * greetings("goodbye", "John") // => undefined * ``` */ -export function scopedTranslator>( - translator: Translator, +export function scopedTranslator>( + translator: Translator, scope: S, -): Translator>; -export function scopedTranslator>( - translator: NullableTranslator, +): Translator, O>; +export function scopedTranslator>( + translator: NullableTranslator, scope: S, -): NullableTranslator>; -export function scopedTranslator( - translator: Translator, +): NullableTranslator, O>; +export function scopedTranslator( + translator: Translator, scope: string, -): Translator> { +): Translator, O> { return (path, ...args) => translator(`${scope}.${path}`, ...args); } -export type ChainedTranslator = { - readonly [K in keyof T]: T[K] extends BaseRecordDict ? ChainedTranslator : Resolver; +export type ChainedTranslator = { + readonly [K in keyof T]: T[K] extends BaseRecordDict ? ChainedTranslator : Resolver; +}; + +export type NullableChainedTranslator = { + readonly [K in keyof T]: T[K] extends BaseRecordDict ? NullableChainedTranslator : NullableResolver; }; /** @@ -341,12 +346,22 @@ export type ChainedTranslator = { * chained.goodbye("John") // => "goodbye John!" * ``` */ -export function chainedTranslator( +export function chainedTranslator( + init_dict: T, + translate: Translator, + path?: string +): ChainedTranslator; +export function chainedTranslator( init_dict: T, - translate: Translator, - path = "", -): ChainedTranslator { - const result: any = { ...init_dict }; + translate: NullableTranslator, + path?: string, +): NullableChainedTranslator; +export function chainedTranslator( + init_dict: T, + translate: Translator, + path: string = "", +): any { + const result: any = {...init_dict}; for (const [key, value] of Object.entries(init_dict)) { const key_path = `${path}.${key}`; @@ -354,16 +369,17 @@ export function chainedTranslator( result[key] = isRecordDict(value) ? chainedTranslator(value, translate, key_path) : (...args: any[]) => - translate( - key_path, - // @ts-expect-error - ...args, - ); + translate( + key_path, + // @ts-expect-error + ...args, + ); } return result; } + /** * Create an object-chained translator *(implemented using a Proxy)* that will resolve the path in the dictionary and return the value. * @@ -389,25 +405,35 @@ export function chainedTranslator( * proxy.goodbye("John") // => "goodbye John!" * ``` */ -export const proxyTranslator: ( - translate: Translator, -) => ChainedTranslator = (translate: Translator, path = ""): any => - new Proxy(translate.bind(void 0, path), new Traps(translate, path)); +export function proxyTranslator( + translate: Translator, path?: string +): ChainedTranslator +export function proxyTranslator( + translate: NullableTranslator, path?: string +): NullableChainedTranslator +export function proxyTranslator( + translate: Translator, path: string = "" +): any { + return new Proxy(translate.bind(void 0, path), new Traps(translate, path)); +} -class Traps { +class Traps { constructor( - private readonly translate: Translator, + private readonly translate: Translator, private readonly path: string, - ) {} + ) { + } get(target: any, prop: PropertyKey): any { if (typeof prop !== "string") return Reflect.get(target, prop); return (proxyTranslator as any)(this.translate, `${this.path}.${prop}`); } + has(target: any, prop: PropertyKey): boolean { if (typeof prop !== "string") return Reflect.has(target, prop); return (proxyTranslator as any)(this.translate, `${this.path}.${prop}`) !== undefined; } + getOwnPropertyDescriptor(target: any, prop: PropertyKey): PropertyDescriptor | undefined { if (typeof prop !== "string") return Reflect.getOwnPropertyDescriptor(target, prop); return { From bba8150141107c531d4083d87b731d66e28c2ac6 Mon Sep 17 00:00:00 2001 From: David Bieregger Date: Fri, 19 Jan 2024 15:35:18 +0100 Subject: [PATCH 11/25] Add support for generic TemplateResolverArgs --- packages/i18n/src/index.ts | 111 +++++++++++++++++++------------------ 1 file changed, 57 insertions(+), 54 deletions(-) diff --git a/packages/i18n/src/index.ts b/packages/i18n/src/index.ts index dff73e42b..4cd3722bb 100644 --- a/packages/i18n/src/index.ts +++ b/packages/i18n/src/index.ts @@ -137,14 +137,17 @@ export const prefix: ( return result; }; -export type BaseTemplateArgs = Record; +type DefaultResolveArgs = string | number | boolean; +type DefaultResolved = string + +export type BaseTemplateArgs = Record; /** * A string branded with arguments needed to resolve the template. */ -export type Template = string & { __template_args: T }; +export type Template, I> = string & { __template_args: T }; -export type TemplateArgs> = T extends Template ? R : never; +export type TemplateArgs, I> = T extends Template ? R : never; /** * Identity function that returns the same string branded as {@link Template} with the arguments needed to resolve the template. @@ -157,12 +160,12 @@ export type TemplateArgs> = T extends Template * const template = "hello {{ name }}!" as Template<{ name: string }>; * ``` */ -export const template = (source: string): Template => source as any; +export const template = , I>(source: string): Template => source as any; /** * Resolve a {@link Template} with the provided {@link TemplateArgs}. */ -export type TemplateResolver = (template: T, ...args: ResolveArgs) => O; +export type TemplateResolver = (template: T, ...args: ResolveArgs) => O; /** * Simple template resolver that replaces `{{ key }}` with the value of `args.key`. @@ -173,7 +176,7 @@ export type TemplateResolver = (template: T, ...ar * // => "hello John!" * ``` */ -export const resolveTemplate: TemplateResolver = (string: string, args?: BaseTemplateArgs) => { +export const resolveTemplate: TemplateResolver = (string: string, args?: BaseTemplateArgs) => { if (args) for (const [key, value] of Object.entries(args)) string = string.replace(new RegExp(`{{\\s*${key}\\s*}}`, "g"), value as string); @@ -187,25 +190,25 @@ export const identityResolveTemplate = (v => v) as TemplateResolver; export type Resolved = T extends (...args: any[]) => infer R ? R : T extends O ? O : T; -export type ResolveArgs = T extends (...args: infer A) => any +export type ResolveArgs = T extends (...args: infer A) => any ? A - : T extends Template + : T extends Template ? [args: R] : T extends O - ? [args?: BaseTemplateArgs] + ? [args?: BaseTemplateArgs] : []; -export type Resolver = (...args: ResolveArgs) => Resolved; -export type NullableResolver = (...args: ResolveArgs) => Resolved | undefined; +export type Resolver = (...args: ResolveArgs) => Resolved; +export type NullableResolver = (...args: ResolveArgs) => Resolved | undefined; -export type Translator = ( +export type Translator = ( path: K, - ...args: ResolveArgs + ...args: ResolveArgs ) => Resolved; -export type NullableTranslator = ( +export type NullableTranslator = ( path: K, - ...args: ResolveArgs + ...args: ResolveArgs ) => Resolved | undefined; /** @@ -238,16 +241,16 @@ export type NullableTranslator = "meat" * ``` */ -export function translator( +export function translator( dict: () => T, - resolveTemplate?: TemplateResolver, -): Translator; -export function translator( + resolveTemplate?: TemplateResolver, +): Translator; +export function translator( + dict: () => T | undefined, + resolveTemplate?: TemplateResolver, +): NullableTranslator; +export function translator( dict: () => T | undefined, - resolveTemplate?: TemplateResolver, -): NullableTranslator; -export function translator( - dict: () => BaseRecordDict | undefined, resolveTemplate: TemplateResolver = identityResolveTemplate, ): any { return (path: string, ...args: any[]) => { @@ -297,27 +300,27 @@ export type Scoped> * greetings("goodbye", "John") // => undefined * ``` */ -export function scopedTranslator>( - translator: Translator, +export function scopedTranslator>( + translator: Translator, scope: S, -): Translator, O>; -export function scopedTranslator>( - translator: NullableTranslator, +): Translator, O, I>; +export function scopedTranslator>( + translator: NullableTranslator, scope: S, -): NullableTranslator, O>; -export function scopedTranslator( - translator: Translator, +): NullableTranslator, O, I>; +export function scopedTranslator( + translator: Translator, scope: string, -): Translator, O> { +): Translator, O, I> { return (path, ...args) => translator(`${scope}.${path}`, ...args); } -export type ChainedTranslator = { - readonly [K in keyof T]: T[K] extends BaseRecordDict ? ChainedTranslator : Resolver; +export type ChainedTranslator = { + readonly [K in keyof T]: T[K] extends BaseRecordDict ? ChainedTranslator : Resolver; }; -export type NullableChainedTranslator = { - readonly [K in keyof T]: T[K] extends BaseRecordDict ? NullableChainedTranslator : NullableResolver; +export type NullableChainedTranslator = { + readonly [K in keyof T]: T[K] extends BaseRecordDict ? NullableChainedTranslator : NullableResolver; }; /** @@ -346,19 +349,19 @@ export type NullableChainedTranslator = { * chained.goodbye("John") // => "goodbye John!" * ``` */ -export function chainedTranslator( +export function chainedTranslator( init_dict: T, - translate: Translator, + translate: Translator, path?: string -): ChainedTranslator; -export function chainedTranslator( +): ChainedTranslator; +export function chainedTranslator( init_dict: T, - translate: NullableTranslator, + translate: NullableTranslator, path?: string, -): NullableChainedTranslator; -export function chainedTranslator( +): NullableChainedTranslator; +export function chainedTranslator( init_dict: T, - translate: Translator, + translate: Translator, path: string = "", ): any { const result: any = {...init_dict}; @@ -405,21 +408,21 @@ export function chainedTranslator( * proxy.goodbye("John") // => "goodbye John!" * ``` */ -export function proxyTranslator( - translate: Translator, path?: string -): ChainedTranslator -export function proxyTranslator( - translate: NullableTranslator, path?: string -): NullableChainedTranslator -export function proxyTranslator( - translate: Translator, path: string = "" +export function proxyTranslator( + translate: Translator, path?: string +): ChainedTranslator +export function proxyTranslator( + translate: NullableTranslator, path?: string +): NullableChainedTranslator +export function proxyTranslator( + translate: Translator, path: string = "" ): any { return new Proxy(translate.bind(void 0, path), new Traps(translate, path)); } -class Traps { +class Traps { constructor( - private readonly translate: Translator, + private readonly translate: Translator, private readonly path: string, ) { } From f3342f26a031cd636b7b8f3f176b3019ff0c7137 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Kuijper?= <31251240+Joehoel@users.noreply.github.com> Date: Wed, 24 Jan 2024 21:33:46 +0100 Subject: [PATCH 12/25] docs: duplicate keys --- packages/upload/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/upload/README.md b/packages/upload/README.md index 8ba12652a..867adc246 100644 --- a/packages/upload/README.md +++ b/packages/upload/README.md @@ -64,7 +64,6 @@ const { setRef: dropzoneRef, files: droppedFiles } = createDropzone({ await doStuff(2); files.forEach(f => console.log(f)); }, - onDragStart: files => console.log("drag start") onDragStart: files => files.forEach(f => console.log(f)), onDragOver: files => console.log("drag over") }); From f13bc6ad29c932b46d77289ebfc49345efa3393e Mon Sep 17 00:00:00 2001 From: thetarnav Date: Wed, 24 Jan 2024 21:10:01 +0000 Subject: [PATCH 13/25] Format --- packages/upload/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/upload/README.md b/packages/upload/README.md index 867adc246..a525088e3 100644 --- a/packages/upload/README.md +++ b/packages/upload/README.md @@ -65,7 +65,7 @@ const { setRef: dropzoneRef, files: droppedFiles } = createDropzone({ files.forEach(f => console.log(f)); }, onDragStart: files => files.forEach(f => console.log(f)), - onDragOver: files => console.log("drag over") + onDragOver: files => console.log("drag over"), }); ``` From 70b09201f951ebccf0c932e65c5a957f269e2686 Mon Sep 17 00:00:00 2001 From: Caleb Taylor Date: Wed, 7 Feb 2024 21:56:26 -0800 Subject: [PATCH 14/25] Make table header text sticky --- site/src/components/table.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/src/components/table.tsx b/site/src/components/table.tsx index 4be5aca42..8dd3bea22 100644 --- a/site/src/components/table.tsx +++ b/site/src/components/table.tsx @@ -35,7 +35,7 @@ export const THead: ParentComponent = props => { {props.children} @@ -45,8 +45,8 @@ export const THead: ParentComponent = props => { export const TH: ParentComponent = props => { return ( - - {props.children} + + {props.children} ); }; From a1b62829554ad9c02a1d463722bc9c902cc4f78b Mon Sep 17 00:00:00 2001 From: David Bieregger Date: Mon, 12 Feb 2024 21:06:48 +0100 Subject: [PATCH 15/25] Remove unused type exports in utils This commit removes the ResolvedJSXElement and ResolvedChildren type exports from the types.ts file in the utils package. These types were previously imported from the solid-js library but are no longer needed because now they are properly exported by solid-js. --- packages/utils/src/types.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/utils/src/types.ts b/packages/utils/src/types.ts index 55210aad4..646d515f5 100644 --- a/packages/utils/src/types.ts +++ b/packages/utils/src/types.ts @@ -2,12 +2,6 @@ import type { Accessor, Setter } from "solid-js"; export type { EffectOptions, OnOptions } from "solid-js"; -// export types that aren't exported by solid-js main module -export type { - ResolvedJSXElement, - ResolvedChildren, -} from "../node_modules/solid-js/types/reactive/signal.js"; - /** * Can be single or in an array */ From d2a95bd90b39d6c38177329cbdd9c9c4104dd1ec Mon Sep 17 00:00:00 2001 From: David Bieregger Date: Mon, 12 Feb 2024 21:15:45 +0100 Subject: [PATCH 16/25] Remove all other usages --- packages/jsx-tokenizer/src/index.ts | 4 ++-- packages/refs/src/index.ts | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/jsx-tokenizer/src/index.ts b/packages/jsx-tokenizer/src/index.ts index c62193a60..96d6a63f3 100644 --- a/packages/jsx-tokenizer/src/index.ts +++ b/packages/jsx-tokenizer/src/index.ts @@ -1,6 +1,6 @@ -import { Accessor, Component, createComponent, createMemo, JSX, DEV } from "solid-js"; +import { Accessor, Component, createComponent, createMemo, JSX, DEV, ResolvedJSXElement } from "solid-js"; import { isServer } from "solid-js/web"; -import type { ResolvedJSXElement, NoInfer, Many } from "@solid-primitives/utils"; +import type { NoInfer, Many } from "@solid-primitives/utils"; import { asArray } from "@solid-primitives/utils"; /** @internal $TYPE is only used for type inference */ diff --git a/packages/refs/src/index.ts b/packages/refs/src/index.ts index 4593259d1..b94edd059 100644 --- a/packages/refs/src/index.ts +++ b/packages/refs/src/index.ts @@ -2,8 +2,6 @@ import { chain, arrayEquals } from "@solid-primitives/utils"; import { Accessor, children, createComputed, createMemo, JSX, onCleanup, untrack } from "solid-js"; import { isServer } from "solid-js/web"; -export type { ResolvedChildren, ResolvedJSXElement } from "@solid-primitives/utils"; - /** * Type for the `ref` prop */ From 3d60d9b5e8f19cc51593bf048f4160abd1509938 Mon Sep 17 00:00:00 2001 From: Damian Tarnawski Date: Wed, 14 Feb 2024 19:37:14 +0100 Subject: [PATCH 17/25] Format --- packages/i18n/src/index.ts | 114 +++++++++++++++++++++++-------------- 1 file changed, 71 insertions(+), 43 deletions(-) diff --git a/packages/i18n/src/index.ts b/packages/i18n/src/index.ts index 4cd3722bb..b1519f5cf 100644 --- a/packages/i18n/src/index.ts +++ b/packages/i18n/src/index.ts @@ -50,11 +50,11 @@ export type Flatten = number extends T ? /* catch any */ BaseRecordDict : T extends (infer V)[] ? /* array */ { readonly [K in JoinPath]?: V } & (V extends BaseDict - ? Partial>> - : {}) + ? Partial>> + : {}) : /* record */ UnionToIntersection< - { [K in keyof T]: T[K] extends BaseDict ? Flatten> : never }[keyof T] - > & { readonly [K in keyof T as JoinPath]: T[K] }; + { [K in keyof T]: T[K] extends BaseDict ? Flatten> : never }[keyof T] + > & { readonly [K in keyof T as JoinPath]: T[K] }; function visitDict(flat_dict: Record, dict: BaseDict, path: string): void { for (const [key, value] of Object.entries(dict)) { @@ -92,7 +92,7 @@ function visitDict(flat_dict: Record, dict: BaseDict, path: str * ``` */ export function flatten(dict: T): Flatten { - const flat_dict: Record = {...dict}; + const flat_dict: Record = { ...dict }; for (const [key, value] of Object.entries(dict)) { isDict(value) && visitDict(flat_dict, value, key); } @@ -138,7 +138,7 @@ export const prefix: ( }; type DefaultResolveArgs = string | number | boolean; -type DefaultResolved = string +type DefaultResolved = string; export type BaseTemplateArgs = Record; @@ -147,7 +147,9 @@ export type BaseTemplateArgs = Record; */ export type Template, I> = string & { __template_args: T }; -export type TemplateArgs, I> = T extends Template ? R : never; +export type TemplateArgs, I> = T extends Template + ? R + : never; /** * Identity function that returns the same string branded as {@link Template} with the arguments needed to resolve the template. @@ -160,12 +162,16 @@ export type TemplateArgs, I> = T extends Template; * ``` */ -export const template = , I>(source: string): Template => source as any; +export const template = , I>(source: string): Template => + source as any; /** * Resolve a {@link Template} with the provided {@link TemplateArgs}. */ -export type TemplateResolver = (template: T, ...args: ResolveArgs) => O; +export type TemplateResolver = ( + template: T, + ...args: ResolveArgs +) => O; /** * Simple template resolver that replaces `{{ key }}` with the value of `args.key`. @@ -176,7 +182,7 @@ export type TemplateResolver = "hello John!" * ``` */ -export const resolveTemplate: TemplateResolver = (string: string, args?: BaseTemplateArgs) => { +export const resolveTemplate: TemplateResolver = (string: string, args?: BaseTemplateArgs) => { if (args) for (const [key, value] of Object.entries(args)) string = string.replace(new RegExp(`{{\\s*${key}\\s*}}`, "g"), value as string); @@ -199,17 +205,22 @@ export type ResolveArgs = T extends (...args: infer A) => any : []; export type Resolver = (...args: ResolveArgs) => Resolved; -export type NullableResolver = (...args: ResolveArgs) => Resolved | undefined; +export type NullableResolver = ( + ...args: ResolveArgs +) => Resolved | undefined; -export type Translator = ( +export type Translator = < + K extends keyof T, +>( path: K, ...args: ResolveArgs ) => Resolved; -export type NullableTranslator = ( - path: K, - ...args: ResolveArgs -) => Resolved | undefined; +export type NullableTranslator< + T extends BaseRecordDict, + O = DefaultResolved, + I = DefaultResolveArgs, +> = (path: K, ...args: ResolveArgs) => Resolved | undefined; /** * Create a translator function that will resolve the path in the dictionary and return the value. @@ -300,14 +311,18 @@ export type Scoped> * greetings("goodbye", "John") // => undefined * ``` */ -export function scopedTranslator>( - translator: Translator, - scope: S, -): Translator, O, I>; -export function scopedTranslator>( - translator: NullableTranslator, - scope: S, -): NullableTranslator, O, I>; +export function scopedTranslator< + T extends BaseRecordDict, + O, + I, + S extends Scopes, +>(translator: Translator, scope: S): Translator, O, I>; +export function scopedTranslator< + T extends BaseRecordDict, + O, + I, + S extends Scopes, +>(translator: NullableTranslator, scope: S): NullableTranslator, O, I>; export function scopedTranslator( translator: Translator, scope: string, @@ -315,12 +330,24 @@ export function scopedTranslator( return (path, ...args) => translator(`${scope}.${path}`, ...args); } -export type ChainedTranslator = { - readonly [K in keyof T]: T[K] extends BaseRecordDict ? ChainedTranslator : Resolver; +export type ChainedTranslator< + T extends BaseRecordDict, + O = DefaultResolved, + I = DefaultResolveArgs, +> = { + readonly [K in keyof T]: T[K] extends BaseRecordDict + ? ChainedTranslator + : Resolver; }; -export type NullableChainedTranslator = { - readonly [K in keyof T]: T[K] extends BaseRecordDict ? NullableChainedTranslator : NullableResolver; +export type NullableChainedTranslator< + T extends BaseRecordDict, + O = DefaultResolved, + I = DefaultResolveArgs, +> = { + readonly [K in keyof T]: T[K] extends BaseRecordDict + ? NullableChainedTranslator + : NullableResolver; }; /** @@ -352,7 +379,7 @@ export type NullableChainedTranslator( init_dict: T, translate: Translator, - path?: string + path?: string, ): ChainedTranslator; export function chainedTranslator( init_dict: T, @@ -364,7 +391,7 @@ export function chainedTranslator( translate: Translator, path: string = "", ): any { - const result: any = {...init_dict}; + const result: any = { ...init_dict }; for (const [key, value] of Object.entries(init_dict)) { const key_path = `${path}.${key}`; @@ -372,17 +399,16 @@ export function chainedTranslator( result[key] = isRecordDict(value) ? chainedTranslator(value, translate, key_path) : (...args: any[]) => - translate( - key_path, - // @ts-expect-error - ...args, - ); + translate( + key_path, + // @ts-expect-error + ...args, + ); } return result; } - /** * Create an object-chained translator *(implemented using a Proxy)* that will resolve the path in the dictionary and return the value. * @@ -409,13 +435,16 @@ export function chainedTranslator( * ``` */ export function proxyTranslator( - translate: Translator, path?: string -): ChainedTranslator + translate: Translator, + path?: string, +): ChainedTranslator; export function proxyTranslator( - translate: NullableTranslator, path?: string -): NullableChainedTranslator + translate: NullableTranslator, + path?: string, +): NullableChainedTranslator; export function proxyTranslator( - translate: Translator, path: string = "" + translate: Translator, + path: string = "", ): any { return new Proxy(translate.bind(void 0, path), new Traps(translate, path)); } @@ -424,8 +453,7 @@ class Traps { constructor( private readonly translate: Translator, private readonly path: string, - ) { - } + ) {} get(target: any, prop: PropertyKey): any { if (typeof prop !== "string") return Reflect.get(target, prop); From ed9e712d121df88866f61152eab19ed1c38e041c Mon Sep 17 00:00:00 2001 From: Damian Tarnawski Date: Wed, 14 Feb 2024 19:48:55 +0100 Subject: [PATCH 18/25] Add tests for functions returning jsx in dictionaties --- packages/i18n/test/index.test.ts | 6 +++++- packages/i18n/test/server.test.ts | 5 ++++- packages/i18n/test/{setup.ts => setup.tsx} | 2 ++ 3 files changed, 11 insertions(+), 2 deletions(-) rename packages/i18n/test/{setup.ts => setup.tsx} (92%) diff --git a/packages/i18n/test/index.test.ts b/packages/i18n/test/index.test.ts index 81f494477..0fcf5d5dc 100644 --- a/packages/i18n/test/index.test.ts +++ b/packages/i18n/test/index.test.ts @@ -1,7 +1,7 @@ import { describe, expect, test } from "vitest"; import * as i18n from "../src/index.js"; import { createEffect, createResource, createRoot, createSignal } from "solid-js"; -import { Locale, en_dict, pl_dict } from "./setup.js"; +import { Locale, en_dict, pl_dict } from "./setup.jsx"; describe("dict", () => { test("flatten", () => { @@ -86,6 +86,7 @@ describe("translator", () => { expect(t("data.currency.to.usd")).toBe(1); expect(t("data.users")).toEqual(en_dict.data.users); expect(t("data.formatList", ["John", "Kate", "Tester"])).toBe("John, Kate and Tester"); + expect(t("jsx", "Tester")).toEqual(en_dict.jsx("Tester")); }); test("after change", () => { @@ -98,6 +99,7 @@ describe("translator", () => { expect(t("data.currency.to.usd")).toBe(0.27); expect(t("data.users")).toEqual(pl_dict.data.users); expect(t("data.formatList", ["John", "Kate", "Tester"])).toBe("John, Kate i Tester"); + expect(t("jsx", "Tester")).toEqual(pl_dict.jsx("Tester")); }); }); @@ -147,6 +149,7 @@ Object.entries({ expect(chained.data.currency["to.usd"]()).toBe(1); expect(chained.data.users()).toEqual(en_dict.data.users); expect(chained.data.formatList(["John", "Kate", "Tester"])).toBe("John, Kate and Tester"); + expect(chained.jsx("Tester")).toEqual(en_dict.jsx("Tester")); }); test("after change", () => { @@ -159,6 +162,7 @@ Object.entries({ expect(chained.data.currency["to.usd"]()).toBe(0.27); expect(chained.data.users()).toEqual(pl_dict.data.users); expect(chained.data.formatList(["John", "Kate", "Tester"])).toBe("John, Kate i Tester"); + expect(chained.jsx("Tester")).toEqual(pl_dict.jsx("Tester")); }); }); }); diff --git a/packages/i18n/test/server.test.ts b/packages/i18n/test/server.test.ts index f140c50a4..135f8e068 100644 --- a/packages/i18n/test/server.test.ts +++ b/packages/i18n/test/server.test.ts @@ -1,6 +1,6 @@ import { describe, expect, test } from "vitest"; import * as i18n from "../src/index.js"; -import { en_dict } from "./setup.js"; +import { en_dict } from "./setup.jsx"; describe("template", () => { test("identity template resolver", () => { @@ -69,5 +69,8 @@ describe("chainedResolver", () => { const format_list = chained.data.formatList(["John", "Kate", "Tester"]); expect(format_list).toBe("John, Kate and Tester"); + + const jsx = chained.jsx("Tester"); + expect(jsx).toBeInstanceOf(Object); }); }); diff --git a/packages/i18n/test/setup.ts b/packages/i18n/test/setup.tsx similarity index 92% rename from packages/i18n/test/setup.ts rename to packages/i18n/test/setup.tsx index 389beaf78..3d2b69ab6 100644 --- a/packages/i18n/test/setup.ts +++ b/packages/i18n/test/setup.tsx @@ -25,6 +25,7 @@ export const en_dict = { return `${list.join(", ")} and ${last}`; }, }, + jsx: (name: string) => <>Hi {name}!, }; export type Dict = typeof en_dict; @@ -51,4 +52,5 @@ export const pl_dict = { return `${list.join(", ")} i ${last}`; }, }, + jsx: (name: string) => <>Cześć {name}!, } satisfies Dict; From 5e0422ca9cb9cea7fd02f8da1bda53f21be20204 Mon Sep 17 00:00:00 2001 From: David Bieregger Date: Wed, 14 Feb 2024 21:24:47 +0100 Subject: [PATCH 19/25] Add export again, but forward from solid-js --- packages/utils/src/types.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/utils/src/types.ts b/packages/utils/src/types.ts index 646d515f5..fdf7c013d 100644 --- a/packages/utils/src/types.ts +++ b/packages/utils/src/types.ts @@ -2,6 +2,12 @@ import type { Accessor, Setter } from "solid-js"; export type { EffectOptions, OnOptions } from "solid-js"; +// export types can be deleted in the next major +export type { + ResolvedJSXElement, + ResolvedChildren, +} from "solid-js/types/reactive/signal.js"; + /** * Can be single or in an array */ From 48d44c09c291b7f5aa85e9dd84bddbddfa8b36b0 Mon Sep 17 00:00:00 2001 From: Damian Tarnawski Date: Fri, 23 Feb 2024 21:19:28 +0100 Subject: [PATCH 20/25] Add changeset and keep exports in refs package --- .changeset/curly-beds-explode.md | 6 ++++++ packages/refs/src/index.ts | 3 +++ packages/utils/src/types.ts | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 .changeset/curly-beds-explode.md diff --git a/.changeset/curly-beds-explode.md b/.changeset/curly-beds-explode.md new file mode 100644 index 000000000..004e4ef4b --- /dev/null +++ b/.changeset/curly-beds-explode.md @@ -0,0 +1,6 @@ +--- +"@solid-primitives/jsx-tokenizer": patch +"@solid-primitives/utils": patch +--- + +Remove unused type exports in utils (`ResolvedJSXElement` and `ResolvedChildren`) diff --git a/packages/refs/src/index.ts b/packages/refs/src/index.ts index b94edd059..e0622f0e6 100644 --- a/packages/refs/src/index.ts +++ b/packages/refs/src/index.ts @@ -2,6 +2,9 @@ import { chain, arrayEquals } from "@solid-primitives/utils"; import { Accessor, children, createComputed, createMemo, JSX, onCleanup, untrack } from "solid-js"; import { isServer } from "solid-js/web"; +// TODO delete in next major version +export type { ResolvedChildren, ResolvedJSXElement } from "solid-js/types/reactive/signal.js"; + /** * Type for the `ref` prop */ diff --git a/packages/utils/src/types.ts b/packages/utils/src/types.ts index fdf7c013d..3a9df903c 100644 --- a/packages/utils/src/types.ts +++ b/packages/utils/src/types.ts @@ -2,7 +2,7 @@ import type { Accessor, Setter } from "solid-js"; export type { EffectOptions, OnOptions } from "solid-js"; -// export types can be deleted in the next major +// TODO delete in next major version export type { ResolvedJSXElement, ResolvedChildren, From 6250a0c8fcd01b549815afd69599f888d4ed85f9 Mon Sep 17 00:00:00 2001 From: Damian Tarnawski Date: Fri, 23 Feb 2024 21:34:07 +0100 Subject: [PATCH 21/25] i18n: Remove additional type parameter from templates --- packages/i18n/src/index.ts | 139 ++++++++++++++++--------------------- 1 file changed, 58 insertions(+), 81 deletions(-) diff --git a/packages/i18n/src/index.ts b/packages/i18n/src/index.ts index b1519f5cf..af1006edc 100644 --- a/packages/i18n/src/index.ts +++ b/packages/i18n/src/index.ts @@ -137,19 +137,14 @@ export const prefix: ( return result; }; -type DefaultResolveArgs = string | number | boolean; -type DefaultResolved = string; - -export type BaseTemplateArgs = Record; +export type BaseTemplateArgs = Record; /** * A string branded with arguments needed to resolve the template. */ -export type Template, I> = string & { __template_args: T }; +export type Template = string & { __template_args: T }; -export type TemplateArgs, I> = T extends Template - ? R - : never; +export type TemplateArgs> = T extends Template ? R : never; /** * Identity function that returns the same string branded as {@link Template} with the arguments needed to resolve the template. @@ -162,15 +157,14 @@ export type TemplateArgs, I> = T extends Template; * ``` */ -export const template = , I>(source: string): Template => - source as any; +export const template = (source: string): Template => source as any; /** * Resolve a {@link Template} with the provided {@link TemplateArgs}. */ -export type TemplateResolver = ( +export type TemplateResolver = ( template: T, - ...args: ResolveArgs + ...args: ResolveArgs ) => O; /** @@ -196,31 +190,26 @@ export const identityResolveTemplate = (v => v) as TemplateResolver; export type Resolved = T extends (...args: any[]) => infer R ? R : T extends O ? O : T; -export type ResolveArgs = T extends (...args: infer A) => any +export type ResolveArgs = T extends (...args: infer A) => any ? A - : T extends Template + : T extends Template ? [args: R] : T extends O - ? [args?: BaseTemplateArgs] + ? [args?: BaseTemplateArgs] : []; -export type Resolver = (...args: ResolveArgs) => Resolved; -export type NullableResolver = ( - ...args: ResolveArgs -) => Resolved | undefined; +export type Resolver = (...args: ResolveArgs) => Resolved; +export type NullableResolver = (...args: ResolveArgs) => Resolved | undefined; -export type Translator = < - K extends keyof T, ->( +export type Translator = ( path: K, - ...args: ResolveArgs + ...args: ResolveArgs ) => Resolved; -export type NullableTranslator< - T extends BaseRecordDict, - O = DefaultResolved, - I = DefaultResolveArgs, -> = (path: K, ...args: ResolveArgs) => Resolved | undefined; +export type NullableTranslator = ( + path: K, + ...args: ResolveArgs +) => Resolved | undefined; /** * Create a translator function that will resolve the path in the dictionary and return the value. @@ -252,14 +241,14 @@ export type NullableTranslator< * t("food.meat") // => "meat" * ``` */ -export function translator( +export function translator( dict: () => T, - resolveTemplate?: TemplateResolver, -): Translator; -export function translator( + resolveTemplate?: TemplateResolver, +): Translator; +export function translator( dict: () => T | undefined, - resolveTemplate?: TemplateResolver, -): NullableTranslator; + resolveTemplate?: TemplateResolver, +): NullableTranslator; export function translator( dict: () => T | undefined, resolveTemplate: TemplateResolver = identityResolveTemplate, @@ -311,43 +300,31 @@ export type Scoped> * greetings("goodbye", "John") // => undefined * ``` */ -export function scopedTranslator< - T extends BaseRecordDict, - O, - I, - S extends Scopes, ->(translator: Translator, scope: S): Translator, O, I>; -export function scopedTranslator< - T extends BaseRecordDict, - O, - I, - S extends Scopes, ->(translator: NullableTranslator, scope: S): NullableTranslator, O, I>; -export function scopedTranslator( - translator: Translator, +export function scopedTranslator>( + translator: Translator, + scope: S, +): Translator, O>; +export function scopedTranslator>( + translator: NullableTranslator, + scope: S, +): NullableTranslator, O>; +export function scopedTranslator( + translator: Translator, scope: string, -): Translator, O, I> { +): Translator, O> { return (path, ...args) => translator(`${scope}.${path}`, ...args); } -export type ChainedTranslator< - T extends BaseRecordDict, - O = DefaultResolved, - I = DefaultResolveArgs, -> = { +export type ChainedTranslator = { readonly [K in keyof T]: T[K] extends BaseRecordDict - ? ChainedTranslator - : Resolver; + ? ChainedTranslator + : Resolver; }; -export type NullableChainedTranslator< - T extends BaseRecordDict, - O = DefaultResolved, - I = DefaultResolveArgs, -> = { +export type NullableChainedTranslator = { readonly [K in keyof T]: T[K] extends BaseRecordDict - ? NullableChainedTranslator - : NullableResolver; + ? NullableChainedTranslator + : NullableResolver; }; /** @@ -376,19 +353,19 @@ export type NullableChainedTranslator< * chained.goodbye("John") // => "goodbye John!" * ``` */ -export function chainedTranslator( +export function chainedTranslator( init_dict: T, - translate: Translator, + translate: Translator, path?: string, -): ChainedTranslator; -export function chainedTranslator( +): ChainedTranslator; +export function chainedTranslator( init_dict: T, - translate: NullableTranslator, + translate: NullableTranslator, path?: string, -): NullableChainedTranslator; -export function chainedTranslator( +): NullableChainedTranslator; +export function chainedTranslator( init_dict: T, - translate: Translator, + translate: Translator, path: string = "", ): any { const result: any = { ...init_dict }; @@ -434,24 +411,24 @@ export function chainedTranslator( * proxy.goodbye("John") // => "goodbye John!" * ``` */ -export function proxyTranslator( - translate: Translator, +export function proxyTranslator( + translate: Translator, path?: string, -): ChainedTranslator; -export function proxyTranslator( - translate: NullableTranslator, +): ChainedTranslator; +export function proxyTranslator( + translate: NullableTranslator, path?: string, -): NullableChainedTranslator; -export function proxyTranslator( - translate: Translator, +): NullableChainedTranslator; +export function proxyTranslator( + translate: Translator, path: string = "", ): any { return new Proxy(translate.bind(void 0, path), new Traps(translate, path)); } -class Traps { +class Traps { constructor( - private readonly translate: Translator, + private readonly translate: Translator, private readonly path: string, ) {} From 256bd0931c67bb3f2ee6f62c05d23216bdc7df87 Mon Sep 17 00:00:00 2001 From: thetarnav Date: Fri, 23 Feb 2024 20:35:37 +0000 Subject: [PATCH 22/25] Format --- packages/jsx-tokenizer/src/index.ts | 10 +++++++++- packages/utils/src/types.ts | 5 +---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/jsx-tokenizer/src/index.ts b/packages/jsx-tokenizer/src/index.ts index 96d6a63f3..349a25f16 100644 --- a/packages/jsx-tokenizer/src/index.ts +++ b/packages/jsx-tokenizer/src/index.ts @@ -1,4 +1,12 @@ -import { Accessor, Component, createComponent, createMemo, JSX, DEV, ResolvedJSXElement } from "solid-js"; +import { + Accessor, + Component, + createComponent, + createMemo, + JSX, + DEV, + ResolvedJSXElement, +} from "solid-js"; import { isServer } from "solid-js/web"; import type { NoInfer, Many } from "@solid-primitives/utils"; import { asArray } from "@solid-primitives/utils"; diff --git a/packages/utils/src/types.ts b/packages/utils/src/types.ts index 3a9df903c..e91bfa027 100644 --- a/packages/utils/src/types.ts +++ b/packages/utils/src/types.ts @@ -3,10 +3,7 @@ import type { Accessor, Setter } from "solid-js"; export type { EffectOptions, OnOptions } from "solid-js"; // TODO delete in next major version -export type { - ResolvedJSXElement, - ResolvedChildren, -} from "solid-js/types/reactive/signal.js"; +export type { ResolvedJSXElement, ResolvedChildren } from "solid-js/types/reactive/signal.js"; /** * Can be single or in an array From 0e684b520ec6a8947ed9581a686e49b309f87602 Mon Sep 17 00:00:00 2001 From: Damian Tarnawski Date: Fri, 23 Feb 2024 21:37:33 +0100 Subject: [PATCH 23/25] Create wild-paws-battle.md --- .changeset/wild-paws-battle.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/wild-paws-battle.md diff --git a/.changeset/wild-paws-battle.md b/.changeset/wild-paws-battle.md new file mode 100644 index 000000000..fddd1793c --- /dev/null +++ b/.changeset/wild-paws-battle.md @@ -0,0 +1,5 @@ +--- +"@solid-primitives/i18n": minor +--- + +Add support for Generic Template Resolvers From 65acb6a7718491838d0ce2a37bcfb9d999ee164c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 28 Feb 2024 21:24:14 +0000 Subject: [PATCH 24/25] Version Packages --- .changeset/curly-beds-explode.md | 6 ------ .changeset/wild-paws-battle.md | 5 ----- packages/active-element/CHANGELOG.md | 8 ++++++++ packages/active-element/package.json | 2 +- packages/audio/CHANGELOG.md | 8 ++++++++ packages/audio/package.json | 2 +- packages/autofocus/CHANGELOG.md | 7 +++++++ packages/autofocus/package.json | 2 +- packages/bounds/CHANGELOG.md | 10 ++++++++++ packages/bounds/package.json | 2 +- packages/clipboard/CHANGELOG.md | 7 +++++++ packages/clipboard/package.json | 2 +- packages/connectivity/CHANGELOG.md | 9 +++++++++ packages/connectivity/package.json | 2 +- packages/controlled-props/CHANGELOG.md | 7 +++++++ packages/controlled-props/package.json | 2 +- packages/cursor/CHANGELOG.md | 7 +++++++ packages/cursor/package.json | 2 +- packages/date/CHANGELOG.md | 8 ++++++++ packages/date/package.json | 2 +- packages/deep/CHANGELOG.md | 6 ++++++ packages/deep/package.json | 2 +- packages/destructure/CHANGELOG.md | 7 +++++++ packages/destructure/package.json | 2 +- packages/event-bus/CHANGELOG.md | 7 +++++++ packages/event-bus/package.json | 2 +- packages/event-listener/CHANGELOG.md | 7 +++++++ packages/event-listener/package.json | 2 +- packages/geolocation/CHANGELOG.md | 8 ++++++++ packages/geolocation/package.json | 2 +- packages/graphql/CHANGELOG.md | 7 +++++++ packages/graphql/package.json | 2 +- packages/history/CHANGELOG.md | 7 +++++++ packages/history/package.json | 2 +- packages/i18n/CHANGELOG.md | 6 ++++++ packages/i18n/package.json | 2 +- packages/immutable/CHANGELOG.md | 8 ++++++++ packages/immutable/package.json | 2 +- packages/intersection-observer/CHANGELOG.md | 7 +++++++ packages/intersection-observer/package.json | 2 +- packages/jsx-tokenizer/CHANGELOG.md | 8 ++++++++ packages/jsx-tokenizer/package.json | 2 +- packages/keyboard/CHANGELOG.md | 9 +++++++++ packages/keyboard/package.json | 2 +- packages/map/CHANGELOG.md | 6 ++++++ packages/map/package.json | 2 +- packages/masonry/CHANGELOG.md | 7 +++++++ packages/masonry/package.json | 2 +- packages/media/CHANGELOG.md | 10 ++++++++++ packages/media/package.json | 2 +- packages/memo/CHANGELOG.md | 8 ++++++++ packages/memo/package.json | 2 +- packages/mouse/CHANGELOG.md | 10 ++++++++++ packages/mouse/package.json | 2 +- packages/mutation-observer/CHANGELOG.md | 7 +++++++ packages/mutation-observer/package.json | 2 +- packages/page-visibility/CHANGELOG.md | 9 +++++++++ packages/page-visibility/package.json | 2 +- packages/pagination/CHANGELOG.md | 7 +++++++ packages/pagination/package.json | 2 +- packages/pointer/CHANGELOG.md | 9 +++++++++ packages/pointer/package.json | 2 +- packages/presence/CHANGELOG.md | 7 +++++++ packages/presence/package.json | 2 +- packages/promise/CHANGELOG.md | 7 +++++++ packages/promise/package.json | 2 +- packages/props/CHANGELOG.md | 7 +++++++ packages/props/package.json | 2 +- packages/raf/CHANGELOG.md | 7 +++++++ packages/raf/package.json | 2 +- packages/range/CHANGELOG.md | 7 +++++++ packages/range/package.json | 2 +- packages/refs/CHANGELOG.md | 7 +++++++ packages/refs/package.json | 2 +- packages/resize-observer/CHANGELOG.md | 10 ++++++++++ packages/resize-observer/package.json | 2 +- packages/rootless/CHANGELOG.md | 7 +++++++ packages/rootless/package.json | 2 +- packages/scroll/CHANGELOG.md | 8 ++++++++ packages/scroll/package.json | 2 +- packages/set/CHANGELOG.md | 6 ++++++ packages/set/package.json | 2 +- packages/signal-builders/CHANGELOG.md | 7 +++++++ packages/signal-builders/package.json | 2 +- packages/static-store/CHANGELOG.md | 7 +++++++ packages/static-store/package.json | 2 +- packages/storage/CHANGELOG.md | 7 +++++++ packages/storage/package.json | 2 +- packages/stream/CHANGELOG.md | 7 +++++++ packages/stream/package.json | 2 +- packages/styles/CHANGELOG.md | 8 ++++++++ packages/styles/package.json | 2 +- packages/trigger/CHANGELOG.md | 7 +++++++ packages/trigger/package.json | 2 +- packages/upload/CHANGELOG.md | 7 +++++++ packages/upload/package.json | 2 +- packages/utils/CHANGELOG.md | 6 ++++++ packages/utils/package.json | 2 +- 98 files changed, 408 insertions(+), 59 deletions(-) delete mode 100644 .changeset/curly-beds-explode.md delete mode 100644 .changeset/wild-paws-battle.md diff --git a/.changeset/curly-beds-explode.md b/.changeset/curly-beds-explode.md deleted file mode 100644 index 004e4ef4b..000000000 --- a/.changeset/curly-beds-explode.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@solid-primitives/jsx-tokenizer": patch -"@solid-primitives/utils": patch ---- - -Remove unused type exports in utils (`ResolvedJSXElement` and `ResolvedChildren`) diff --git a/.changeset/wild-paws-battle.md b/.changeset/wild-paws-battle.md deleted file mode 100644 index fddd1793c..000000000 --- a/.changeset/wild-paws-battle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@solid-primitives/i18n": minor ---- - -Add support for Generic Template Resolvers diff --git a/packages/active-element/CHANGELOG.md b/packages/active-element/CHANGELOG.md index a9dc5e13a..5442c5c54 100644 --- a/packages/active-element/CHANGELOG.md +++ b/packages/active-element/CHANGELOG.md @@ -1,5 +1,13 @@ # @solid-primitives/active-element +## 2.0.19 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + - @solid-primitives/event-listener@2.3.2 + ## 2.0.18 ### Patch Changes diff --git a/packages/active-element/package.json b/packages/active-element/package.json index 62ba0dac0..b18426ba2 100644 --- a/packages/active-element/package.json +++ b/packages/active-element/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/active-element", - "version": "2.0.18", + "version": "2.0.19", "description": "A reactive document.activeElement. Check which element is currently focused.", "author": "Damian Tarnawski @thetarnav ", "contributors": [ diff --git a/packages/audio/CHANGELOG.md b/packages/audio/CHANGELOG.md index 21a372150..f5c89b976 100644 --- a/packages/audio/CHANGELOG.md +++ b/packages/audio/CHANGELOG.md @@ -1,5 +1,13 @@ # @solid-primitives/audio +## 1.3.16 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + - @solid-primitives/static-store@0.0.7 + ## 1.3.15 ### Patch Changes diff --git a/packages/audio/package.json b/packages/audio/package.json index 834eeac89..60ad97444 100644 --- a/packages/audio/package.json +++ b/packages/audio/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/audio", - "version": "1.3.15", + "version": "1.3.16", "description": "Primitives to manage audio and single sounds.", "author": "David Di Biase ", "license": "MIT", diff --git a/packages/autofocus/CHANGELOG.md b/packages/autofocus/CHANGELOG.md index da81f0a22..11ec879fd 100644 --- a/packages/autofocus/CHANGELOG.md +++ b/packages/autofocus/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/autofocus +## 0.0.110 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 0.0.109 ### Patch Changes diff --git a/packages/autofocus/package.json b/packages/autofocus/package.json index fe6bd58b3..4b882fe48 100644 --- a/packages/autofocus/package.json +++ b/packages/autofocus/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/autofocus", - "version": "0.0.109", + "version": "0.0.110", "description": "Primitives for autofocusing HTML elements", "author": "jer3m01 ", "contributors": [], diff --git a/packages/bounds/CHANGELOG.md b/packages/bounds/CHANGELOG.md index 9abe5b17c..24805e107 100644 --- a/packages/bounds/CHANGELOG.md +++ b/packages/bounds/CHANGELOG.md @@ -1,5 +1,15 @@ # @solid-primitives/bounds +## 0.0.120 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + - @solid-primitives/event-listener@2.3.2 + - @solid-primitives/resize-observer@2.0.24 + - @solid-primitives/static-store@0.0.7 + ## 0.0.119 ### Patch Changes diff --git a/packages/bounds/package.json b/packages/bounds/package.json index 758f67e67..ccdada626 100644 --- a/packages/bounds/package.json +++ b/packages/bounds/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/bounds", - "version": "0.0.119", + "version": "0.0.120", "description": "Primitives for tracking HTML element size and position on screen as it changes.", "author": "Damian Tarnawski ", "contributors": [], diff --git a/packages/clipboard/CHANGELOG.md b/packages/clipboard/CHANGELOG.md index a35f3e6cb..b54baee8a 100644 --- a/packages/clipboard/CHANGELOG.md +++ b/packages/clipboard/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/clipboard +## 1.5.9 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 1.5.8 ### Patch Changes diff --git a/packages/clipboard/package.json b/packages/clipboard/package.json index f6e5870c1..a6b635b7e 100644 --- a/packages/clipboard/package.json +++ b/packages/clipboard/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/clipboard", - "version": "1.5.8", + "version": "1.5.9", "description": "Primitives for reading and writing to clipboard.", "author": "David Di Biase ", "contributors": [ diff --git a/packages/connectivity/CHANGELOG.md b/packages/connectivity/CHANGELOG.md index 230347f83..c10e9460e 100644 --- a/packages/connectivity/CHANGELOG.md +++ b/packages/connectivity/CHANGELOG.md @@ -1,5 +1,14 @@ # @solid-primitives/connectivity +## 0.3.19 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + - @solid-primitives/event-listener@2.3.2 + - @solid-primitives/rootless@1.4.4 + ## 0.3.18 ### Patch Changes diff --git a/packages/connectivity/package.json b/packages/connectivity/package.json index 4d2b958e0..23b8caed5 100644 --- a/packages/connectivity/package.json +++ b/packages/connectivity/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/connectivity", - "version": "0.3.18", + "version": "0.3.19", "description": "A navigator.onLine signal.", "author": "Klemen Slavič ", "contributors": [ diff --git a/packages/controlled-props/CHANGELOG.md b/packages/controlled-props/CHANGELOG.md index 6484a4f85..b023c5a2c 100644 --- a/packages/controlled-props/CHANGELOG.md +++ b/packages/controlled-props/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/controlled-props +## 0.0.14 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 0.0.13 ### Patch Changes diff --git a/packages/controlled-props/package.json b/packages/controlled-props/package.json index 314b4bd85..170cb73af 100644 --- a/packages/controlled-props/package.json +++ b/packages/controlled-props/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/controlled-props", - "version": "0.0.13", + "version": "0.0.14", "description": "The primitives in this package allow you to create controlls for component props.", "author": "Alex Lohr ", "contributors": [], diff --git a/packages/cursor/CHANGELOG.md b/packages/cursor/CHANGELOG.md index db91234c8..be7f61efe 100644 --- a/packages/cursor/CHANGELOG.md +++ b/packages/cursor/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/cursor +## 0.0.114 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 0.0.113 ### Patch Changes diff --git a/packages/cursor/package.json b/packages/cursor/package.json index 04d455209..6d32b0e3a 100644 --- a/packages/cursor/package.json +++ b/packages/cursor/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/cursor", - "version": "0.0.113", + "version": "0.0.114", "description": "Two simple primitives for setting cursor css property reactively.", "author": "Damian Tarnawski ", "contributors": [], diff --git a/packages/date/CHANGELOG.md b/packages/date/CHANGELOG.md index 12236a9f3..443f4628c 100644 --- a/packages/date/CHANGELOG.md +++ b/packages/date/CHANGELOG.md @@ -1,5 +1,13 @@ # @solid-primitives/date +## 2.0.20 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + - @solid-primitives/memo@1.3.7 + ## 2.0.19 ### Patch Changes diff --git a/packages/date/package.json b/packages/date/package.json index 65973bbb9..e0c873a94 100644 --- a/packages/date/package.json +++ b/packages/date/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/date", - "version": "2.0.19", + "version": "2.0.20", "description": "Collection of reactive primitives and utility functions, providing easier ways to deal with dates in SolidJS", "author": "Damian Tarnawski @thetarnav ", "license": "MIT", diff --git a/packages/deep/CHANGELOG.md b/packages/deep/CHANGELOG.md index db91a3de2..25f7b6991 100644 --- a/packages/deep/CHANGELOG.md +++ b/packages/deep/CHANGELOG.md @@ -1,5 +1,11 @@ # @solid-primitives/deep +## 0.2.6 + +### Patch Changes + +- @solid-primitives/memo@1.3.7 + ## 0.2.5 ### Patch Changes diff --git a/packages/deep/package.json b/packages/deep/package.json index 83e261ef7..13e664ec1 100644 --- a/packages/deep/package.json +++ b/packages/deep/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/deep", - "version": "0.2.5", + "version": "0.2.6", "description": "Primitives for tracking and observing nested reactive objects in Solid.", "author": "Samuel Burbano ", "contributors": [ diff --git a/packages/destructure/CHANGELOG.md b/packages/destructure/CHANGELOG.md index 2c3c5dedd..0b0e08dac 100644 --- a/packages/destructure/CHANGELOG.md +++ b/packages/destructure/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/destructure +## 0.1.16 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 0.1.15 ### Patch Changes diff --git a/packages/destructure/package.json b/packages/destructure/package.json index 6214fa294..213fd3b9e 100644 --- a/packages/destructure/package.json +++ b/packages/destructure/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/destructure", - "version": "0.1.15", + "version": "0.1.16", "description": "Primitives for destructuring reactive objects – like props or stores – or signals of them into a separate accessors updated individually.", "author": "Damian Tarnawski @thetarnav ", "license": "MIT", diff --git a/packages/event-bus/CHANGELOG.md b/packages/event-bus/CHANGELOG.md index b1c8deb6b..13c609811 100644 --- a/packages/event-bus/CHANGELOG.md +++ b/packages/event-bus/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/event-bus +## 1.0.10 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 1.0.9 ### Patch Changes diff --git a/packages/event-bus/package.json b/packages/event-bus/package.json index 1b2c208e3..d64ae3134 100644 --- a/packages/event-bus/package.json +++ b/packages/event-bus/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/event-bus", - "version": "1.0.9", + "version": "1.0.10", "description": "A collection of SolidJS primitives providing various features of a pubsub/event-emitter/event-bus.", "author": "Damian Tarnawski @thetarnav ", "license": "MIT", diff --git a/packages/event-listener/CHANGELOG.md b/packages/event-listener/CHANGELOG.md index 32b411499..ac49a2396 100644 --- a/packages/event-listener/CHANGELOG.md +++ b/packages/event-listener/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/event-listener +## 2.3.2 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 2.3.1 ### Patch Changes diff --git a/packages/event-listener/package.json b/packages/event-listener/package.json index 502bf346a..746176e10 100644 --- a/packages/event-listener/package.json +++ b/packages/event-listener/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/event-listener", - "version": "2.3.1", + "version": "2.3.2", "description": "SolidJS Primitives to manage creating event listeners.", "author": "David Di Biase ", "contributors": [ diff --git a/packages/geolocation/CHANGELOG.md b/packages/geolocation/CHANGELOG.md index 71e0fcca0..f77bc82dd 100644 --- a/packages/geolocation/CHANGELOG.md +++ b/packages/geolocation/CHANGELOG.md @@ -1,5 +1,13 @@ # @solid-primitives/geolocation +## 1.4.13 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + - @solid-primitives/static-store@0.0.7 + ## 1.4.12 ### Patch Changes diff --git a/packages/geolocation/package.json b/packages/geolocation/package.json index 16501e1e2..299e18309 100644 --- a/packages/geolocation/package.json +++ b/packages/geolocation/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/geolocation", - "version": "1.4.12", + "version": "1.4.13", "description": "Primitives to query geolocation and observe changes.", "author": "David Di Biase ", "license": "MIT", diff --git a/packages/graphql/CHANGELOG.md b/packages/graphql/CHANGELOG.md index 03ab0f5cd..a8a5bde6f 100644 --- a/packages/graphql/CHANGELOG.md +++ b/packages/graphql/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/graphql +## 2.0.3 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 2.0.2 ### Patch Changes diff --git a/packages/graphql/package.json b/packages/graphql/package.json index c91428412..f2bc11935 100644 --- a/packages/graphql/package.json +++ b/packages/graphql/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/graphql", - "version": "2.0.2", + "version": "2.0.3", "description": "Primitive that generates a client and reactive GraphQL queries", "author": "David Di Biase ", "contributors": [ diff --git a/packages/history/CHANGELOG.md b/packages/history/CHANGELOG.md index 53c051cb4..519a712da 100644 --- a/packages/history/CHANGELOG.md +++ b/packages/history/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/history +## 0.1.4 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 0.1.3 ### Patch Changes diff --git a/packages/history/package.json b/packages/history/package.json index 2463ca5f8..d406e21c6 100644 --- a/packages/history/package.json +++ b/packages/history/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/history", - "version": "0.1.3", + "version": "0.1.4", "description": "Primitives for managing undo/redo history in Solid.", "author": "Damian Tarnawski ", "contributors": [], diff --git a/packages/i18n/CHANGELOG.md b/packages/i18n/CHANGELOG.md index b95791eeb..5343e9697 100644 --- a/packages/i18n/CHANGELOG.md +++ b/packages/i18n/CHANGELOG.md @@ -1,5 +1,11 @@ # @solid-primitives/i18n +## 2.1.0 + +### Minor Changes + +- 0e684b5: Add support for Generic Template Resolvers + ## 2.0.1 ### Patch Changes diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 38a61c714..bc3987198 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/i18n", - "version": "2.0.1", + "version": "2.1.0", "description": "Library of primitives for providing internationalization support.", "author": "Alexandre Mouton-Brady ", "contributors": [ diff --git a/packages/immutable/CHANGELOG.md b/packages/immutable/CHANGELOG.md index ceb8b3cf9..3fbae121b 100644 --- a/packages/immutable/CHANGELOG.md +++ b/packages/immutable/CHANGELOG.md @@ -1,5 +1,13 @@ # @solid-primitives/immutable +## 1.0.8 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + - @solid-primitives/keyed@1.2.1 + ## 1.0.7 ### Patch Changes diff --git a/packages/immutable/package.json b/packages/immutable/package.json index 9aef59ba3..6955a4954 100644 --- a/packages/immutable/package.json +++ b/packages/immutable/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/immutable", - "version": "1.0.7", + "version": "1.0.8", "description": "Primitive for rectifying immutable values and dealing with immutability in Solid.", "author": "Damian Tarnawski ", "contributors": [], diff --git a/packages/intersection-observer/CHANGELOG.md b/packages/intersection-observer/CHANGELOG.md index 2599fdf80..370283d90 100644 --- a/packages/intersection-observer/CHANGELOG.md +++ b/packages/intersection-observer/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/intersection-observer +## 2.1.5 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 2.1.4 ### Patch Changes diff --git a/packages/intersection-observer/package.json b/packages/intersection-observer/package.json index 9f5dafc40..f5a0323fd 100644 --- a/packages/intersection-observer/package.json +++ b/packages/intersection-observer/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/intersection-observer", - "version": "2.1.4", + "version": "2.1.5", "description": "Primitives to support using the intersection observer API.", "author": "David Di Biase ", "contributors": [ diff --git a/packages/jsx-tokenizer/CHANGELOG.md b/packages/jsx-tokenizer/CHANGELOG.md index 74be0d4ff..525938c18 100644 --- a/packages/jsx-tokenizer/CHANGELOG.md +++ b/packages/jsx-tokenizer/CHANGELOG.md @@ -1,5 +1,13 @@ # @solid-primitives/jsx-tokenizer +## 1.0.9 + +### Patch Changes + +- 48d44c0: Remove unused type exports in utils (`ResolvedJSXElement` and `ResolvedChildren`) +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 1.0.8 ### Patch Changes diff --git a/packages/jsx-tokenizer/package.json b/packages/jsx-tokenizer/package.json index 70c9a6323..f97d26e7f 100644 --- a/packages/jsx-tokenizer/package.json +++ b/packages/jsx-tokenizer/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/jsx-tokenizer", - "version": "1.0.8", + "version": "1.0.9", "description": "A primitive to tokenize your solid-components to enable custom parsing.", "author": "Vincent Van Dijck ", "contributors": [ diff --git a/packages/keyboard/CHANGELOG.md b/packages/keyboard/CHANGELOG.md index 0e9db92fd..32ad441b8 100644 --- a/packages/keyboard/CHANGELOG.md +++ b/packages/keyboard/CHANGELOG.md @@ -1,5 +1,14 @@ # @solid-primitives/keyboard +## 1.2.7 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + - @solid-primitives/event-listener@2.3.2 + - @solid-primitives/rootless@1.4.4 + ## 1.2.6 ### Patch Changes diff --git a/packages/keyboard/package.json b/packages/keyboard/package.json index 9ee0260e5..58276c48d 100644 --- a/packages/keyboard/package.json +++ b/packages/keyboard/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/keyboard", - "version": "1.2.6", + "version": "1.2.7", "description": "A library of reactive promitives helping handling user's keyboard input.", "author": "Damian Tarnwski ", "contributors": [], diff --git a/packages/map/CHANGELOG.md b/packages/map/CHANGELOG.md index 0a507a5e0..acae466cf 100644 --- a/packages/map/CHANGELOG.md +++ b/packages/map/CHANGELOG.md @@ -1,5 +1,11 @@ # @solid-primitives/map +## 0.4.10 + +### Patch Changes + +- @solid-primitives/trigger@1.0.10 + ## 0.4.9 ### Patch Changes diff --git a/packages/map/package.json b/packages/map/package.json index 204df6c31..a0f44faf9 100644 --- a/packages/map/package.json +++ b/packages/map/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/map", - "version": "0.4.9", + "version": "0.4.10", "description": "The Map & WeakMap data structures as a reactive signals.", "author": "Damian Tarnawski @thetarnav ", "license": "MIT", diff --git a/packages/masonry/CHANGELOG.md b/packages/masonry/CHANGELOG.md index 5c16ae7d3..c97bb1918 100644 --- a/packages/masonry/CHANGELOG.md +++ b/packages/masonry/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/masonry +## 0.0.6 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 0.0.5 ### Patch Changes diff --git a/packages/masonry/package.json b/packages/masonry/package.json index 389d3631b..142a4fd93 100644 --- a/packages/masonry/package.json +++ b/packages/masonry/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/masonry", - "version": "0.0.5", + "version": "0.0.6", "description": "Primitives for creating a reactive masonry layout.", "author": "Damian Tarnawski ", "contributors": [], diff --git a/packages/media/CHANGELOG.md b/packages/media/CHANGELOG.md index ce7d9f58e..fd7be2816 100644 --- a/packages/media/CHANGELOG.md +++ b/packages/media/CHANGELOG.md @@ -1,5 +1,15 @@ # @solid-primitives/media +## 2.2.7 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + - @solid-primitives/event-listener@2.3.2 + - @solid-primitives/rootless@1.4.4 + - @solid-primitives/static-store@0.0.7 + ## 2.2.6 ### Patch Changes diff --git a/packages/media/package.json b/packages/media/package.json index 2831af376..454c7b9f2 100644 --- a/packages/media/package.json +++ b/packages/media/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/media", - "version": "2.2.6", + "version": "2.2.7", "description": "Primitives for media query and device features", "author": "David Di Biase ", "contributors": [ diff --git a/packages/memo/CHANGELOG.md b/packages/memo/CHANGELOG.md index 8449323d5..2d599c7a3 100644 --- a/packages/memo/CHANGELOG.md +++ b/packages/memo/CHANGELOG.md @@ -1,5 +1,13 @@ # @solid-primitives/memo +## 1.3.7 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + - @solid-primitives/scheduled@1.4.2 + ## 1.3.6 ### Patch Changes diff --git a/packages/memo/package.json b/packages/memo/package.json index 9dc68db63..6b7584e9c 100644 --- a/packages/memo/package.json +++ b/packages/memo/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/memo", - "version": "1.3.6", + "version": "1.3.7", "description": "Collection of custom memo primitives. They extend Solid's createMemo functionality while keeping the usage similar.", "author": "Damian Tarnawski @thetarnav ", "contributors": [], diff --git a/packages/mouse/CHANGELOG.md b/packages/mouse/CHANGELOG.md index a6c0247c9..94b1454fb 100644 --- a/packages/mouse/CHANGELOG.md +++ b/packages/mouse/CHANGELOG.md @@ -1,5 +1,15 @@ # @solid-primitives/mouse +## 2.0.18 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + - @solid-primitives/event-listener@2.3.2 + - @solid-primitives/rootless@1.4.4 + - @solid-primitives/static-store@0.0.7 + ## 2.0.17 ### Patch Changes diff --git a/packages/mouse/package.json b/packages/mouse/package.json index 091d545fb..16b0883b1 100644 --- a/packages/mouse/package.json +++ b/packages/mouse/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/mouse", - "version": "2.0.17", + "version": "2.0.18", "description": "A collection of Solid Primitives, that capture current mouse cursor position, and help to deal with common related usecases.", "author": "Damian Tarnawski ", "license": "MIT", diff --git a/packages/mutation-observer/CHANGELOG.md b/packages/mutation-observer/CHANGELOG.md index 6ceedbe6b..1f0aafb2a 100644 --- a/packages/mutation-observer/CHANGELOG.md +++ b/packages/mutation-observer/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/mutation-observer +## 1.1.16 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 1.1.15 ### Patch Changes diff --git a/packages/mutation-observer/package.json b/packages/mutation-observer/package.json index de0d9fa08..49de14e3a 100644 --- a/packages/mutation-observer/package.json +++ b/packages/mutation-observer/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/mutation-observer", - "version": "1.1.15", + "version": "1.1.16", "description": "Primitive providing the ability to watch for changes made to the DOM tree.", "author": "Damian Tarnawski @thetarnav ", "license": "MIT", diff --git a/packages/page-visibility/CHANGELOG.md b/packages/page-visibility/CHANGELOG.md index 0d185878a..e86f56735 100644 --- a/packages/page-visibility/CHANGELOG.md +++ b/packages/page-visibility/CHANGELOG.md @@ -1,5 +1,14 @@ # @solid-primitives/page-visibility +## 2.0.16 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + - @solid-primitives/event-listener@2.3.2 + - @solid-primitives/rootless@1.4.4 + ## 2.0.15 ### Patch Changes diff --git a/packages/page-visibility/package.json b/packages/page-visibility/package.json index 7488119cb..0416f0f82 100644 --- a/packages/page-visibility/package.json +++ b/packages/page-visibility/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/page-visibility", - "version": "2.0.15", + "version": "2.0.16", "description": "Primitive to track page visibility", "author": "David Di Biase", "contributors": [ diff --git a/packages/pagination/CHANGELOG.md b/packages/pagination/CHANGELOG.md index 01f142450..0ced711eb 100644 --- a/packages/pagination/CHANGELOG.md +++ b/packages/pagination/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/pagination +## 0.2.11 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 0.2.10 ### Patch Changes diff --git a/packages/pagination/package.json b/packages/pagination/package.json index bdb632144..8f38211ce 100644 --- a/packages/pagination/package.json +++ b/packages/pagination/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/pagination", - "version": "0.2.10", + "version": "0.2.11", "description": "A primitive that creates all the reactive data to manage your pagination.", "author": "Alex Lohr ", "contributors": [ diff --git a/packages/pointer/CHANGELOG.md b/packages/pointer/CHANGELOG.md index 2279ebe85..be9349091 100644 --- a/packages/pointer/CHANGELOG.md +++ b/packages/pointer/CHANGELOG.md @@ -1,5 +1,14 @@ # @solid-primitives/pointer +## 0.2.18 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + - @solid-primitives/event-listener@2.3.2 + - @solid-primitives/rootless@1.4.4 + ## 0.2.17 ### Patch Changes diff --git a/packages/pointer/package.json b/packages/pointer/package.json index d615c4624..cc400e555 100644 --- a/packages/pointer/package.json +++ b/packages/pointer/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/pointer", - "version": "0.2.17", + "version": "0.2.18", "description": "A collection of primitives, giving you a nicer API to handle pointer events in a reactive context.", "author": "Damian Tarnawski @thetarnav ", "license": "MIT", diff --git a/packages/presence/CHANGELOG.md b/packages/presence/CHANGELOG.md index df776b904..24bfea1e9 100644 --- a/packages/presence/CHANGELOG.md +++ b/packages/presence/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/presence +## 0.0.5 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 0.0.4 ### Patch Changes diff --git a/packages/presence/package.json b/packages/presence/package.json index 953d8239b..11fd6f6ac 100644 --- a/packages/presence/package.json +++ b/packages/presence/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/presence", - "version": "0.0.4", + "version": "0.0.5", "description": "Utility to animate the presence of an element based on the existence of data or lack thereof.", "author": "Ethan Standel ", "license": "MIT", diff --git a/packages/promise/CHANGELOG.md b/packages/promise/CHANGELOG.md index 31e9b8660..5f3de3a8c 100644 --- a/packages/promise/CHANGELOG.md +++ b/packages/promise/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/until +## 1.0.15 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 1.0.14 ### Patch Changes diff --git a/packages/promise/package.json b/packages/promise/package.json index f073a29ba..b6038b1ff 100644 --- a/packages/promise/package.json +++ b/packages/promise/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/promise", - "version": "1.0.14", + "version": "1.0.15", "description": "Promised one-time watch for changes. Await a reactive condition.", "author": "Damian Tarnawski @thetarnav ", "license": "MIT", diff --git a/packages/props/CHANGELOG.md b/packages/props/CHANGELOG.md index 1f0e0ecc0..208ec45b4 100644 --- a/packages/props/CHANGELOG.md +++ b/packages/props/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/props +## 3.1.10 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 3.1.9 ### Patch Changes diff --git a/packages/props/package.json b/packages/props/package.json index 09ba39598..31199cfd4 100644 --- a/packages/props/package.json +++ b/packages/props/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/props", - "version": "3.1.9", + "version": "3.1.10", "description": "Library of primitives focused around component props.", "author": "Damian Tarnawski ", "contributors": [], diff --git a/packages/raf/CHANGELOG.md b/packages/raf/CHANGELOG.md index 1f4afb8dc..4dd823eea 100644 --- a/packages/raf/CHANGELOG.md +++ b/packages/raf/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/raf +## 2.1.15 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 2.1.14 ### Patch Changes diff --git a/packages/raf/package.json b/packages/raf/package.json index 2f2feaef4..8191cf710 100644 --- a/packages/raf/package.json +++ b/packages/raf/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/raf", - "version": "2.1.14", + "version": "2.1.15", "description": "Primitive that facilitates RAF functionality", "author": "David Di Biase ", "contributors": [ diff --git a/packages/range/CHANGELOG.md b/packages/range/CHANGELOG.md index d82aec3eb..c969a8bcb 100644 --- a/packages/range/CHANGELOG.md +++ b/packages/range/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/range +## 0.1.17 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 0.1.16 ### Patch Changes diff --git a/packages/range/package.json b/packages/range/package.json index c3a587dca..f941f0d3a 100644 --- a/packages/range/package.json +++ b/packages/range/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/range", - "version": "0.1.16", + "version": "0.1.17", "description": "Control Flow Primitives for displaying given number or a number range of elements.", "author": "Damian Tarnawski @thetarnav ", "contributors": [], diff --git a/packages/refs/CHANGELOG.md b/packages/refs/CHANGELOG.md index e8420d4a6..6745a1354 100644 --- a/packages/refs/CHANGELOG.md +++ b/packages/refs/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/refs +## 1.0.7 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 1.0.6 ### Patch Changes diff --git a/packages/refs/package.json b/packages/refs/package.json index 3ae647d66..1c0ea7489 100644 --- a/packages/refs/package.json +++ b/packages/refs/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/refs", - "version": "1.0.6", + "version": "1.0.7", "description": "Library of primitives, components and directives for SolidJS that help managing references to JSX elements.", "author": "Damian Tarnawski @thetarnav ", "license": "MIT", diff --git a/packages/resize-observer/CHANGELOG.md b/packages/resize-observer/CHANGELOG.md index 00c2fcf67..be11b71df 100644 --- a/packages/resize-observer/CHANGELOG.md +++ b/packages/resize-observer/CHANGELOG.md @@ -1,5 +1,15 @@ # @solid-primitives/resize-observer +## 2.0.24 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + - @solid-primitives/event-listener@2.3.2 + - @solid-primitives/rootless@1.4.4 + - @solid-primitives/static-store@0.0.7 + ## 2.0.23 ### Patch Changes diff --git a/packages/resize-observer/package.json b/packages/resize-observer/package.json index ee375b02e..61face4a1 100644 --- a/packages/resize-observer/package.json +++ b/packages/resize-observer/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/resize-observer", - "version": "2.0.23", + "version": "2.0.24", "description": "Reactive primitives for observing resizing of HTML elements.", "author": "Moshe Udimar", "contributors": [ diff --git a/packages/rootless/CHANGELOG.md b/packages/rootless/CHANGELOG.md index 7fa487021..07ac4ee37 100644 --- a/packages/rootless/CHANGELOG.md +++ b/packages/rootless/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/rootless +## 1.4.4 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 1.4.3 ### Patch Changes diff --git a/packages/rootless/package.json b/packages/rootless/package.json index 3938bea2f..420ff09c9 100644 --- a/packages/rootless/package.json +++ b/packages/rootless/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/rootless", - "version": "1.4.3", + "version": "1.4.4", "description": "A collection of helpers that aim to simplify using reactive primitives outside of reactive roots, and managing disposal of reactive roots.", "author": "Damian Tarnawski @thetarnav ", "license": "MIT", diff --git a/packages/scroll/CHANGELOG.md b/packages/scroll/CHANGELOG.md index 972dfb11b..5d7cc1775 100644 --- a/packages/scroll/CHANGELOG.md +++ b/packages/scroll/CHANGELOG.md @@ -1,5 +1,13 @@ # @solid-primitives/scroll +## 2.0.22 + +### Patch Changes + +- @solid-primitives/event-listener@2.3.2 +- @solid-primitives/rootless@1.4.4 +- @solid-primitives/static-store@0.0.7 + ## 2.0.21 ### Patch Changes diff --git a/packages/scroll/package.json b/packages/scroll/package.json index 03de63006..faf04aaa0 100644 --- a/packages/scroll/package.json +++ b/packages/scroll/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/scroll", - "version": "2.0.21", + "version": "2.0.22", "description": "Reactive primitives to react to element/window scrolling.", "author": "David Di Biase ", "contributors": [ diff --git a/packages/set/CHANGELOG.md b/packages/set/CHANGELOG.md index a53ebcaa2..b2f952d5e 100644 --- a/packages/set/CHANGELOG.md +++ b/packages/set/CHANGELOG.md @@ -1,5 +1,11 @@ # @solid-primitives/set +## 0.4.10 + +### Patch Changes + +- @solid-primitives/trigger@1.0.10 + ## 0.4.9 ### Patch Changes diff --git a/packages/set/package.json b/packages/set/package.json index a185b9482..ba464fd2b 100644 --- a/packages/set/package.json +++ b/packages/set/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/set", - "version": "0.4.9", + "version": "0.4.10", "description": "The Set & WeakSet data structures as a reactive signals.", "author": "Damian Tarnawski @thetarnav ", "license": "MIT", diff --git a/packages/signal-builders/CHANGELOG.md b/packages/signal-builders/CHANGELOG.md index ffc2f33e9..50072afed 100644 --- a/packages/signal-builders/CHANGELOG.md +++ b/packages/signal-builders/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/signal-builders +## 0.1.16 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 0.1.15 ### Patch Changes diff --git a/packages/signal-builders/package.json b/packages/signal-builders/package.json index b0aaca45b..567ee7c1e 100644 --- a/packages/signal-builders/package.json +++ b/packages/signal-builders/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/signal-builders", - "version": "0.1.15", + "version": "0.1.16", "description": "A collection of chainable and composable reactive signal calculations, aka Signal Builders.", "author": "Your Name ", "license": "MIT", diff --git a/packages/static-store/CHANGELOG.md b/packages/static-store/CHANGELOG.md index 3cb0d3239..0d4d563c5 100644 --- a/packages/static-store/CHANGELOG.md +++ b/packages/static-store/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/static-store +## 0.0.7 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 0.0.6 ### Patch Changes diff --git a/packages/static-store/package.json b/packages/static-store/package.json index 54a143147..721521dd0 100644 --- a/packages/static-store/package.json +++ b/packages/static-store/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/static-store", - "version": "0.0.6", + "version": "0.0.7", "description": "Primitives for creating small reactive objects that doesn't change their shape over time - don't need a proxy wrapper.", "author": "Damian Tarnawski ", "contributors": [], diff --git a/packages/storage/CHANGELOG.md b/packages/storage/CHANGELOG.md index 277c66920..2d7837052 100644 --- a/packages/storage/CHANGELOG.md +++ b/packages/storage/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/storage +## 2.1.3 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 2.1.2 ### Patch Changes diff --git a/packages/storage/package.json b/packages/storage/package.json index db539d6b0..d7e52b2cc 100644 --- a/packages/storage/package.json +++ b/packages/storage/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/storage", - "version": "2.1.2", + "version": "2.1.3", "description": "Primitive that provides reactive wrappers for storage access", "author": "Alex Lohr ", "contributors": [ diff --git a/packages/stream/CHANGELOG.md b/packages/stream/CHANGELOG.md index 9b8ec3382..48ab6c50b 100644 --- a/packages/stream/CHANGELOG.md +++ b/packages/stream/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/stream +## 0.6.13 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 0.6.12 ### Patch Changes diff --git a/packages/stream/package.json b/packages/stream/package.json index 4548617bc..4b2e62672 100644 --- a/packages/stream/package.json +++ b/packages/stream/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/stream", - "version": "0.6.12", + "version": "0.6.13", "description": "Primitive that gets a user media stream from microphone, camera or screen", "author": "Alex Lohr ", "license": "MIT", diff --git a/packages/styles/CHANGELOG.md b/packages/styles/CHANGELOG.md index 6caa527aa..d863bd82b 100644 --- a/packages/styles/CHANGELOG.md +++ b/packages/styles/CHANGELOG.md @@ -1,5 +1,13 @@ # @solid-primitives/styles +## 0.0.113 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + - @solid-primitives/rootless@1.4.4 + ## 0.0.112 ### Patch Changes diff --git a/packages/styles/package.json b/packages/styles/package.json index 85d7c6827..98d243bef 100644 --- a/packages/styles/package.json +++ b/packages/styles/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/styles", - "version": "0.0.112", + "version": "0.0.113", "description": "Collection of reactive primitives focused on styles.", "author": "Damian Tarnawski ", "contributors": [ diff --git a/packages/trigger/CHANGELOG.md b/packages/trigger/CHANGELOG.md index e899c1fc0..0bbc7696b 100644 --- a/packages/trigger/CHANGELOG.md +++ b/packages/trigger/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/trigger +## 1.0.10 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 1.0.9 ### Patch Changes diff --git a/packages/trigger/package.json b/packages/trigger/package.json index d6588a210..fd6eb3d7f 100644 --- a/packages/trigger/package.json +++ b/packages/trigger/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/trigger", - "version": "1.0.9", + "version": "1.0.10", "description": "A set of primitives based on Solid signals, used to trigger computations.", "author": "Damian Tarnawski ", "contributors": [], diff --git a/packages/upload/CHANGELOG.md b/packages/upload/CHANGELOG.md index ccf971aea..d10c7c8f4 100644 --- a/packages/upload/CHANGELOG.md +++ b/packages/upload/CHANGELOG.md @@ -1,5 +1,12 @@ # @solid-primitives/upload +## 0.0.116 + +### Patch Changes + +- Updated dependencies [48d44c0] + - @solid-primitives/utils@6.2.3 + ## 0.0.115 ### Patch Changes diff --git a/packages/upload/package.json b/packages/upload/package.json index 5ce2548b9..7f10d7092 100644 --- a/packages/upload/package.json +++ b/packages/upload/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/upload", - "version": "0.0.115", + "version": "0.0.116", "description": "Primitives for uploading files.", "author": "Rustam Ashurmatov ", "license": "MIT", diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index 8a45a95a3..d3fabfc65 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -1,5 +1,11 @@ # @solid-primitives/utils +## 6.2.3 + +### Patch Changes + +- 48d44c0: Remove unused type exports in utils (`ResolvedJSXElement` and `ResolvedChildren`) + ## 6.2.2 ### Patch Changes diff --git a/packages/utils/package.json b/packages/utils/package.json index f4f05afcd..8e86ee8cd 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/utils", - "version": "6.2.2", + "version": "6.2.3", "description": "A bunch of reactive utility types and functions, for building primitives with Solid.js", "author": "Damian Tarnawski @thetarnav ", "contributors": [ From 57b02d2f5430b1ed8775bf71a7d305508e49ba0d Mon Sep 17 00:00:00 2001 From: thetarnav Date: Wed, 28 Feb 2024 21:24:20 +0000 Subject: [PATCH 25/25] Format --- packages/i18n/test/setup.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/i18n/test/setup.tsx b/packages/i18n/test/setup.tsx index 3d2b69ab6..db246078b 100644 --- a/packages/i18n/test/setup.tsx +++ b/packages/i18n/test/setup.tsx @@ -25,7 +25,11 @@ export const en_dict = { return `${list.join(", ")} and ${last}`; }, }, - jsx: (name: string) => <>Hi {name}!, + jsx: (name: string) => ( + <> + Hi {name}! + + ), }; export type Dict = typeof en_dict; @@ -52,5 +56,9 @@ export const pl_dict = { return `${list.join(", ")} i ${last}`; }, }, - jsx: (name: string) => <>Cześć {name}!, + jsx: (name: string) => ( + <> + Cześć {name}! + + ), } satisfies Dict;