UNPKG

forest-express

Version:

Official package for all Forest Express Lianas

40 lines (39 loc) 1.99 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _require = require('@forestadmin/context'), inject = _require.inject; var ResourceSerializer = require('../../serializers/resource'); var ParamsFieldsDeserializer = require('../../deserializers/params-fields'); var RecordSerializer = /*#__PURE__*/function () { function RecordSerializer(model, user, query) { var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : inject(), configStore = _ref.configStore; (0, _classCallCheck2["default"])(this, RecordSerializer); // user and query parameters are kept for retro-compatibility for v8. // Should be dropped when releasing the next major. if (!model) { throw new Error('RecordSerializer initialization error: missing first argument "model"'); } if (!(model instanceof Object)) { throw new Error('RecordSerializer initialization error: "model" argument should be an object (ex: `{ name: "myModel" }`)'); } if (!model.modelName) { model.modelName = model.name; } this.model = model; this.configStore = configStore; this.query = query; } (0, _createClass2["default"])(RecordSerializer, [{ key: "serialize", value: function serialize(records) { var _this$query; var meta = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; return new ResourceSerializer(this.configStore.Implementation, this.model, records, this.configStore.integrator, meta, null, null, (_this$query = this.query) !== null && _this$query !== void 0 && _this$query.fields ? new ParamsFieldsDeserializer(this.query.fields).perform() : null).perform(); } }]); return RecordSerializer; }(); module.exports = RecordSerializer;