UNPKG

@jesuferanmi/resource-transformer

Version:

Laravel-style API resources for NestJS apps

34 lines (33 loc) 955 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ResourceCollection = void 0; class ResourceCollection { constructor(resources, ResourceClass) { this.resources = resources; this.ResourceClass = ResourceClass; this.additionalMeta = {}; } /** * Transform the collection of resources into an array of JSON objects */ toJSON() { return this.resources.map(item => new this.ResourceClass(item).toJSON()); } /** * Add or merge additional metadata to the collection response */ withMeta(meta) { this.additionalMeta = { ...this.additionalMeta, ...meta }; return this; } /** * Return the full collection response with data and metadata */ toResponse() { return { data: this.toJSON(), meta: this.additionalMeta, }; } } exports.ResourceCollection = ResourceCollection;