0.1.12 (#17)
Co-authored-by: Julien Valverdé <julien.valverde@mailo.com> Reviewed-on: https://gitea:3000/Thilawyn/reffuse/pulls/17
This commit was merged in pull request #17.
This commit is contained in:
@@ -6,6 +6,16 @@ import { Console, Effect, Option } from "effect"
|
|||||||
import { useEffect, useState } from "react"
|
import { useEffect, useState } from "react"
|
||||||
|
|
||||||
|
|
||||||
|
interface Node {
|
||||||
|
value: string
|
||||||
|
left?: Leaf
|
||||||
|
right?: Leaf
|
||||||
|
}
|
||||||
|
interface Leaf {
|
||||||
|
node: Node
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const makeUuid = Effect.provide(makeUuid4, GetRandomValues.CryptoRandom)
|
const makeUuid = Effect.provide(makeUuid4, GetRandomValues.CryptoRandom)
|
||||||
|
|
||||||
|
|
||||||
@@ -32,6 +42,11 @@ function RouteComponent() {
|
|||||||
runSync,
|
runSync,
|
||||||
), [scopeLayer, runSync])
|
), [scopeLayer, runSync])
|
||||||
|
|
||||||
|
|
||||||
|
const nodeRef = R.useRef(() => Effect.succeed<Node>({ value: "prout" }))
|
||||||
|
const nodeValueRef = R.useSubRefFromPath(nodeRef, ["value"])
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Flex direction="column" justify="center" align="center" gap="2">
|
<Flex direction="column" justify="center" align="center" gap="2">
|
||||||
<Text>{uuid}</Text>
|
<Text>{uuid}</Text>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "reffuse",
|
"name": "reffuse",
|
||||||
"version": "0.1.11",
|
"version": "0.1.12",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"files": [
|
"files": [
|
||||||
"./README.md",
|
"./README.md",
|
||||||
|
|||||||
@@ -1,24 +1,26 @@
|
|||||||
import { Array, Function, Option, Predicate } from "effect"
|
import { Array, Function, Option, Predicate } from "effect"
|
||||||
|
|
||||||
|
|
||||||
export type Paths<T> = [] | (
|
export type Paths<T, Seen = never> = [] | (
|
||||||
T extends readonly any[] ? ArrayPaths<T> :
|
T extends Seen ? [] :
|
||||||
T extends object ? ObjectPaths<T> :
|
T extends readonly any[] ? ArrayPaths<T, Seen | T> :
|
||||||
|
T extends object ? ObjectPaths<T, Seen | T> :
|
||||||
never
|
never
|
||||||
)
|
)
|
||||||
|
|
||||||
export type ArrayPaths<T extends readonly any[]> = {
|
export type ArrayPaths<T extends readonly any[], Seen> = {
|
||||||
[K in keyof T as K extends number ? K : never]:
|
[K in keyof T as K extends number ? K : never]:
|
||||||
| [K]
|
| [K]
|
||||||
| [K, ...Paths<T[K]>]
|
| [K, ...Paths<T[K], Seen>]
|
||||||
} extends infer O
|
} extends infer O
|
||||||
? O[keyof O]
|
? O[keyof O]
|
||||||
: never
|
: never
|
||||||
|
|
||||||
export type ObjectPaths<T extends object> = {
|
export type ObjectPaths<T extends object, Seen> = {
|
||||||
[K in keyof T as K extends string | number | symbol ? K : never]:
|
[K in keyof T as K extends string | number | symbol ? K : never]-?:
|
||||||
| [K]
|
NonNullable<T[K]> extends infer V
|
||||||
| [K, ...Paths<T[K]>]
|
? [K] | [K, ...Paths<T[K], Seen>]
|
||||||
|
: never
|
||||||
} extends infer O
|
} extends infer O
|
||||||
? O[keyof O]
|
? O[keyof O]
|
||||||
: never
|
: never
|
||||||
|
|||||||
Reference in New Issue
Block a user