README
coveo-odata
Typescript OData client destined to be run in browsers. Highly inspired from o.js and odata-client.
Usage
Initialization
const client = new OData({
endpoint: "https://contoso.crm.dynamics.com/",
headers: [
{ name: "Content-Type", value: "application/json" },
{ name: "Accept", value: "application/json" },
{ name: "OData-MaxVersion", value: "4.0" },
{ name: "OData-Version", value: "4.0" }
]
});
Initializes the client on the endpoint https://contoso.crm.dynamics.com/
.
Resource
client
.resource("api/data")
.resource("v9.0")
.resource("accounts");
Configures the client to point toward https://contoso.crm.dynamics.com/api/data/v9.0/accounts
.
Query Options
client
.filter("name eq 'Fourth Coffee'")
.select(["name", "accountnumber"]);
Adds the query options ?$filter=name eq 'Fourth Coffee'&$select=name,accountnumber
. Also supports count
, orderby
, top
query options, among others.
GET, POST, etc.
client1.get();
client2.post(data);
Sending a Query
client.build<T>();
Launches an HTTP request and returns a Promise<T>
where T is the expected type of the response object.
Full example
Sending a Query
interface IAccount {
accountnumber: string;
name: string;
}
client
.resource("accounts")
.select(["name", "accountnumber"]);
.build<IODataCollection<IAccount>>()
.then(accounts => accounts.value.forEach(account => console.log(account.name)));
Install
npm install coveo-odata
The project is at its early stages, some components can still have lots of breaking changes between versions.
Building
Make sure you have Node JS and NPM installed.
Run npm install
to get the required dependencies and build the library.
Running the tests suite
Run npm test
to run all tests and get the code coverage!
Contributing
- Search the issues, if it is not already there, add one.
- Fork the repository
- Code Code Code
- Submit a pull request
- Wait for some nice guy to review and merge
License
Coveo-odata is distributed under MIT license.