kentico-cloud-delivery-typescript-sdk v3.1.0
Kentico Cloud Delivery JavaScript / TypeScript SDK
A client library for retrieving content from Kentico Cloud that supports JavaScript and TypeScript.
Node.js support
Visit GitHub repository to see how you can use this SDK in Node.js environment.
Quick start
npm i kentico-cloud-delivery-typescript-sdk --save
TypeScript (ES6)
import { ContentItem, Fields,TypeResolver,DeliveryClient,DeliveryClientConfig } from 'kentico-cloud-delivery-typescript-sdk';
/**
* This is optional, but it is considered a best practice to define your models
* so you can leverage intellisense and so that you can extend your models with
* additional properties / methods.
*/
export class Movie extends ContentItem {
public title: Fields.TextField;
}
/**
* Type resolvers make sure instance of proper class is created for your content types.
* If you don't use any custom models, return an empty array.
*/
let typeResolvers: TypeResolver[] = [
new TypeResolver('movie', () => new Movie()),
];
/**
* Create new instance of Delivery Client
*/
var deliveryClient = new DeliveryClient(
new DeliveryClientConfig('projectId', typeResolvers)
);
/**
* Get typed data from Cloud (note that the 'Movie' has to be registered in your type resolvers)
*/
deliveryClient.items<Movie>()
.type('movie')
.get()
.subscribe(response => {
console.log(response);
// you can access strongly types properties
console.log(response.items[0].title.text);
});
/**
* Get data without having custom models
*/
deliveryClient.items<ContentItem>()
.type('movie')
.get()
.subscribe(response => {
console.log(response);
// you can access properties same way as with strongly typed models, but note
// that you don't get any intellisense and the underlying object
// instance is of 'ContentItem' type
console.log(response.items[0].title.text);
});
JavaScript (CommonJS)
var KenticoCloud = require('kentico-cloud-delivery-typescript-sdk');
/**
* This is optional, but it is considered a best practice to define your models
* so that you can leverage intellisense and extend your models with
* additional methods.
*/
class Movie extends KenticoCloud.ContentItem {
constructor() {
super();
}
}
/**
* Type resolvers make sure instance of proper class is created for your content types.
* If you don't use any custom classes, return an empty array.
*/
var typeResolvers = [
new KenticoCloud.TypeResolver('movie', () => new Movie()),
];
/**
* Delivery client configuration object
*/
var config = new KenticoCloud.DeliveryClientConfig(projectId, typeResolvers);
/**
* Create new instance of Delivery Client
*/
var deliveryClient = new KenticoCloud.DeliveryClient(config);
/**
* Fetch all items of 'movie' type and given parameters from Kentico Cloud.
* Important note: SDK will convert items to your type if you registered it. For example,
* in this case the objects will be of 'Movie' type we defined above.
* If you don't use custom models, 'ContentItem' object instances will be returned.
*/
deliveryClient.items()
.type('movie')
.get()
.subscribe(response => console.log(response));
Testing
Note: You need to have Firefox
installed in order to run tests via Karma.
- Use
npm test
to run all tests. - Use
npm run dev-test
to run developer tests created indev-test
folder. Use this for your testing purposes.
Scripts
- Use
npm run build
to generate definitions & dist from the contents oflib
folder. - Use
npm run coveralls
to push coverage data directly to https://coveralls.io. Can be executed only after runningnpm test
. - Use
update-sdk-info
to run update SDK information by looking into package.json & writing it to a specialized file. This is picked up by delivery clients and used for identifying current SDK & version in request headers.
Publishing
In order to publish SDK first run one of following tasks to increase version & update sdk info file:
npm run new-patch
npm run new-minor
npm run new-major
And then run (note that tests and necessary scripts are automatically executed using the prepublishOnly
script):
npm run publish
Feedback & Contribution
Feedback & Contributions are welcomed. Feel free to take/start an issue & submit PR.
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago