@atproto/lex-schema 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/core/$type.d.ts +2 -2
- package/dist/core/$type.d.ts.map +1 -1
- package/dist/core/$type.js.map +1 -1
- package/dist/core/record-key.d.ts +1 -1
- package/dist/core/record-key.d.ts.map +1 -1
- package/dist/core/record-key.js.map +1 -1
- package/dist/core/schema.d.ts +3 -2
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/schema.js +1 -1
- package/dist/core/schema.js.map +1 -1
- package/dist/core/standard-schema.d.ts +2 -2
- package/dist/core/standard-schema.d.ts.map +1 -1
- package/dist/core/standard-schema.js.map +1 -1
- package/dist/core/string-format.d.ts +2 -2
- package/dist/core/string-format.d.ts.map +1 -1
- package/dist/core/string-format.js.map +1 -1
- package/dist/core/validation-error.d.ts +1 -1
- package/dist/core/validation-error.d.ts.map +1 -1
- package/dist/core/validation-error.js +1 -1
- package/dist/core/validation-error.js.map +1 -1
- package/dist/core/validator.d.ts +1 -1
- package/dist/core/validator.d.ts.map +1 -1
- package/dist/core/validator.js +1 -1
- package/dist/core/validator.js.map +1 -1
- package/dist/helpers.d.ts +2 -2
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +2 -2
- package/dist/helpers.js.map +1 -1
- package/dist/schema/array.d.ts +1 -1
- package/dist/schema/array.d.ts.map +1 -1
- package/dist/schema/array.js +1 -1
- package/dist/schema/array.js.map +1 -1
- package/dist/schema/blob.d.ts +1 -1
- package/dist/schema/blob.d.ts.map +1 -1
- package/dist/schema/blob.js +2 -2
- package/dist/schema/blob.js.map +1 -1
- package/dist/schema/boolean.js +1 -1
- package/dist/schema/boolean.js.map +1 -1
- package/dist/schema/bytes.js +1 -1
- package/dist/schema/bytes.js.map +1 -1
- package/dist/schema/cid.d.ts +1 -1
- package/dist/schema/cid.d.ts.map +1 -1
- package/dist/schema/cid.js +3 -3
- package/dist/schema/cid.js.map +1 -1
- package/dist/schema/custom.js +1 -1
- package/dist/schema/custom.js.map +1 -1
- package/dist/schema/dict.d.ts +1 -1
- package/dist/schema/dict.d.ts.map +1 -1
- package/dist/schema/dict.js +1 -1
- package/dist/schema/dict.js.map +1 -1
- package/dist/schema/discriminated-union.d.ts +1 -1
- package/dist/schema/discriminated-union.d.ts.map +1 -1
- package/dist/schema/discriminated-union.js +2 -1
- package/dist/schema/discriminated-union.js.map +1 -1
- package/dist/schema/enum.js +1 -1
- package/dist/schema/enum.js.map +1 -1
- package/dist/schema/integer.js +1 -1
- package/dist/schema/integer.js.map +1 -1
- package/dist/schema/intersection.d.ts +1 -1
- package/dist/schema/intersection.d.ts.map +1 -1
- package/dist/schema/intersection.js +3 -1
- package/dist/schema/intersection.js.map +1 -1
- package/dist/schema/lex-map.d.ts +1 -1
- package/dist/schema/lex-map.d.ts.map +1 -1
- package/dist/schema/lex-map.js +1 -1
- package/dist/schema/lex-map.js.map +1 -1
- package/dist/schema/lex-value.d.ts +1 -1
- package/dist/schema/lex-value.d.ts.map +1 -1
- package/dist/schema/lex-value.js +1 -1
- package/dist/schema/lex-value.js.map +1 -1
- package/dist/schema/literal.js +1 -1
- package/dist/schema/literal.js.map +1 -1
- package/dist/schema/never.js +1 -1
- package/dist/schema/never.js.map +1 -1
- package/dist/schema/null.js +1 -1
- package/dist/schema/null.js.map +1 -1
- package/dist/schema/nullable.d.ts +1 -1
- package/dist/schema/nullable.d.ts.map +1 -1
- package/dist/schema/nullable.js +1 -1
- package/dist/schema/nullable.js.map +1 -1
- package/dist/schema/object.d.ts +2 -1
- package/dist/schema/object.d.ts.map +1 -1
- package/dist/schema/object.js +1 -1
- package/dist/schema/object.js.map +1 -1
- package/dist/schema/optional.d.ts +2 -1
- package/dist/schema/optional.d.ts.map +1 -1
- package/dist/schema/optional.js +2 -1
- package/dist/schema/optional.js.map +1 -1
- package/dist/schema/params.d.ts +1 -1
- package/dist/schema/params.d.ts.map +1 -1
- package/dist/schema/params.js +1 -1
- package/dist/schema/params.js.map +1 -1
- package/dist/schema/payload.d.ts +3 -2
- package/dist/schema/payload.d.ts.map +1 -1
- package/dist/schema/payload.js +2 -1
- package/dist/schema/payload.js.map +1 -1
- package/dist/schema/permission-set.d.ts +1 -1
- package/dist/schema/permission-set.d.ts.map +1 -1
- package/dist/schema/permission-set.js +1 -0
- package/dist/schema/permission-set.js.map +1 -1
- package/dist/schema/permission.d.ts +1 -1
- package/dist/schema/permission.d.ts.map +1 -1
- package/dist/schema/permission.js.map +1 -1
- package/dist/schema/procedure.d.ts +1 -1
- package/dist/schema/procedure.d.ts.map +1 -1
- package/dist/schema/procedure.js +2 -0
- package/dist/schema/procedure.js.map +1 -1
- package/dist/schema/query.d.ts +1 -1
- package/dist/schema/query.d.ts.map +1 -1
- package/dist/schema/query.js +2 -0
- package/dist/schema/query.js.map +1 -1
- package/dist/schema/record.d.ts +2 -2
- package/dist/schema/record.d.ts.map +1 -1
- package/dist/schema/record.js +1 -1
- package/dist/schema/record.js.map +1 -1
- package/dist/schema/ref.d.ts +1 -1
- package/dist/schema/ref.d.ts.map +1 -1
- package/dist/schema/ref.js +1 -1
- package/dist/schema/ref.js.map +1 -1
- package/dist/schema/refine.d.ts +2 -2
- package/dist/schema/refine.d.ts.map +1 -1
- package/dist/schema/refine.js +1 -1
- package/dist/schema/refine.js.map +1 -1
- package/dist/schema/regexp.js +1 -1
- package/dist/schema/regexp.js.map +1 -1
- package/dist/schema/string.d.ts +2 -2
- package/dist/schema/string.d.ts.map +1 -1
- package/dist/schema/string.js +1 -1
- package/dist/schema/string.js.map +1 -1
- package/dist/schema/subscription.d.ts +3 -2
- package/dist/schema/subscription.d.ts.map +1 -1
- package/dist/schema/subscription.js +2 -0
- package/dist/schema/subscription.js.map +1 -1
- package/dist/schema/token.d.ts +1 -1
- package/dist/schema/token.d.ts.map +1 -1
- package/dist/schema/token.js +1 -1
- package/dist/schema/token.js.map +1 -1
- package/dist/schema/typed-object.d.ts +2 -2
- package/dist/schema/typed-object.d.ts.map +1 -1
- package/dist/schema/typed-object.js +1 -1
- package/dist/schema/typed-object.js.map +1 -1
- package/dist/schema/typed-ref.d.ts +1 -1
- package/dist/schema/typed-ref.d.ts.map +1 -1
- package/dist/schema/typed-ref.js +1 -1
- package/dist/schema/typed-ref.js.map +1 -1
- package/dist/schema/typed-union.d.ts +1 -1
- package/dist/schema/typed-union.d.ts.map +1 -1
- package/dist/schema/typed-union.js +3 -1
- package/dist/schema/typed-union.js.map +1 -1
- package/dist/schema/union.d.ts +1 -1
- package/dist/schema/union.d.ts.map +1 -1
- package/dist/schema/union.js +1 -1
- package/dist/schema/union.js.map +1 -1
- package/dist/schema/unknown.js +1 -1
- package/dist/schema/unknown.js.map +1 -1
- package/dist/schema/with-default.d.ts +1 -1
- package/dist/schema/with-default.d.ts.map +1 -1
- package/dist/schema/with-default.js +1 -1
- package/dist/schema/with-default.js.map +1 -1
- package/package.json +6 -10
- package/src/core/$type.test.ts +0 -24
- package/src/core/$type.ts +0 -199
- package/src/core/record-key.ts +0 -85
- package/src/core/result.ts +0 -15
- package/src/core/schema.ts +0 -412
- package/src/core/standard-schema.test.ts +0 -124
- package/src/core/standard-schema.ts +0 -31
- package/src/core/string-format.ts +0 -411
- package/src/core/types.ts +0 -120
- package/src/core/validation-error.ts +0 -134
- package/src/core/validation-issue.ts +0 -340
- package/src/core/validator.ts +0 -636
- package/src/core.ts +0 -9
- package/src/external.ts +0 -3
- package/src/helpers.test.ts +0 -694
- package/src/helpers.ts +0 -222
- package/src/index.ts +0 -3
- package/src/schema/array.test.ts +0 -251
- package/src/schema/array.ts +0 -126
- package/src/schema/blob.test.ts +0 -733
- package/src/schema/blob.ts +0 -150
- package/src/schema/boolean.test.ts +0 -118
- package/src/schema/boolean.ts +0 -46
- package/src/schema/bytes.test.ts +0 -227
- package/src/schema/bytes.ts +0 -81
- package/src/schema/cid.test.ts +0 -125
- package/src/schema/cid.ts +0 -69
- package/src/schema/custom.test.ts +0 -414
- package/src/schema/custom.ts +0 -106
- package/src/schema/dict.test.ts +0 -181
- package/src/schema/dict.ts +0 -122
- package/src/schema/discriminated-union.test.ts +0 -676
- package/src/schema/discriminated-union.ts +0 -196
- package/src/schema/enum.test.ts +0 -398
- package/src/schema/enum.ts +0 -77
- package/src/schema/integer.test.ts +0 -314
- package/src/schema/integer.ts +0 -86
- package/src/schema/intersection.test.ts +0 -33
- package/src/schema/intersection.ts +0 -113
- package/src/schema/lex-map.test.ts +0 -593
- package/src/schema/lex-map.ts +0 -63
- package/src/schema/lex-value.test.ts +0 -81
- package/src/schema/lex-value.ts +0 -86
- package/src/schema/literal.test.ts +0 -533
- package/src/schema/literal.ts +0 -70
- package/src/schema/never.test.ts +0 -175
- package/src/schema/never.ts +0 -56
- package/src/schema/null.test.ts +0 -80
- package/src/schema/null.ts +0 -49
- package/src/schema/nullable.test.ts +0 -470
- package/src/schema/nullable.ts +0 -74
- package/src/schema/object.test.ts +0 -69
- package/src/schema/object.ts +0 -136
- package/src/schema/optional.test.ts +0 -479
- package/src/schema/optional.ts +0 -92
- package/src/schema/params.test.ts +0 -1118
- package/src/schema/params.ts +0 -371
- package/src/schema/payload.test.ts +0 -340
- package/src/schema/payload.ts +0 -204
- package/src/schema/permission-set.test.ts +0 -613
- package/src/schema/permission-set.ts +0 -86
- package/src/schema/permission.test.ts +0 -537
- package/src/schema/permission.ts +0 -63
- package/src/schema/procedure.test.ts +0 -324
- package/src/schema/procedure.ts +0 -98
- package/src/schema/query.test.ts +0 -348
- package/src/schema/query.ts +0 -86
- package/src/schema/record.test.ts +0 -812
- package/src/schema/record.ts +0 -217
- package/src/schema/ref.test.ts +0 -349
- package/src/schema/ref.ts +0 -103
- package/src/schema/refine.test.ts +0 -579
- package/src/schema/refine.ts +0 -153
- package/src/schema/regexp.test.ts +0 -577
- package/src/schema/regexp.ts +0 -82
- package/src/schema/string.test.ts +0 -773
- package/src/schema/string.ts +0 -229
- package/src/schema/subscription.test.ts +0 -499
- package/src/schema/subscription.ts +0 -108
- package/src/schema/token.test.ts +0 -152
- package/src/schema/token.ts +0 -103
- package/src/schema/typed-object.test.ts +0 -745
- package/src/schema/typed-object.ts +0 -181
- package/src/schema/typed-ref.test.ts +0 -796
- package/src/schema/typed-ref.ts +0 -126
- package/src/schema/typed-union.test.ts +0 -355
- package/src/schema/typed-union.ts +0 -130
- package/src/schema/union.test.ts +0 -191
- package/src/schema/union.ts +0 -89
- package/src/schema/unknown.test.ts +0 -313
- package/src/schema/unknown.ts +0 -47
- package/src/schema/with-default.ts +0 -81
- package/src/schema.ts +0 -43
- package/src/util/array-agg.test.ts +0 -42
- package/src/util/array-agg.ts +0 -44
- package/src/util/assertion-util.ts +0 -1
- package/src/util/if-any.ts +0 -3
- package/src/util/lazy-property.ts +0 -14
- package/src/util/memoize.ts +0 -37
- package/tsconfig.build.json +0 -12
- package/tsconfig.json +0 -7
- package/tsconfig.tests.json +0 -8
package/src/schema/token.test.ts
DELETED
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest'
|
|
2
|
-
import { token } from './token.js'
|
|
3
|
-
|
|
4
|
-
describe('TokenSchema', () => {
|
|
5
|
-
describe('basic validation', () => {
|
|
6
|
-
const schema = token('my.to.ken')
|
|
7
|
-
|
|
8
|
-
it('validates exact token match', () => {
|
|
9
|
-
expect(schema.safeParse('my.to.ken')).toMatchObject({
|
|
10
|
-
success: true,
|
|
11
|
-
value: 'my.to.ken',
|
|
12
|
-
})
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
it('rejects different strings', () => {
|
|
16
|
-
const result = schema.safeParse('other.to.ken')
|
|
17
|
-
expect(result.success).toBe(false)
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
it('rejects similar strings with different case', () => {
|
|
21
|
-
const result = schema.safeParse('My.To.Ken')
|
|
22
|
-
expect(result.success).toBe(false)
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
it('rejects partial matches', () => {
|
|
26
|
-
const result = schema.safeParse('my.to')
|
|
27
|
-
expect(result.success).toBe(false)
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
it('rejects empty string', () => {
|
|
31
|
-
const result = schema.safeParse('')
|
|
32
|
-
expect(result.success).toBe(false)
|
|
33
|
-
})
|
|
34
|
-
|
|
35
|
-
it('rejects symbols', () => {
|
|
36
|
-
const result = schema.safeParse(Symbol.for(schema.toString()))
|
|
37
|
-
expect(result.success).toBe(false)
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
-
it('rejects functions', () => {
|
|
41
|
-
const result = schema.safeParse(() => schema)
|
|
42
|
-
expect(result.success).toBe(false)
|
|
43
|
-
})
|
|
44
|
-
|
|
45
|
-
it('rejects dates', () => {
|
|
46
|
-
const result = schema.safeParse(new Date())
|
|
47
|
-
expect(result.success).toBe(false)
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
it('rejects regular expressions', () => {
|
|
51
|
-
const result = schema.safeParse(/mytoken/)
|
|
52
|
-
expect(result.success).toBe(false)
|
|
53
|
-
})
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
describe('TokenSchema instance validation', () => {
|
|
57
|
-
const schema = token('my.to.ken')
|
|
58
|
-
|
|
59
|
-
it('accepts TokenSchema instance with same value', () => {
|
|
60
|
-
const otherInstance = token('my.to.ken')
|
|
61
|
-
const result = schema.safeParse(otherInstance)
|
|
62
|
-
expect(result.success).toBe(true)
|
|
63
|
-
if (result.success) {
|
|
64
|
-
expect(result.value).toBe('my.to.ken')
|
|
65
|
-
}
|
|
66
|
-
})
|
|
67
|
-
|
|
68
|
-
it('rejects TokenSchema instance with different value', () => {
|
|
69
|
-
const otherInstance = token('other.to.ken')
|
|
70
|
-
const result = schema.safeParse(otherInstance)
|
|
71
|
-
expect(result.success).toBe(false)
|
|
72
|
-
})
|
|
73
|
-
|
|
74
|
-
it('accepts itself as input', () => {
|
|
75
|
-
expect(schema.safeParse(schema)).toMatchObject({
|
|
76
|
-
success: true,
|
|
77
|
-
value: 'my.to.ken',
|
|
78
|
-
})
|
|
79
|
-
})
|
|
80
|
-
})
|
|
81
|
-
|
|
82
|
-
describe('type validation', () => {
|
|
83
|
-
const schema = token('my.to.ken')
|
|
84
|
-
|
|
85
|
-
it('rejects null', () => {
|
|
86
|
-
const result = schema.safeParse(null)
|
|
87
|
-
expect(result.success).toBe(false)
|
|
88
|
-
})
|
|
89
|
-
|
|
90
|
-
it('rejects undefined', () => {
|
|
91
|
-
const result = schema.safeParse(undefined)
|
|
92
|
-
expect(result.success).toBe(false)
|
|
93
|
-
})
|
|
94
|
-
|
|
95
|
-
it('rejects numbers', () => {
|
|
96
|
-
const result = schema.safeParse(123)
|
|
97
|
-
expect(result.success).toBe(false)
|
|
98
|
-
})
|
|
99
|
-
|
|
100
|
-
it('rejects booleans', () => {
|
|
101
|
-
const result = schema.safeParse(true)
|
|
102
|
-
expect(result.success).toBe(false)
|
|
103
|
-
})
|
|
104
|
-
|
|
105
|
-
it('rejects objects', () => {
|
|
106
|
-
const result = schema.safeParse({ token: 'mytoken' })
|
|
107
|
-
expect(result.success).toBe(false)
|
|
108
|
-
})
|
|
109
|
-
|
|
110
|
-
it('rejects arrays', () => {
|
|
111
|
-
const result = schema.safeParse(['mytoken'])
|
|
112
|
-
expect(result.success).toBe(false)
|
|
113
|
-
})
|
|
114
|
-
|
|
115
|
-
it('rejects String objects', () => {
|
|
116
|
-
const result = schema.safeParse(new String('mytoken'))
|
|
117
|
-
expect(result.success).toBe(false)
|
|
118
|
-
})
|
|
119
|
-
})
|
|
120
|
-
|
|
121
|
-
describe('serialization methods', () => {
|
|
122
|
-
const schema = token('my.to.ken', 'foo')
|
|
123
|
-
|
|
124
|
-
it('toJSON returns the token value', () => {
|
|
125
|
-
expect(schema.toJSON()).toBe('my.to.ken#foo')
|
|
126
|
-
})
|
|
127
|
-
|
|
128
|
-
it('toString returns the token value', () => {
|
|
129
|
-
expect(schema.toString()).toBe('my.to.ken#foo')
|
|
130
|
-
})
|
|
131
|
-
|
|
132
|
-
it('toJSON and toString return the same value', () => {
|
|
133
|
-
expect(schema.toJSON()).toBe(schema.toString())
|
|
134
|
-
})
|
|
135
|
-
|
|
136
|
-
it('serializes to primitive string in JSON', () => {
|
|
137
|
-
expect(JSON.stringify({ token: schema })).toBe(
|
|
138
|
-
'{"token":"my.to.ken#foo"}',
|
|
139
|
-
)
|
|
140
|
-
})
|
|
141
|
-
})
|
|
142
|
-
|
|
143
|
-
describe('value property', () => {
|
|
144
|
-
const schema = token('my.to.ken')
|
|
145
|
-
|
|
146
|
-
it('exposes the token value through serialization', () => {
|
|
147
|
-
// value is protected, so we verify it through toString/toJSON
|
|
148
|
-
expect(schema.toString()).toBe('my.to.ken')
|
|
149
|
-
expect(schema.toJSON()).toBe('my.to.ken')
|
|
150
|
-
})
|
|
151
|
-
})
|
|
152
|
-
})
|
package/src/schema/token.ts
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { $type, NsidString, Schema, ValidationContext } from '../core.js'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Schema for Lexicon token values.
|
|
5
|
-
*
|
|
6
|
-
* Tokens are named constants in Lexicon, identified by their NSID and hash.
|
|
7
|
-
* They validate to their string value (e.g., 'app.bsky.feed.defs#requestLess').
|
|
8
|
-
* TokenSchema instances can also be used as values themselves.
|
|
9
|
-
*
|
|
10
|
-
* @template TValue - The token string literal type
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* const schema = new TokenSchema('app.bsky.feed.defs#requestLess')
|
|
15
|
-
* schema.validate('app.bsky.feed.defs#requestLess') // success
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export class TokenSchema<
|
|
19
|
-
const TValue extends string = string,
|
|
20
|
-
> extends Schema<TValue> {
|
|
21
|
-
readonly type = 'token' as const
|
|
22
|
-
|
|
23
|
-
constructor(readonly value: TValue) {
|
|
24
|
-
super()
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
get $token(): TValue {
|
|
28
|
-
return this.value
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
validateInContext(input: unknown, ctx: ValidationContext) {
|
|
32
|
-
if (input === this.value) {
|
|
33
|
-
return ctx.success(this.value)
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// @NOTE: allow using the token instance itself (but convert to the actual
|
|
37
|
-
// token value)
|
|
38
|
-
if (
|
|
39
|
-
ctx.options.mode === 'parse' &&
|
|
40
|
-
input instanceof TokenSchema &&
|
|
41
|
-
input.value === this.value
|
|
42
|
-
) {
|
|
43
|
-
return ctx.success(this.value)
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (typeof input !== 'string') {
|
|
47
|
-
return ctx.issueUnexpectedType(input, 'token')
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return ctx.issueInvalidValue(input, [this.value])
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// When using the TokenSchema instance as data, let's serialize it to the
|
|
54
|
-
// token value
|
|
55
|
-
|
|
56
|
-
toJSON(): string {
|
|
57
|
-
return this.value
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
toString(): string {
|
|
61
|
-
return this.value
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Creates a token schema for Lexicon named constants.
|
|
67
|
-
*
|
|
68
|
-
* Tokens are used in Lexicon as named constants or enum-like values.
|
|
69
|
-
* The token instance can be used both as a schema validator and as
|
|
70
|
-
* the token value itself (it serializes to its string value).
|
|
71
|
-
*
|
|
72
|
-
* @param nsid - The NSID part of the token
|
|
73
|
-
* @param hash - The hash part of the token (defaults to 'main')
|
|
74
|
-
* @returns A new {@link TokenSchema} instance
|
|
75
|
-
*
|
|
76
|
-
* @example
|
|
77
|
-
* ```ts
|
|
78
|
-
* // Define tokens
|
|
79
|
-
* const requestLess = l.token('app.bsky.feed.defs', 'requestLess')
|
|
80
|
-
* const requestMore = l.token('app.bsky.feed.defs', 'requestMore')
|
|
81
|
-
*
|
|
82
|
-
* // Use as a value
|
|
83
|
-
* console.log(requestLess.toString()) // 'app.bsky.feed.defs#requestLess'
|
|
84
|
-
*
|
|
85
|
-
* // Use in union for validation
|
|
86
|
-
* const feedbackSchema = l.union([requestLess, requestMore])
|
|
87
|
-
*
|
|
88
|
-
* // Validate
|
|
89
|
-
* feedbackSchema.parse('app.bsky.feed.defs#requestLess') // success
|
|
90
|
-
*
|
|
91
|
-
* // Token instances can be used as values in other schemas
|
|
92
|
-
* const feedbackRequest = l.object({
|
|
93
|
-
* feedback: requestLess, // Accepts the token value
|
|
94
|
-
* })
|
|
95
|
-
* ```
|
|
96
|
-
*/
|
|
97
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
98
|
-
export function token<
|
|
99
|
-
const N extends NsidString,
|
|
100
|
-
const H extends string = 'main',
|
|
101
|
-
>(nsid: N, hash: H = 'main' as H) {
|
|
102
|
-
return new TokenSchema($type(nsid, hash))
|
|
103
|
-
}
|