Skip to main content
Module

x/enzastdlib/json5/record.ts>parseJSON5ExpressionRecord

enzastdlib is a set of TypeScript modules that follow a common design API philosophy aiming at sane defaults and ease-of-use targeting the Deno TypeScript runtime.
Latest
function parseJSON5ExpressionRecord
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

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!'],
});