Fully Typed Collection

Implementation for a collection resource that is fully typed:

import { Injectable } from '@angular/core';
import { ApiUrl, ApiRoute, CrudService } from 'ngx-crud';
import { RequestBody, ResponseBody } from './example.interface';

import { environment } from '@environments';

@Injectable()
@ApiUrl(environment.apiUrl)
@ApiRoute(environment.apiRoutes.example)
export class ExampleService extends CrudService<RequestBody, ResponseBody>
{
}

Each method types are generated by this default mapping:

RequestBody,
ResponseBody,
CreateRequestBody = RequestBody,
CreateResponseBody = ResponseBody,
ReadResponseBody = ResponseBody,
FindResponseBody = ResponseBody[],
UpdateRequestBody = RequestBody,
UpdateResponseBody = ResponseBody,
PatchRequestBody = Partial<RequestBody>,
PatchResponseBody = ResponseBody,
DeleteResponseBody = ResponseBody,
CustomRequestBody = RequestBody,
CustomResponseBody = ResponseBody | ResponseBody[]

Create a CrudServiceCustom that meets your API standard:

Last updated