Working with Inline Data tables in TypeScript
Inline data handling for tables embedded directly in resource definitions.
Installation
Section titled “Installation”npm install fairspecGetting Started
Section titled “Getting Started”The Inline plugin provides:
loadInlineTable- Load tables from inline dataInlinePlugin- Plugin for framework integration
For example:
import { loadInlineTable } from "fairspec"
const table = await loadInlineTable({ data: [ { id: 1, name: "Alice" }, { id: 2, name: "Bob" } ]})Basic Usage
Section titled “Basic Usage”Object Format Data
Section titled “Object Format Data”The most common format is an array of objects:
import { loadInlineTable } from "fairspec"
const table = await loadInlineTable({ data: [ { id: 1, name: "english", native: "English" }, { id: 2, name: "chinese", native: "中文" }, { id: 3, name: "spanish", native: "Español" } ]})Array Format Data
Section titled “Array Format Data”You can also use array-of-arrays format with the first row as headers:
import { loadInlineTable } from "fairspec"
const table = await loadInlineTable({ data: [ ["id", "name", "native"], [1, "english", "English"], [2, "chinese", "中文"], [3, "spanish", "Español"] ]})Advanced Features
Section titled “Advanced Features”With Table Schema
Section titled “With Table Schema”Provide a Table Schema for type validation and conversion:
import { loadInlineTable } from "fairspec"
const table = await loadInlineTable({ data: [ { id: 1, name: "english", active: true }, { id: 2, name: "chinese", active: false } ], tableSchema: { properties: { id: { type: "integer" }, name: { type: "string" }, active: { type: "boolean" } } }})Mixed with File Data
Section titled “Mixed with File Data”Inline data can be used alongside file-based resources in datasets:
import { loadInlineTable, loadCsvTable } from "fairspec"
// Load inline reference dataconst languages = await loadInlineTable({ name: "languages", data: [ { id: 1, name: "english" }, { id: 2, name: "chinese" } ]})
// Load main data from fileconst users = await loadCsvTable({ name: "users", data: "users.csv"})Resource Metadata
Section titled “Resource Metadata”You can include metadata with inline data resources:
import { loadInlineTable } from "fairspec"
const table = await loadInlineTable({ name: "countries", title: "Country Reference Data", description: "ISO country codes and names", data: [ { code: "US", name: "United States" }, { code: "CN", name: "China" }, { code: "ES", name: "Spain" } ], tableSchema: { properties: { code: { type: "string" }, name: { type: "string" } } }})