kentico-cloud-model-generator-utility v2.1.0
Kentico Cloud Model Generator Utility
The purpose of this project is to help you generate strongly typed models out of Kentico Cloud item types. These models can then be used along with the Kentico Cloud Delivery SDK
Installation
Install package globally:
npm i kentico-cloud-model-generator-utility -g
Generating models with NPM script
To generate models with e.g. ES2015
and TypeScript
navigate to folder where you want to generate models and run:
kc-generate --projectId=xxx --moduleResolution=ES2015 --codeType=TypeScript
Configuration
codeType
- available options areTypeScript
andJavaScript
moduleResolution
- available options areCommonJs
andES2015
projectId
- represents the Kentico Cloud Project Id from which models will be generatedsecureAccessKey
- Secure access key required to authenticate requests with enabled secure access in Kentico Cloud project.strictPropertyInitalization
- Marks typescript properties with!
. This is useful if you know all your properties are required. strictPropertyInitalization in Typesript
Strongly typed linked item elements
There is no direct link between a element and a linked item that can be used inside that element. For this reason, you need to manually swap ContentItem
types with the types that represents that element.
Examples
ES2015 + Typescript
import { ContentItem, Elements } from 'kentico-cloud-delivery';
/**
* This class was generated by 'kentico-cloud-model-generator-utility' at Mon May 07 2018 11:10:02 GMT+0200 (Central Europe Daylight Time).
*
* Note: You can substitute 'ContentItem' type with another generated class. Generator doesn't have this information available
* and so its up to you to define relationship between models.
*/
export class Actor extends ContentItem {
public url: Elements.UrlSlugElement;
public firstName: Elements.TextElement;
public lastName: Elements.TextElement;
public photo: Elements.AssetsElement;
constructor() {
super({
propertyResolver: ((elementName: string) => {
if (elementName === 'first_name') {
return 'firstName';
}
if (elementName === 'last_name') {
return 'lastName';
}
return elementName;
})
});
}
}
ES2015 + JavaScript
import { ContentItem, Elements } from 'kentico-cloud-delivery';
/**
* This class was generated by 'kentico-cloud-model-generator-utility' at Wed May 09 2018 11:14:55 GMT+0200 (Central Europe Daylight Time).
*/
export class Actor extends ContentItem {
constructor() {
super({
propertyResolver: ((elementName) => {
if (elementName === 'first_name') {
return 'firstName';
}
if (elementName === 'last_name') {
return 'lastName';
}
return elementName;
})
});
}
}
CommonJs + JavaScript
var KenticoCloud = require('kentico-cloud-delivery');
/**
* This class was generated by 'kentico-cloud-model-generator-utility' at Wed May 09 2018 11:17:05 GMT+0200 (Central Europe Daylight Time).
*/
export class Actor extends KenticoCloud.ContentItem {
constructor() {
super({
propertyResolver: ((elementName) => {
if (elementName === 'first_name') {
return 'firstName';
}
if (elementName === 'last_name') {
return 'lastName';
}
return elementName;
})
});
}
}
Contribution & Feedback
Contributions are welcomed. Simply make a pull request.
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 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