tangled
alpha
login
or
join now
tynanpurdy.com
/
slices
forked from
slices.network/slices
0
fork
atom
Highly ambitious ATProtocol AppView service and sdks
0
fork
atom
overview
issues
pulls
pipelines
update docs
chadtmiller.com
5 months ago
3add19bc
833b9682
+26
-10
4 changed files
expand all
collapse all
unified
split
api
Cargo.lock
packages
lexicon-rs
Cargo.lock
Cargo.toml
README.md
+1
-1
api/Cargo.lock
···
2702
2702
2703
2703
[[package]]
2704
2704
name = "slices-lexicon"
2705
2705
-
version = "0.1.4"
2705
2705
+
version = "0.2.2"
2706
2706
dependencies = [
2707
2707
"base64 0.21.7",
2708
2708
"chrono",
+1
-1
packages/lexicon-rs/Cargo.lock
···
347
347
348
348
[[package]]
349
349
name = "slices-lexicon"
350
350
-
version = "0.2.1"
350
350
+
version = "0.2.2"
351
351
dependencies = [
352
352
"base64",
353
353
"chrono",
+1
-1
packages/lexicon-rs/Cargo.toml
···
1
1
[package]
2
2
name = "slices-lexicon"
3
3
-
version = "0.2.1"
3
3
+
version = "0.2.2"
4
4
edition = "2021"
5
5
description = "AT Protocol lexicon validation library for Slices"
6
6
license = "MIT"
+23
-7
packages/lexicon-rs/README.md
···
96
96
97
97
```javascript
98
98
import init, {
99
99
-
is_valid_nsid,
100
100
-
validate_lexicons_and_get_errors,
101
99
WasmLexiconValidator,
102
100
} from "./pkg/slices_lexicon.js";
103
101
···
107
105
const lexicons = [{
108
106
id: "com.example.post",
109
107
lexicon: 1,
110
110
-
defs: {/* ... */},
108
108
+
defs: {
109
109
+
main: {
110
110
+
type: "record",
111
111
+
key: "tid",
112
112
+
record: {
113
113
+
type: "object",
114
114
+
required: ["text"],
115
115
+
properties: {
116
116
+
text: { type: "string", maxLength: 300 }
117
117
+
}
118
118
+
}
119
119
+
}
120
120
+
}
111
121
}];
112
122
113
113
-
const errors = validate_lexicons_and_get_errors(JSON.stringify(lexicons));
114
114
-
console.log("Validation errors:", JSON.parse(errors));
123
123
+
const validator = new WasmLexiconValidator(JSON.stringify(lexicons));
124
124
+
const errorsJson = validator.validate_lexicons();
125
125
+
const errors = JSON.parse(errorsJson);
126
126
+
127
127
+
if (Object.keys(errors).length > 0) {
128
128
+
console.log("Validation errors:", errors);
129
129
+
} else {
130
130
+
console.log("All lexicons valid");
131
131
+
}
115
132
116
116
-
// Validate NSID format
117
117
-
const isValid = is_valid_nsid("com.example.post");
133
133
+
validator.free(); // Clean up WASM resources
118
134
```
119
135
120
136
## JavaScript/TypeScript Usage