tpmjs/packages/tools/official/schema-infer
Ajax Davis 5926373be6 chore: update ai package to 6.0.49 across all packages
- Updated all packages from ai@6.0.23 to ai@6.0.49
- Added pnpm override to ensure consistent version
- Created changeset for publishing affected packages
2026-01-25 11:33:03 +10:00
..
src feat: add 100+ official TPMJS tools 2025-12-31 22:55:56 +10:00
CHANGELOG.md chore: version packages 2025-12-31 23:54:47 +10:00
package.json chore: update ai package to 6.0.49 across all packages 2026-01-25 11:33:03 +10:00
README.md feat: add 100+ official TPMJS tools 2025-12-31 22:55:56 +10:00
tsconfig.json feat: add 100+ official TPMJS tools 2025-12-31 22:55:56 +10:00
tsup.config.ts feat: add 100+ official TPMJS tools 2025-12-31 22:55:56 +10:00

@tpmjs/tools-schema-infer

Infer JSON Schema from sample data.

Installation

npm install @tpmjs/tools-schema-infer

Usage

import { schemaInferTool } from '@tpmjs/tools-schema-infer';

const samples = [
  { name: 'Alice', age: 25, email: 'alice@example.com' },
  { name: 'Bob', age: 30, email: 'bob@example.com' }
];

const result = await schemaInferTool.execute({ samples });

console.log(result.schema);
// => {
//   $schema: "http://json-schema.org/draft-04/schema#",
//   type: "object",
//   properties: {
//     name: { type: "string" },
//     age: { type: "number" },
//     email: { type: "string" }
//   }
// }

console.log(result.sampleCount);
// => 2

console.log(result.properties);
// => ["name", "age", "email"]

Options

// Mark all fields as required
const result = await schemaInferTool.execute({
  samples: [{ name: 'Alice', age: 25 }],
  options: { required: true }
});

// Disallow additional properties
const result = await schemaInferTool.execute({
  samples: [{ name: 'Alice' }],
  options: { additionalProperties: false }
});

Features

  • Automatic type detection: Infers types from sample values
  • Multiple samples: Combine multiple samples for comprehensive schemas
  • Required fields: Optionally mark all properties as required
  • Nested objects: Handles nested object structures
  • Arrays: Detects array types and item schemas
  • JSON Schema standard: Generates standard JSON Schema Draft-04

Use Cases

  • Generate schemas from API responses
  • Create validation schemas from sample data
  • Document data structures automatically
  • Bootstrap TypeScript types from JSON examples

License

MIT