@yamamotok/dataobject
Version:
Decorator based JSON serializer and deserializer.
26 lines • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.factoryValueTransform = void 0;
const CustomTransformerStrategy_1 = require("./factory/CustomTransformerStrategy");
const CustomTypeStrategy_1 = require("./factory/CustomTypeStrategy");
const IterableStrategy_1 = require("./factory/IterableStrategy");
const PrimitiveStrategy_1 = require("./factory/PrimitiveStrategy");
const Strategy_1 = require("./Strategy");
function factoryValueTransform(opts) {
const strategies = [
new CustomTransformerStrategy_1.CustomTransformerStrategy(),
new PrimitiveStrategy_1.PrimitiveStrategy(),
new IterableStrategy_1.IterableStrategy(factoryValueTransform),
new CustomTypeStrategy_1.CustomTypeStrategy(),
];
const sourceValue = opts.sourceValue;
for (const strategy of strategies) {
const res = strategy.apply(Object.assign(Object.assign({}, opts), { sourceValue }));
if (res instanceof Strategy_1.Transformed) {
return res.value;
}
}
return sourceValue;
}
exports.factoryValueTransform = factoryValueTransform;
//# sourceMappingURL=factoryValueTransform.js.map