amocrm-client
Version:
JS Library for AmoCRM
31 lines • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CollectionType = exports.MomentType = exports.applyMixins = exports.delay = void 0;
const tslib_1 = require("tslib");
const class_transformer_1 = require("class-transformer");
const moment_1 = tslib_1.__importDefault(require("moment"));
const ResourceCollection_1 = require("./api/ResourceCollection");
const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));
exports.delay = delay;
/* eslint-disable @typescript-eslint/no-explicit-any */
function applyMixins(baseClass, mixins) {
return mixins.reduce((target, mixin) => {
return mixin(target);
}, baseClass);
}
exports.applyMixins = applyMixins;
function MomentType() {
return (target, key) => {
(0, class_transformer_1.Transform)(({ value }) => (0, moment_1.default)(value), { toClassOnly: true })(target, key);
(0, class_transformer_1.Transform)(({ value }) => value.unix(), { toPlainOnly: true })(target, key);
};
}
exports.MomentType = MomentType;
function CollectionType() {
return (target, key) => {
(0, class_transformer_1.Transform)(({ value }) => new ResourceCollection_1.ResourceCollection(value), { toClassOnly: true })(target, key);
(0, class_transformer_1.Transform)(({ value }) => value.all(), { toPlainOnly: true })(target, key);
};
}
exports.CollectionType = CollectionType;
//# sourceMappingURL=util.js.map