@elsikora/nestjs-crud-automator
Version:
A library for automating the creation of CRUD operations in NestJS.
55 lines (51 loc) • 3.51 kB
JavaScript
'use strict';
require('../../enum/decorator/api/action.enum.js');
require('../../enum/decorator/api/authentication-type.enum.js');
require('../../enum/decorator/api/controller/get-list/query/filter/missing-behavior.enum.js');
require('../../enum/decorator/api/controller/get-list/query/unlisted-fields.enum.js');
require('../../enum/decorator/api/controller/relation-reference-shape.enum.js');
require('../../enum/decorator/api/controller/request/target.enum.js');
require('../../enum/decorator/api/controller/request/transformer-type.enum.js');
require('../../enum/decorator/api/controller/response-target.enum.js');
require('../../enum/decorator/api/dto-type.enum.js');
require('../../enum/decorator/api/function/context-storage-kind.enum.js');
require('../../enum/decorator/api/function/subscriber-transaction-expectation.enum.js');
require('../../enum/decorator/api/function/transaction/event-status.enum.js');
require('../../enum/decorator/api/function/transaction/failure-stage.enum.js');
require('../../enum/decorator/api/function/transaction/mode.enum.js');
require('../../enum/decorator/api/function/transaction/outcome.enum.js');
require('../../enum/decorator/api/function/transaction/owner-kind.enum.js');
require('../../enum/decorator/api/function/transaction/trace-type.enum.js');
require('../../enum/decorator/api/function/type.enum.js');
require('../../enum/decorator/api/on-type.enum.js');
require('../../enum/decorator/api/property/data-type.enum.js');
var identifier_enum = require('../../enum/decorator/api/property/date/identifier.enum.js');
require('../../enum/decorator/api/property/date/type.enum.js');
require('../../enum/decorator/api/property/desribe-type.enum.js');
require('../../enum/decorator/api/property/number-type.enum.js');
require('../../enum/decorator/api/property/string-type.enum.js');
require('../../enum/decorator/api/route/subscriber-authorization-expectation.enum.js');
require('../../enum/decorator/api/route/type.enum.js');
/**
* Helper utility for handling date-related properties in DTOs.
* Converts standard date fields (createdAt, updatedAt, receivedAt) into range queries
* with from/to variants for filtering.
* @param {string} propertyName - The original property name
* @param {EApiPropertyDateIdentifier} identifier - The date field identifier
* @returns {Array<{ identifier: EApiPropertyDateIdentifier; name: string }>} Array of date field variants with their identifiers
*/
const DtoHandleDateProperty = (propertyName, identifier) => {
const baseTypes = {
[identifier_enum.EApiPropertyDateIdentifier.CREATED_AT]: { from: identifier_enum.EApiPropertyDateIdentifier.CREATED_AT_FROM, to: identifier_enum.EApiPropertyDateIdentifier.CREATED_AT_TO },
[identifier_enum.EApiPropertyDateIdentifier.RECEIVED_AT]: { from: identifier_enum.EApiPropertyDateIdentifier.RECEIVED_AT_FROM, to: identifier_enum.EApiPropertyDateIdentifier.RECEIVED_AT_TO },
[identifier_enum.EApiPropertyDateIdentifier.UPDATED_AT]: { from: identifier_enum.EApiPropertyDateIdentifier.UPDATED_AT_FROM, to: identifier_enum.EApiPropertyDateIdentifier.UPDATED_AT_TO },
};
return baseTypes[identifier]
? [
{ identifier: baseTypes[identifier].from, name: `${propertyName}From` },
{ identifier: baseTypes[identifier].to, name: `${propertyName}To` },
]
: [{ identifier, name: propertyName }];
};
exports.DtoHandleDateProperty = DtoHandleDateProperty;
//# sourceMappingURL=handle-date-property.utility.js.map