TypeScript types for Enonic XP
This library contains TypeScript types for Enonic XP.
Code generation
We recommend using this library together with its sister library: enonic-ts-codegen. enonic-ts-codegen will create TypeScript interfaces
for your content-types. Those interfaces will be very useful together with this library.
Example
We have an Enonic service that returns an article by id.
import { Request, Response } from "enonic-types/lib/controller";
import { ContentLibrary } from "enonic-types/lib/content";
import { Article } from "../../site/content-types/article/article";
const contentLib: ContentLibrary = __non_webpack_require__("/lib/xp/content");
export function get(req: Request): Response {
const content = contentLib.get<Article>({ key: req.params.id! });
if (content !== null) {
const article: Article = content.data;
return { status: 200, body: article }
} else {
return { status: 404 };
}
}
- We import an
interface Article { ... }
generated by enonic-ts-codegen. - When we import something with
__non_webpack_require__
, we can give the library a type. In this case the type is ContentLibrary
. - We use the imported
Request
and Response
to control the shape of our controller. content
is of the type Content<Article> | null
, so we have to do a null check before proceiding.
Supported libraries