import { parseJSON5ExpressionRecord } from "https://deno.land/x/enzastdlib@v0.0.4/json5/record.ts";
Returns an expression parsed following a simplified JSON5 syntax using a a JSON Schema for type hinting.
WARNING: Only top-level keys are used for type hinting during parsing.
Examples
schema.ts
schema.ts
import type { JSONSchema, typeofschema } from 'https://deno.land/x/enzastdlib/schema/mod.ts';
export const MY_SCHEMA = {
type: 'object',
required: ['_'],
additionalProperties: false,
properties: {
myArray: {
type: 'array',
items: {
type: 'string',
},
},
},
} as const satisfies JSONSchema;
export type MySchemaType = typeofschema<typeof MY_SCHEMA>;
mod.ts
import { assertEquals } from 'https://deno.land/std/testing/asserts.ts';
import { parseJSON5ExpressionRecord } from 'https://deno.land/x/enzastdlib/json5/mod.ts';
import type { MySchemaType } from "./schema.ts";
import { MY_SCHEMA } from "./schema.ts";
const parsed = parseJSON5ExpressionRecord<MySchemaType>(MY_SCHEMA, {
myArray: `'Hello', 'World!'`,
});
assertEquals(parsed, {
myArray: ['Hello', 'World!'],
});
Parameters
schema: JSONSchemaObject
record: JSON5ExpressionRecord