AlexWayne
AlexWayne
Explore posts from servers
Aarktype
Created by AlexWayne on 1/31/2025 in #questions
configure({ onUndeclaredKey: 'delete' }) seems to allow extra properties through.
Or have I done something wrong
import { configure, type } from 'arktype'

configure({ onUndeclaredKey: 'delete' })

const Obj = type({ a: 'number' })
const obj = Obj.assert({ a: 1, b: 2 })
console.log(obj)
import { configure, type } from 'arktype'

configure({ onUndeclaredKey: 'delete' })

const Obj = type({ a: 'number' })
const obj = Obj.assert({ a: 1, b: 2 })
console.log(obj)
Yields:
{ a: 1, b: 2 }
{ a: 1, b: 2 }
I'm on 2.0.4
13 replies
Aarktype
Created by AlexWayne on 7/29/2024 in #questions
using an const array as a source for a string literal union
Given this:
const weatherIcons = [
'sun',
'rain',
'snow',
] as const
const weatherIcons = [
'sun',
'rain',
'snow',
] as const
How can I create a type like
type Weather = {
icon: typeof weatherIcons[number]
}
type Weather = {
icon: typeof weatherIcons[number]
}
Full example: https://www.typescriptlang.org/play/?#code/JYWwDg9gTgLgBAbzgLzgXzgMyhEcDkyEAJvgLABQoksicMAnmAKbpY574CGUA1oy3IVKAYwgA7AM7wA7sy4wAFsygBJMVLgBeOAG1KcApICu4-ABoDBKF2BnLFQ-kniIMi5QC6cLpLgbpSiCKAPhkAGURZRAubRQAOggAIwArZhEYAAoEKxhmcAAuBPFjECSVTIBKB0NgDSLkeOYSkEy5BWU1AOrKNErKAVYALUjo2J1Gu0wVAB5BiEwUUfyuAD4BpmHlmIB1eSUVdQk4kaiV3Xw6iXxPSgB6O8M4AD0AfmDRCWkfbfH6TeyuXyYCK+Ba5SgHkccCu4lB0igdgA5hY4A84DMALSYwyvPG9foUQZwACCvzi80WXF+8SmKg2LFJvz2HUOGjiZLOMQusJu90ehjeQA
7 replies
TtRPC
Created by AlexWayne on 6/14/2024 in #❓-help
v10 useQueries does not return a stable reference
I though this code would work downstream for memos and callbacks, but it does not. The memo and effect are re-ran every render. Have I don't something stupid, here or is this intended? How would I memoize a derives values from the results? This code:
const results = trpcReactQuery.useQueries((trpc) =>
things.map((thing) =>
trpc.things.byId({ thingId: thing.id }),
),
)
console.log('')
console.log('--- render ---')

useEffect(() => {
console.log('results changed', results.length)
}, [results])

const foo = useMemo(() => {
console.log('memo recreated')
return results.map((result) => result.data?.id)
}, [results])
const results = trpcReactQuery.useQueries((trpc) =>
things.map((thing) =>
trpc.things.byId({ thingId: thing.id }),
),
)
console.log('')
console.log('--- render ---')

useEffect(() => {
console.log('results changed', results.length)
}, [results])

const foo = useMemo(() => {
console.log('memo recreated')
return results.map((result) => result.data?.id)
}, [results])
Logs this:
--- render ---
memo recreated
results changed 0

--- render ---
memo recreated
results changed 0

--- render ---
memo recreated
results changed 28

--- render ---
memo recreated
results changed 28

--- render ---
memo recreated
results changed 28

--- render ---
memo recreated
results changed 28

--- render ---
memo recreated
results changed 28

--- render ---
memo recreated
results changed 28

--- render ---
memo recreated
results changed 28
--- render ---
memo recreated
results changed 0

--- render ---
memo recreated
results changed 0

--- render ---
memo recreated
results changed 28

--- render ---
memo recreated
results changed 28

--- render ---
memo recreated
results changed 28

--- render ---
memo recreated
results changed 28

--- render ---
memo recreated
results changed 28

--- render ---
memo recreated
results changed 28

--- render ---
memo recreated
results changed 28
5 replies