Skip to content

Commit fb65508

Browse files
feat(samples): add base64url support for contentEncoding keyword (#9246)
This change is JSON Schema 2020-12 specific.
1 parent 20c2c74 commit fb65508

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

src/core/plugins/json-schema-2020-12-samples/fn/class/EncoderRegistry.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import encodeQuotedPrintable from "../encoders/quoted-printable"
99
import encodeBase16 from "../encoders/base16"
1010
import encodeBase32 from "../encoders/base32"
1111
import encodeBase64 from "../encoders/base64"
12+
import encodeBase64Url from "../encoders/base64url"
1213

1314
class EncoderRegistry extends Registry {
1415
#defaults = {
@@ -19,6 +20,7 @@ class EncoderRegistry extends Registry {
1920
base16: encodeBase16,
2021
base32: encodeBase32,
2122
base64: encodeBase64,
23+
base64url: encodeBase64Url,
2224
}
2325

2426
data = { ...this.#defaults }
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/**
2+
* @prettier
3+
*/
4+
const encodeBase64Url = (content) => Buffer.from(content).toString("base64url")
5+
6+
export default encodeBase64Url

test/unit/core/plugins/json-schema-2020-12-samples/fn.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,15 @@ describe("sampleFromSchema", () => {
138138
).toStrictEqual(
139139
"aHR0cHM6Ly9leGFtcGxlLmNvbS9kaWN0aW9uYXJ5L3t0ZXJtOjF9L3t0ZXJtfQ=="
140140
)
141+
expect(
142+
sample({
143+
type: "string",
144+
format: "uri-template",
145+
contentEncoding: "base64url",
146+
})
147+
).toStrictEqual(
148+
"aHR0cHM6Ly9leGFtcGxlLmNvbS9kaWN0aW9uYXJ5L3t0ZXJtOjF9L3t0ZXJtfQ"
149+
)
141150
expect(
142151
sample({
143152
type: "string",

0 commit comments

Comments
 (0)