forest-express
Version:
Official package for all Forest Express Lianas
40 lines (39 loc) • 1.99 kB
JavaScript
;
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;