@hdml/schemas
v0.0.2-alpha.5
Published
The `@hdml/schemas` package is a part of the **HDML-Utilities** monorepo and provides TypeScript types generated by the [FlatBuffers](https://google.github.io/flatbuffers/) tool. These types define the HyperData object model, facilitating consistent data
Downloads
279
Readme
@hdml/schemas
The @hdml/schemas
package is a part of the HDML-Utilities monorepo and provides TypeScript types generated by the FlatBuffers tool. These types define the HyperData object model, facilitating consistent data handling and transfer across the HDML ecosystem.
Features
- FlatBuffers-based: Uses FlatBuffers to ensure efficient and compact serialization and deserialization of data.
- TypeScript support: Provides strongly typed interfaces for the HyperData object model.
- Automated updates: Types are auto-generated from FlatBuffers schemas during the build process, ensuring synchronization with the latest schema definitions.
Installation
To include @hdml/schemas
in your project, install it using npm or yarn:
npm install @hdml/schemas
# or
yarn add @hdml/schemas
Usage
Import the generated types into your TypeScript project to leverage the HyperData object model:
import { HDOM } from "@hdml/types";
import { ConnectorTypesEnum } from "@hdml/schemas";
import { serialize, deserialize } from "@hdml/buffer";
const hdom: HDOM = {
includes: [],
connections: [
{
name: "",
description: null,
options: {
connector: ConnectorTypesEnum.Postgres,
parameters: {
host: "",
user: "",
password: "",
ssl: false,
},
},
},
],
models: [],
frames: [],
};
const buf = serialize(hdom);
const struct = deserialize(buf);
Schema Compilation
The @hdml/schemas
package is the target for FlatBuffers schema compilation. The schemas are maintained in a separate repository, HDML-Schemas, which is included in the monorepo as a git submodule. This structure ensures a clean separation of schema definitions and their generated outputs.
Development Workflow
- Update schemas: Make necessary changes to the FlatBuffers schemas in the HDML-Schemas repository.
- Remap commit: After updating the schemas, remap the corresponding commit from the HDML-Schemas repository to the monorepo by updating the git submodule reference.
- Compile schemas: Run the build process in the monorepo to generate updated TypeScript types from the schemas.
- Use updated types: The latest types are now available in the @hdml/schemas package for use in your projects.
License
Apache License Version 2.0