Magical OData client generation for typescript. No more string
. No more any
!
npm i magic-odata-code-gen --save-dev; npm i magic-odata-client;
magic-odata-code-gen
is a dev dependency required to generate a client at compile time
magic-odata-client
is a dependency of your application. The generated code will use this packagenode node_modules/magic-odata-code-gen/dist/index.js --metadataUrl "https://raw.githubusercontent.com/ShaneGH/magic-odata/main/docs/sampleOdataMetadata.xml"
// import a generated client
import { ODataClient } from "./odataClient.js"
// create a client instance
const oDataClient = new ODataClient({
// inject a basic Http client
request: (input, init) => fetch(input, init),
// add a root URI
uriRoot: "https://my.odata.server/odata"
})
// use the client!
const popularBlogPosts = oDataClient.BlogPosts
// Use object deconstruction to choose query tools
.withQuery((blogPost, {
$orderby: {orderBy},
$skip,
$top
}) => [
// Combine query tools and fluent operations to build a query
blogPost.Comments.$count.gt(100).or(blogPost.Likes.gt(100)),
orderBy(blogPost.Name),
$skip(0),
$top(10)
])
.get();
Write safe, statically typed odata queries in typescript. No more string
. No more any
!
type
informationmagic-odata-client
minifies and compresses to ~10KBHttpClient
See Features.md
See Contributing.md