Skip to content

⬅️ Back to Table of Contents

📄 json.ts

📊 Analysis Summary

Metric Count
🔧 Functions 4
📦 Imports 2

📚 Table of Contents

🛠️ File Location:

📂 packages/website/src/components/lib/json.ts

📦 Imports

Name Source
json5 json5
isRecord ../ast/utils

Functions

ensureObject(obj: unknown): Record<string, unknown>

Code
export function ensureObject(obj: unknown): Record<string, unknown> {
  return isRecord(obj) ? obj : {};
}
  • JSDoc:

    /**
     * Validates that the passed value is a record, if not return an empty object
     */
    

  • Parameters:

  • obj: unknown
  • Return Type: Record<string, unknown>
  • Calls:
  • isRecord (from ../ast/utils)

parseJSONObject(code: string): Record<string, unknown>

Code
export function parseJSONObject(code?: string): Record<string, unknown> {
  if (code) {
    try {
      return ensureObject(json5.parse(code));
    } catch (e) {
      console.error(e);
    }
  }
  return {};
}
  • JSDoc:

    /**
     * Parse a JSON string into an object. If the string is not valid JSON, return an empty object.
     */
    

  • Parameters:

  • code: string
  • Return Type: Record<string, unknown>
  • Calls:
  • ensureObject
  • json5.parse
  • console.error

toJson(cfg: unknown): string

Code
export function toJson(cfg: unknown): string {
  return JSON.stringify(cfg, null, 2);
}
  • JSDoc:

    /**
     * Convert a config object to a JSON string
     */
    

  • Parameters:

  • cfg: unknown
  • Return Type: string
  • Calls:
  • JSON.stringify

toJsonConfig(cfg: unknown, prop: string): string

Code
export function toJsonConfig(cfg: unknown, prop: string): string {
  return toJson({ [prop]: cfg });
}
  • JSDoc:

    /**
     * Convert a config object to a JSON string, wrapping it in a property
     */
    

  • Parameters:

  • cfg: unknown
  • prop: string
  • Return Type: string
  • Calls:
  • toJson