feat(samples): add base64url support for contentEncoding keyword (#9246)

This change is JSON Schema 2020-12 specific.
This commit is contained in:
Bas Schoenmaeckers
2023-11-13 16:01:27 +01:00
committed by GitHub
parent 20c2c74746
commit fb65508eb4
3 changed files with 17 additions and 0 deletions

View File

@@ -9,6 +9,7 @@ import encodeQuotedPrintable from "../encoders/quoted-printable"
import encodeBase16 from "../encoders/base16" import encodeBase16 from "../encoders/base16"
import encodeBase32 from "../encoders/base32" import encodeBase32 from "../encoders/base32"
import encodeBase64 from "../encoders/base64" import encodeBase64 from "../encoders/base64"
import encodeBase64Url from "../encoders/base64url"
class EncoderRegistry extends Registry { class EncoderRegistry extends Registry {
#defaults = { #defaults = {
@@ -19,6 +20,7 @@ class EncoderRegistry extends Registry {
base16: encodeBase16, base16: encodeBase16,
base32: encodeBase32, base32: encodeBase32,
base64: encodeBase64, base64: encodeBase64,
base64url: encodeBase64Url,
} }
data = { ...this.#defaults } data = { ...this.#defaults }

View File

@@ -0,0 +1,6 @@
/**
* @prettier
*/
const encodeBase64Url = (content) => Buffer.from(content).toString("base64url")
export default encodeBase64Url

View File

@@ -138,6 +138,15 @@ describe("sampleFromSchema", () => {
).toStrictEqual( ).toStrictEqual(
"aHR0cHM6Ly9leGFtcGxlLmNvbS9kaWN0aW9uYXJ5L3t0ZXJtOjF9L3t0ZXJtfQ==" "aHR0cHM6Ly9leGFtcGxlLmNvbS9kaWN0aW9uYXJ5L3t0ZXJtOjF9L3t0ZXJtfQ=="
) )
expect(
sample({
type: "string",
format: "uri-template",
contentEncoding: "base64url",
})
).toStrictEqual(
"aHR0cHM6Ly9leGFtcGxlLmNvbS9kaWN0aW9uYXJ5L3t0ZXJtOjF9L3t0ZXJtfQ"
)
expect( expect(
sample({ sample({
type: "string", type: "string",