0.0.4 • Published 1 year ago

odata-v2-types-generator v0.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

oData V2 Types Generator

Generate types from OData V2 metadata.

Usage

pnpm i -D odata-v2-types-generator
import { createTypesFromMetadata } from 'odata-v2-types-generator';
import { request } from 'undici';

const { body } = await request('https://services.odata.org/OData/OData.svc/$metadata', { method: 'GET' });
const xml = await body.text();

const tsSource = createTypesFromMetadata(xml);

Options

const tsSource = createTypesFromMetadata(xml, {
  onCreateEntity: (typeAlias, { metadata, entity }) => {
    ts.addSyntheticLeadingComment(
      typeAlias,
      ts.SyntaxKind.MultiLineCommentTrivia,
      `*\n* ${metadata.schema.Namespace}.${entity.Name}\n`,
      true,
    );
  },
  onCreateEntityProperty: (propertySignature, { metadata, entity, property }) => {},
  onCreateComplexType: (typeAlias, { metadata, complexType }) => {},
  onCreateComplexTypeProperty: (propertySignature, { metadata, complexType, property }) => {},
});

Output:

/**
 * ServiceName.EntityName
 */
export type EntityName = {
  Id: string;
  Name: string;
};

References

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago