Use Case: Data Models
In the most simple case you are only interested in TypeScript interfaces, representing input and output models of the given OData service.
Runtime Dependencies
None. The generated interfaces do not have any dependencies themselves.
Generation Settings
Adapt your config file odata2ts.config.ts: Set the mode option to models.
The following example highlights the central settings for this use case:
import { ConfigFileOptions, EmitModes, Modes } from "@odata2ts/odata2ts";
const config: ConfigFileOptions = {
mode: Modes.models,
skipEditableModels: false,
skipIdModels: false,
skipOperations: false,
services: {
trippin: {
source: "resource/trippin.xml",
output: "build/trippin",
},
},
};
export default config;
Via the skipXXX options you can tell odata2ts to not generate model interfaces for certain things.
Usage
Update your metadata file whenever the server changes.
Run the gen-odata script:
- npm
- Yarn
- pnpm
- Bun
npm run gen-odata
yarn gen-odata
pnpm run gen-odata
bun run gen-odata
You can now use the generated models in your code. Import them through the index files the generator writes next to the artefacts — one per folder and one for the output directory as a whole:
import type { EditablePerson, Person } from "../build/trippin/index.js";
That way the import does not depend on which file a model ended up in; see Generated Artefacts.