@commercetools-test-data/core
Advanced tools
Comparing version
# @commercetools-test-data/core | ||
## 1.1.1 | ||
### Patch Changes | ||
- [`716fad7`](https://github.com/commercetools/test-data/commit/716fad74520d8bacf895756f5fffaef1216d2f69) [#15](https://github.com/commercetools/test-data/pull/15) Thanks [@emmenko](https://github.com/emmenko)! - Fix bundle compatibility with browser environments | ||
## 1.1.0 | ||
@@ -4,0 +10,0 @@ |
@@ -5,8 +5,22 @@ 'use strict'; | ||
var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property'); | ||
var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties'); | ||
var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors'); | ||
var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each'); | ||
var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor'); | ||
var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter'); | ||
var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols'); | ||
var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys'); | ||
var _includesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/includes'); | ||
var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat'); | ||
var _toConsumableArray = require('@babel/runtime-corejs3/helpers/toConsumableArray'); | ||
var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty'); | ||
var _Symbol$toPrimitive = require('@babel/runtime-corejs3/core-js-stable/symbol/to-primitive'); | ||
var _typeof = require('@babel/runtime-corejs3/helpers/typeof'); | ||
var _Object$fromEntries = require('@babel/runtime-corejs3/core-js-stable/object/from-entries'); | ||
var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map'); | ||
var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each'); | ||
var _objectWithoutProperties = require('@babel/runtime-corejs3/helpers/objectWithoutProperties'); | ||
require('@babel/runtime-corejs3/core-js-stable/instance/slice'); | ||
var testDataBot = require('@jackfranklin/test-data-bot'); | ||
var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray'); | ||
var _Object$entries = require('@babel/runtime-corejs3/core-js-stable/object/entries'); | ||
@@ -17,14 +31,40 @@ var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array'); | ||
var _Object$defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_Object$defineProperty); | ||
var _Object$defineProperties__default = /*#__PURE__*/_interopDefaultLegacy(_Object$defineProperties); | ||
var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefaultLegacy(_Object$getOwnPropertyDescriptors); | ||
var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_forEachInstanceProperty); | ||
var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefaultLegacy(_Object$getOwnPropertyDescriptor); | ||
var _filterInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_filterInstanceProperty); | ||
var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefaultLegacy(_Object$getOwnPropertySymbols); | ||
var _Object$keys__default = /*#__PURE__*/_interopDefaultLegacy(_Object$keys); | ||
var _includesInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_includesInstanceProperty); | ||
var _concatInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_concatInstanceProperty); | ||
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray); | ||
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty); | ||
var _Symbol$toPrimitive__default = /*#__PURE__*/_interopDefaultLegacy(_Symbol$toPrimitive); | ||
var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof); | ||
var _Object$fromEntries__default = /*#__PURE__*/_interopDefaultLegacy(_Object$fromEntries); | ||
var _mapInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_mapInstanceProperty); | ||
var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_forEachInstanceProperty); | ||
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties); | ||
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray); | ||
var _Object$entries__default = /*#__PURE__*/_interopDefaultLegacy(_Object$entries); | ||
var _Array$isArray__default = /*#__PURE__*/_interopDefaultLegacy(_Array$isArray); | ||
const isFunction = value => typeof value === 'function'; | ||
function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (enumerableOnly) symbols = _filterInstanceProperty__default['default'](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default['default'](object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } | ||
const isString = value => typeof value === 'string'; | ||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context4; _forEachInstanceProperty__default['default'](_context4 = ownKeys(Object(source), true)).call(_context4, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context5; _forEachInstanceProperty__default['default'](_context5 = ownKeys(Object(source))).call(_context5, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } } return target; } | ||
const isBuilderFunction = value => { | ||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof__default['default'](key) === "symbol" ? key : String(key); } | ||
function _toPrimitive(input, hint) { if (_typeof__default['default'](input) !== "object" || input === null) return input; var prim = input[_Symbol$toPrimitive__default['default']]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof__default['default'](res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } | ||
var isFunction = function isFunction(value) { | ||
return typeof value === 'function'; | ||
}; | ||
var isString = function isString(value) { | ||
return typeof value === 'string'; | ||
}; | ||
var isBuilderFunction = function isBuilderFunction(value) { | ||
var _context; | ||
@@ -35,15 +75,20 @@ | ||
const omitOne = (entity, prop) => { | ||
var omitOne = function omitOne(entity, prop) { | ||
var _context2; | ||
// eslint-disable-next-line @typescript-eslint/no-unused-vars | ||
const { | ||
[prop]: deleted, | ||
...newState | ||
} = entity; | ||
var deleted = entity[prop], | ||
newState = _objectWithoutProperties__default['default'](entity, _mapInstanceProperty__default['default'](_context2 = [prop]).call(_context2, _toPropertyKey)); | ||
return newState; | ||
}; | ||
const omitMany = (entity, ...props) => { | ||
let result = entity; | ||
var omitMany = function omitMany(entity) { | ||
var result = entity; | ||
_forEachInstanceProperty__default['default'](props).call(props, prop => { | ||
for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
props[_key - 1] = arguments[_key]; | ||
} | ||
_forEachInstanceProperty__default['default'](props).call(props, function (prop) { | ||
result = omitOne(result, prop); | ||
@@ -55,9 +100,15 @@ }); | ||
const pickMany = (entity, ...props) => { | ||
const entries = _mapInstanceProperty__default['default'](props).call(props, prop => [prop, entity[prop]]); | ||
var pickMany = function pickMany(entity) { | ||
for (var _len2 = arguments.length, props = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { | ||
props[_key2 - 1] = arguments[_key2]; | ||
} | ||
var entries = _mapInstanceProperty__default['default'](props).call(props, function (prop) { | ||
return [prop, entity[prop]]; | ||
}); | ||
return _Object$fromEntries__default['default'](entries); | ||
}; | ||
const convertTransformNameToBuildName = transformName => { | ||
var convertTransformNameToBuildName = function convertTransformNameToBuildName(transformName) { | ||
switch (transformName) { | ||
@@ -74,20 +125,27 @@ case 'default': | ||
default: | ||
throw new Error(`Unknown property build name ${transformName}`); | ||
throw new Error("Unknown property build name ".concat(transformName)); | ||
} | ||
}; | ||
const toExpandedReference = typeId => data => typeId && data?.id ? { | ||
typeId, | ||
id: data.id, | ||
obj: data | ||
} : null; | ||
var toExpandedReference = function toExpandedReference(typeId) { | ||
return function (data) { | ||
return typeId && (data === null || data === void 0 ? void 0 : data.id) ? { | ||
typeId: typeId, | ||
id: data.id, | ||
obj: data | ||
} : null; | ||
}; | ||
}; | ||
const toRestPaginatedQueryResult = (list, { | ||
total = 100, | ||
offset = 0 | ||
} = {}) => { | ||
var toRestPaginatedQueryResult = function toRestPaginatedQueryResult(list) { | ||
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref$total = _ref.total, | ||
total = _ref$total === void 0 ? 100 : _ref$total, | ||
_ref$offset = _ref.offset, | ||
offset = _ref$offset === void 0 ? 0 : _ref$offset; | ||
return { | ||
count: list.length || 0, | ||
total, | ||
offset, | ||
total: total, | ||
offset: offset, | ||
results: list | ||
@@ -97,17 +155,20 @@ }; | ||
const toGraphqlPaginatedQueryResult = (list, { | ||
name, | ||
...remainingOptions | ||
}) => { | ||
return { | ||
__typename: `${name}QueryResult`, | ||
...toRestPaginatedQueryResult(list, remainingOptions) | ||
}; | ||
var toGraphqlPaginatedQueryResult = function toGraphqlPaginatedQueryResult(list, _ref2) { | ||
var name = _ref2.name, | ||
remainingOptions = _objectWithoutProperties__default['default'](_ref2, ["name"]); | ||
return _objectSpread({ | ||
__typename: "".concat(name, "QueryResult") | ||
}, toRestPaginatedQueryResult(list, remainingOptions)); | ||
}; | ||
const buildField = (builder, transformName = 'default', meta) => { | ||
const buildName = convertTransformNameToBuildName(transformName); | ||
var buildField = function buildField(builder) { | ||
var transformName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; | ||
var meta = arguments.length > 2 ? arguments[2] : undefined; | ||
var buildName = convertTransformNameToBuildName(transformName); | ||
if (!builder[buildName]) { | ||
throw new Error(`Builder with name '${buildName}' does not exist on field '${meta?.fieldToBuild}'.`); | ||
var _context3; | ||
throw new Error(_concatInstanceProperty__default['default'](_context3 = "Builder with name '".concat(buildName, "' does not exist on field '")).call(_context3, meta === null || meta === void 0 ? void 0 : meta.fieldToBuild, "'.")); | ||
} // We need to cast this to `() => Model` as otherwise the value is unknown. | ||
@@ -120,46 +181,51 @@ // We know it's a function because of the proxy builder. | ||
const buildFields = (builders, transformName = 'default', meta) => _mapInstanceProperty__default['default'](builders).call(builders, builder => buildField(builder, transformName, meta)); | ||
var buildFields = function buildFields(builders) { | ||
var transformName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; | ||
var meta = arguments.length > 2 ? arguments[2] : undefined; | ||
return _mapInstanceProperty__default['default'](builders).call(builders, function (builder) { | ||
return buildField(builder, transformName, meta); | ||
}); | ||
}; | ||
const buildGraphqlList = (builders, { | ||
name, | ||
total, | ||
offset | ||
}) => { | ||
var buildGraphqlList = function buildGraphqlList(builders, _ref3) { | ||
var name = _ref3.name, | ||
total = _ref3.total, | ||
offset = _ref3.offset; | ||
return toGraphqlPaginatedQueryResult(buildFields(builders, 'graphql'), { | ||
name, | ||
total, | ||
offset | ||
name: name, | ||
total: total, | ||
offset: offset | ||
}); | ||
}; | ||
const buildRestList = (builders, { | ||
total, | ||
offset | ||
}) => { | ||
var buildRestList = function buildRestList(builders, _ref4) { | ||
var total = _ref4.total, | ||
offset = _ref4.offset; | ||
return toRestPaginatedQueryResult(buildFields(builders, 'rest'), { | ||
total, | ||
offset | ||
total: total, | ||
offset: offset | ||
}); | ||
}; | ||
function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (enumerableOnly) symbols = _filterInstanceProperty__default['default'](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default['default'](object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } | ||
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context4; _forEachInstanceProperty__default['default'](_context4 = ownKeys$1(Object(source), true)).call(_context4, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context5; _forEachInstanceProperty__default['default'](_context5 = ownKeys$1(Object(source))).call(_context5, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } } return target; } | ||
// Therefore, we define a custom constructor that requires a different return type. | ||
const CustomProxy = Proxy; // Internal state object to build up the final model. | ||
var CustomProxy = Proxy; // Internal state object to build up the final model. | ||
const createState = ({ | ||
initial | ||
} = {}) => { | ||
let state = initial ? { ...initial | ||
} : {}; | ||
var createState = function createState() { | ||
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, | ||
initial = _ref.initial; | ||
var state = initial ? _objectSpread$1({}, initial) : {}; | ||
return { | ||
get: () => state, | ||
merge: update => { | ||
state = { ...state, | ||
...update | ||
}; | ||
get: function get() { | ||
return state; | ||
}, | ||
set: (prop, value) => { | ||
state = { ...state, | ||
[prop]: value | ||
}; | ||
merge: function merge(update) { | ||
state = _objectSpread$1(_objectSpread$1({}, state), update); | ||
}, | ||
set: function set(prop, value) { | ||
state = _objectSpread$1(_objectSpread$1({}, state), {}, _defineProperty__default['default']({}, prop, value)); | ||
} | ||
@@ -169,14 +235,17 @@ }; | ||
function PropertyBuilder({ | ||
defaults | ||
} = {}) { | ||
const state = createState({ | ||
function PropertyBuilder() { | ||
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, | ||
defaults = _ref2.defaults; | ||
var state = createState({ | ||
initial: defaults | ||
}); | ||
const builder = new CustomProxy({}, { | ||
get(_target, prop) { | ||
var builder = new CustomProxy({}, { | ||
get: function get(_target, prop) { | ||
switch (prop) { | ||
case 'get': | ||
{ | ||
return () => state.get(); | ||
return function () { | ||
return state.get(); | ||
}; | ||
} | ||
@@ -186,3 +255,3 @@ | ||
{ | ||
return update => { | ||
return function (update) { | ||
state.merge(update); | ||
@@ -195,3 +264,3 @@ return builder; | ||
{ | ||
return fnOrValue => { | ||
return function (fnOrValue) { | ||
if (isFunction(fnOrValue)) { | ||
@@ -208,3 +277,2 @@ state.merge(fnOrValue(state.get())); | ||
} | ||
}); | ||
@@ -214,23 +282,24 @@ return builder; | ||
function Builder({ | ||
defaults, | ||
generator, | ||
transformers | ||
} = {}) { | ||
const propertyBuilder = PropertyBuilder({ | ||
defaults | ||
function Builder() { | ||
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, | ||
defaults = _ref3.defaults, | ||
generator = _ref3.generator, | ||
transformers = _ref3.transformers; | ||
var propertyBuilder = PropertyBuilder({ | ||
defaults: defaults | ||
}); | ||
const applyGeneratorIfExists = () => { | ||
var applyGeneratorIfExists = function applyGeneratorIfExists() { | ||
if (!generator) return {}; | ||
return generator.generate({ | ||
defaults | ||
defaults: defaults | ||
}); | ||
}; | ||
const builder = { | ||
var builder = { | ||
generated: null, | ||
proxy: new CustomProxy({}, { | ||
get(_target, propToSet) { | ||
var _context; | ||
get: function get(_target, propToSet) { | ||
var _context3; | ||
@@ -242,15 +311,19 @@ if (isBuilderFunction(propToSet)) { | ||
return ({ | ||
omitFields = [], | ||
keepFields = [] | ||
} = {}) => { | ||
const built = { ...builder.generated, | ||
...propertyBuilder.get() | ||
}; | ||
let transformed = built; | ||
return function () { | ||
var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, | ||
_ref4$omitFields = _ref4.omitFields, | ||
omitFields = _ref4$omitFields === void 0 ? [] : _ref4$omitFields, | ||
_ref4$keepFields = _ref4.keepFields, | ||
keepFields = _ref4$keepFields === void 0 ? [] : _ref4$keepFields; | ||
var built = _objectSpread$1(_objectSpread$1({}, builder.generated), propertyBuilder.get()); | ||
var transformed = built; | ||
switch (propToSet) { | ||
case 'build': | ||
{ | ||
transformed = transformers?.default?.transform(built) ?? built; | ||
var _transformers$default, _transformers$default2; | ||
transformed = (_transformers$default = transformers === null || transformers === void 0 ? void 0 : (_transformers$default2 = transformers.default) === null || _transformers$default2 === void 0 ? void 0 : _transformers$default2.transform(built)) !== null && _transformers$default !== void 0 ? _transformers$default : built; | ||
break; | ||
@@ -261,3 +334,5 @@ } | ||
{ | ||
transformed = transformers?.graphql?.transform(built) ?? built; | ||
var _transformers$graphql, _transformers$graphql2; | ||
transformed = (_transformers$graphql = transformers === null || transformers === void 0 ? void 0 : (_transformers$graphql2 = transformers.graphql) === null || _transformers$graphql2 === void 0 ? void 0 : _transformers$graphql2.transform(built)) !== null && _transformers$graphql !== void 0 ? _transformers$graphql : built; | ||
break; | ||
@@ -268,3 +343,5 @@ } | ||
{ | ||
transformed = transformers?.rest?.transform(built) ?? built; | ||
var _transformers$rest$tr, _transformers$rest; | ||
transformed = (_transformers$rest$tr = transformers === null || transformers === void 0 ? void 0 : (_transformers$rest = transformers.rest) === null || _transformers$rest === void 0 ? void 0 : _transformers$rest.transform(built)) !== null && _transformers$rest$tr !== void 0 ? _transformers$rest$tr : built; | ||
break; | ||
@@ -275,7 +352,11 @@ } | ||
if (keepFields.length > 0) { | ||
return pickMany(transformed, ...keepFields); | ||
var _context; | ||
return pickMany.apply(void 0, _concatInstanceProperty__default['default'](_context = [transformed]).call(_context, _toConsumableArray__default['default'](keepFields))); | ||
} | ||
if (omitFields.length > 0) { | ||
return omitMany(transformed, ...omitFields); | ||
var _context2; | ||
return omitMany.apply(void 0, _concatInstanceProperty__default['default'](_context2 = [transformed]).call(_context2, _toConsumableArray__default['default'](omitFields))); | ||
} | ||
@@ -295,7 +376,7 @@ | ||
if (isString(propToSet) && _includesInstanceProperty__default['default'](_context = ['__esModule', 'default']).call(_context, propToSet)) { | ||
if (isString(propToSet) && _includesInstanceProperty__default['default'](_context3 = ['__esModule', 'default']).call(_context3, propToSet)) { | ||
return builder.proxy; | ||
} | ||
return fnOrValue => { | ||
return function (fnOrValue) { | ||
if (!builder.generated) { | ||
@@ -314,3 +395,2 @@ builder.generated = applyGeneratorIfExists(); // Make the generated data available as functional chaining of the builder. | ||
} | ||
}) | ||
@@ -324,14 +404,15 @@ }; | ||
function Generator({ | ||
fields, | ||
postBuild | ||
}) { | ||
const originalGenerate = testDataBot.build({ | ||
fields, | ||
postBuild | ||
function Generator(_ref) { | ||
var fields = _ref.fields, | ||
postBuild = _ref.postBuild; | ||
var originalGenerate = testDataBot.build({ | ||
fields: fields, | ||
postBuild: postBuild | ||
}); | ||
return { | ||
generate({ | ||
defaults = {} | ||
} = {}) { | ||
generate: function generate() { | ||
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, | ||
_ref2$defaults = _ref2.defaults, | ||
defaults = _ref2$defaults === void 0 ? {} : _ref2$defaults; | ||
return originalGenerate({ | ||
@@ -341,27 +422,28 @@ overrides: defaults | ||
} | ||
}; | ||
} | ||
function ownKeys$2(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (enumerableOnly) symbols = _filterInstanceProperty__default['default'](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default['default'](object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } | ||
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context2; _forEachInstanceProperty__default['default'](_context2 = ownKeys$2(Object(source), true)).call(_context2, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context3; _forEachInstanceProperty__default['default'](_context3 = ownKeys$2(Object(source))).call(_context3, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } } return target; } | ||
function Transformer(transformType, transformOptions) { | ||
function transform(fields) { | ||
let transformedFields = { ...fields | ||
}; | ||
const fieldsReplacer = transformOptions?.replaceFields; | ||
const fieldsAdder = transformOptions?.addFields; | ||
const fieldsToRemove = transformOptions?.removeFields; | ||
const fieldsToBuild = transformOptions?.buildFields; | ||
var transformedFields = _objectSpread$2({}, fields); | ||
var fieldsReplacer = transformOptions === null || transformOptions === void 0 ? void 0 : transformOptions.replaceFields; | ||
var fieldsAdder = transformOptions === null || transformOptions === void 0 ? void 0 : transformOptions.addFields; | ||
var fieldsToRemove = transformOptions === null || transformOptions === void 0 ? void 0 : transformOptions.removeFields; | ||
var fieldsToBuild = transformOptions === null || transformOptions === void 0 ? void 0 : transformOptions.buildFields; | ||
if (fieldsToBuild) { | ||
_forEachInstanceProperty__default['default'](fieldsToBuild).call(fieldsToBuild, fieldToBuild => { | ||
const field = transformedFields[fieldToBuild]; // Build only fields that are not null or undefined | ||
_forEachInstanceProperty__default['default'](fieldsToBuild).call(fieldsToBuild, function (fieldToBuild) { | ||
var field = transformedFields[fieldToBuild]; // Build only fields that are not null or undefined | ||
if (field) { | ||
transformedFields = { ...transformedFields, | ||
[fieldToBuild]: _Array$isArray__default['default'](field) ? buildFields(field, transformType, { | ||
fieldToBuild | ||
}) : buildField(field, transformType, { | ||
fieldToBuild | ||
}) | ||
}; | ||
transformedFields = _objectSpread$2(_objectSpread$2({}, transformedFields), {}, _defineProperty__default['default']({}, fieldToBuild, _Array$isArray__default['default'](field) ? buildFields(field, transformType, { | ||
fieldToBuild: fieldToBuild | ||
}) : buildField(field, transformType, { | ||
fieldToBuild: fieldToBuild | ||
}))); | ||
} | ||
@@ -381,11 +463,11 @@ }); | ||
if (fieldsAdder) { | ||
console.warn(`The "replaceFields" option takes precedence over the "addFields" option, making it unsed.`); | ||
console.warn("The \"replaceFields\" option takes precedence over the \"addFields\" option, making it unsed."); | ||
} | ||
if (fieldsToRemove) { | ||
console.warn(`The "replaceFields" option takes precedence over the "removeFields" option, making it unsed.`); | ||
console.warn("The \"replaceFields\" option takes precedence over the \"removeFields\" option, making it unsed."); | ||
} | ||
return fieldsReplacer({ | ||
fields | ||
fields: fields | ||
}); | ||
@@ -397,11 +479,13 @@ } | ||
const fieldsToAdd = fieldsAdder({ | ||
fields | ||
var fieldsToAdd = fieldsAdder({ | ||
fields: fields | ||
}); | ||
_forEachInstanceProperty__default['default'](_context = _Object$entries__default['default'](fieldsToAdd)).call(_context, ([fieldName, fieldValue]) => { | ||
_forEachInstanceProperty__default['default'](_context = _Object$entries__default['default'](fieldsToAdd)).call(_context, function (_ref) { | ||
var _ref2 = _slicedToArray__default['default'](_ref, 2), | ||
fieldName = _ref2[0], | ||
fieldValue = _ref2[1]; | ||
if (transformedFields[fieldName]) return; | ||
transformedFields = { ...transformedFields, | ||
[fieldName]: fieldValue | ||
}; | ||
transformedFields = _objectSpread$2(_objectSpread$2({}, transformedFields), {}, _defineProperty__default['default']({}, fieldName, fieldValue)); | ||
}); | ||
@@ -411,3 +495,3 @@ } | ||
if (fieldsToRemove) { | ||
_forEachInstanceProperty__default['default'](fieldsToRemove).call(fieldsToRemove, fieldToRemove => { | ||
_forEachInstanceProperty__default['default'](fieldsToRemove).call(fieldsToRemove, function (fieldToRemove) { | ||
delete transformedFields[fieldToRemove]; | ||
@@ -422,3 +506,3 @@ }); | ||
type: transformType, | ||
transform | ||
transform: transform | ||
}; | ||
@@ -425,0 +509,0 @@ } |
@@ -0,16 +1,42 @@ | ||
import _Object$defineProperty from '@babel/runtime-corejs3/core-js-stable/object/define-property'; | ||
import _Object$defineProperties from '@babel/runtime-corejs3/core-js-stable/object/define-properties'; | ||
import _Object$getOwnPropertyDescriptors from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors'; | ||
import _forEachInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/for-each'; | ||
import _Object$getOwnPropertyDescriptor from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor'; | ||
import _filterInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/filter'; | ||
import _Object$getOwnPropertySymbols from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols'; | ||
import _Object$keys from '@babel/runtime-corejs3/core-js-stable/object/keys'; | ||
import _includesInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/includes'; | ||
import _concatInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/concat'; | ||
import _toConsumableArray from '@babel/runtime-corejs3/helpers/toConsumableArray'; | ||
import _defineProperty from '@babel/runtime-corejs3/helpers/defineProperty'; | ||
import _Symbol$toPrimitive from '@babel/runtime-corejs3/core-js-stable/symbol/to-primitive'; | ||
import _typeof from '@babel/runtime-corejs3/helpers/typeof'; | ||
import _Object$fromEntries from '@babel/runtime-corejs3/core-js-stable/object/from-entries'; | ||
import _mapInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/map'; | ||
import _forEachInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/for-each'; | ||
import _objectWithoutProperties from '@babel/runtime-corejs3/helpers/objectWithoutProperties'; | ||
import '@babel/runtime-corejs3/core-js-stable/instance/slice'; | ||
import { build } from '@jackfranklin/test-data-bot'; | ||
export { bool, fake, oneOf, sequence } from '@jackfranklin/test-data-bot'; | ||
import _slicedToArray from '@babel/runtime-corejs3/helpers/slicedToArray'; | ||
import _Object$entries from '@babel/runtime-corejs3/core-js-stable/object/entries'; | ||
import _Array$isArray from '@babel/runtime-corejs3/core-js-stable/array/is-array'; | ||
const isFunction = value => typeof value === 'function'; | ||
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } | ||
const isString = value => typeof value === 'string'; | ||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context4; _forEachInstanceProperty(_context4 = ownKeys(Object(source), true)).call(_context4, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context5; _forEachInstanceProperty(_context5 = ownKeys(Object(source))).call(_context5, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; } | ||
const isBuilderFunction = value => { | ||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } | ||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[_Symbol$toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } | ||
var isFunction = function isFunction(value) { | ||
return typeof value === 'function'; | ||
}; | ||
var isString = function isString(value) { | ||
return typeof value === 'string'; | ||
}; | ||
var isBuilderFunction = function isBuilderFunction(value) { | ||
var _context; | ||
@@ -21,15 +47,20 @@ | ||
const omitOne = (entity, prop) => { | ||
var omitOne = function omitOne(entity, prop) { | ||
var _context2; | ||
// eslint-disable-next-line @typescript-eslint/no-unused-vars | ||
const { | ||
[prop]: deleted, | ||
...newState | ||
} = entity; | ||
var deleted = entity[prop], | ||
newState = _objectWithoutProperties(entity, _mapInstanceProperty(_context2 = [prop]).call(_context2, _toPropertyKey)); | ||
return newState; | ||
}; | ||
const omitMany = (entity, ...props) => { | ||
let result = entity; | ||
var omitMany = function omitMany(entity) { | ||
var result = entity; | ||
_forEachInstanceProperty(props).call(props, prop => { | ||
for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
props[_key - 1] = arguments[_key]; | ||
} | ||
_forEachInstanceProperty(props).call(props, function (prop) { | ||
result = omitOne(result, prop); | ||
@@ -41,9 +72,15 @@ }); | ||
const pickMany = (entity, ...props) => { | ||
const entries = _mapInstanceProperty(props).call(props, prop => [prop, entity[prop]]); | ||
var pickMany = function pickMany(entity) { | ||
for (var _len2 = arguments.length, props = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { | ||
props[_key2 - 1] = arguments[_key2]; | ||
} | ||
var entries = _mapInstanceProperty(props).call(props, function (prop) { | ||
return [prop, entity[prop]]; | ||
}); | ||
return _Object$fromEntries(entries); | ||
}; | ||
const convertTransformNameToBuildName = transformName => { | ||
var convertTransformNameToBuildName = function convertTransformNameToBuildName(transformName) { | ||
switch (transformName) { | ||
@@ -60,20 +97,27 @@ case 'default': | ||
default: | ||
throw new Error(`Unknown property build name ${transformName}`); | ||
throw new Error("Unknown property build name ".concat(transformName)); | ||
} | ||
}; | ||
const toExpandedReference = typeId => data => typeId && data?.id ? { | ||
typeId, | ||
id: data.id, | ||
obj: data | ||
} : null; | ||
var toExpandedReference = function toExpandedReference(typeId) { | ||
return function (data) { | ||
return typeId && (data === null || data === void 0 ? void 0 : data.id) ? { | ||
typeId: typeId, | ||
id: data.id, | ||
obj: data | ||
} : null; | ||
}; | ||
}; | ||
const toRestPaginatedQueryResult = (list, { | ||
total = 100, | ||
offset = 0 | ||
} = {}) => { | ||
var toRestPaginatedQueryResult = function toRestPaginatedQueryResult(list) { | ||
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref$total = _ref.total, | ||
total = _ref$total === void 0 ? 100 : _ref$total, | ||
_ref$offset = _ref.offset, | ||
offset = _ref$offset === void 0 ? 0 : _ref$offset; | ||
return { | ||
count: list.length || 0, | ||
total, | ||
offset, | ||
total: total, | ||
offset: offset, | ||
results: list | ||
@@ -83,17 +127,20 @@ }; | ||
const toGraphqlPaginatedQueryResult = (list, { | ||
name, | ||
...remainingOptions | ||
}) => { | ||
return { | ||
__typename: `${name}QueryResult`, | ||
...toRestPaginatedQueryResult(list, remainingOptions) | ||
}; | ||
var toGraphqlPaginatedQueryResult = function toGraphqlPaginatedQueryResult(list, _ref2) { | ||
var name = _ref2.name, | ||
remainingOptions = _objectWithoutProperties(_ref2, ["name"]); | ||
return _objectSpread({ | ||
__typename: "".concat(name, "QueryResult") | ||
}, toRestPaginatedQueryResult(list, remainingOptions)); | ||
}; | ||
const buildField = (builder, transformName = 'default', meta) => { | ||
const buildName = convertTransformNameToBuildName(transformName); | ||
var buildField = function buildField(builder) { | ||
var transformName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; | ||
var meta = arguments.length > 2 ? arguments[2] : undefined; | ||
var buildName = convertTransformNameToBuildName(transformName); | ||
if (!builder[buildName]) { | ||
throw new Error(`Builder with name '${buildName}' does not exist on field '${meta?.fieldToBuild}'.`); | ||
var _context3; | ||
throw new Error(_concatInstanceProperty(_context3 = "Builder with name '".concat(buildName, "' does not exist on field '")).call(_context3, meta === null || meta === void 0 ? void 0 : meta.fieldToBuild, "'.")); | ||
} // We need to cast this to `() => Model` as otherwise the value is unknown. | ||
@@ -106,46 +153,51 @@ // We know it's a function because of the proxy builder. | ||
const buildFields = (builders, transformName = 'default', meta) => _mapInstanceProperty(builders).call(builders, builder => buildField(builder, transformName, meta)); | ||
var buildFields = function buildFields(builders) { | ||
var transformName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; | ||
var meta = arguments.length > 2 ? arguments[2] : undefined; | ||
return _mapInstanceProperty(builders).call(builders, function (builder) { | ||
return buildField(builder, transformName, meta); | ||
}); | ||
}; | ||
const buildGraphqlList = (builders, { | ||
name, | ||
total, | ||
offset | ||
}) => { | ||
var buildGraphqlList = function buildGraphqlList(builders, _ref3) { | ||
var name = _ref3.name, | ||
total = _ref3.total, | ||
offset = _ref3.offset; | ||
return toGraphqlPaginatedQueryResult(buildFields(builders, 'graphql'), { | ||
name, | ||
total, | ||
offset | ||
name: name, | ||
total: total, | ||
offset: offset | ||
}); | ||
}; | ||
const buildRestList = (builders, { | ||
total, | ||
offset | ||
}) => { | ||
var buildRestList = function buildRestList(builders, _ref4) { | ||
var total = _ref4.total, | ||
offset = _ref4.offset; | ||
return toRestPaginatedQueryResult(buildFields(builders, 'rest'), { | ||
total, | ||
offset | ||
total: total, | ||
offset: offset | ||
}); | ||
}; | ||
function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } | ||
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context4; _forEachInstanceProperty(_context4 = ownKeys$1(Object(source), true)).call(_context4, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context5; _forEachInstanceProperty(_context5 = ownKeys$1(Object(source))).call(_context5, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; } | ||
// Therefore, we define a custom constructor that requires a different return type. | ||
const CustomProxy = Proxy; // Internal state object to build up the final model. | ||
var CustomProxy = Proxy; // Internal state object to build up the final model. | ||
const createState = ({ | ||
initial | ||
} = {}) => { | ||
let state = initial ? { ...initial | ||
} : {}; | ||
var createState = function createState() { | ||
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, | ||
initial = _ref.initial; | ||
var state = initial ? _objectSpread$1({}, initial) : {}; | ||
return { | ||
get: () => state, | ||
merge: update => { | ||
state = { ...state, | ||
...update | ||
}; | ||
get: function get() { | ||
return state; | ||
}, | ||
set: (prop, value) => { | ||
state = { ...state, | ||
[prop]: value | ||
}; | ||
merge: function merge(update) { | ||
state = _objectSpread$1(_objectSpread$1({}, state), update); | ||
}, | ||
set: function set(prop, value) { | ||
state = _objectSpread$1(_objectSpread$1({}, state), {}, _defineProperty({}, prop, value)); | ||
} | ||
@@ -155,14 +207,17 @@ }; | ||
function PropertyBuilder({ | ||
defaults | ||
} = {}) { | ||
const state = createState({ | ||
function PropertyBuilder() { | ||
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, | ||
defaults = _ref2.defaults; | ||
var state = createState({ | ||
initial: defaults | ||
}); | ||
const builder = new CustomProxy({}, { | ||
get(_target, prop) { | ||
var builder = new CustomProxy({}, { | ||
get: function get(_target, prop) { | ||
switch (prop) { | ||
case 'get': | ||
{ | ||
return () => state.get(); | ||
return function () { | ||
return state.get(); | ||
}; | ||
} | ||
@@ -172,3 +227,3 @@ | ||
{ | ||
return update => { | ||
return function (update) { | ||
state.merge(update); | ||
@@ -181,3 +236,3 @@ return builder; | ||
{ | ||
return fnOrValue => { | ||
return function (fnOrValue) { | ||
if (isFunction(fnOrValue)) { | ||
@@ -194,3 +249,2 @@ state.merge(fnOrValue(state.get())); | ||
} | ||
}); | ||
@@ -200,23 +254,24 @@ return builder; | ||
function Builder({ | ||
defaults, | ||
generator, | ||
transformers | ||
} = {}) { | ||
const propertyBuilder = PropertyBuilder({ | ||
defaults | ||
function Builder() { | ||
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, | ||
defaults = _ref3.defaults, | ||
generator = _ref3.generator, | ||
transformers = _ref3.transformers; | ||
var propertyBuilder = PropertyBuilder({ | ||
defaults: defaults | ||
}); | ||
const applyGeneratorIfExists = () => { | ||
var applyGeneratorIfExists = function applyGeneratorIfExists() { | ||
if (!generator) return {}; | ||
return generator.generate({ | ||
defaults | ||
defaults: defaults | ||
}); | ||
}; | ||
const builder = { | ||
var builder = { | ||
generated: null, | ||
proxy: new CustomProxy({}, { | ||
get(_target, propToSet) { | ||
var _context; | ||
get: function get(_target, propToSet) { | ||
var _context3; | ||
@@ -228,15 +283,19 @@ if (isBuilderFunction(propToSet)) { | ||
return ({ | ||
omitFields = [], | ||
keepFields = [] | ||
} = {}) => { | ||
const built = { ...builder.generated, | ||
...propertyBuilder.get() | ||
}; | ||
let transformed = built; | ||
return function () { | ||
var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, | ||
_ref4$omitFields = _ref4.omitFields, | ||
omitFields = _ref4$omitFields === void 0 ? [] : _ref4$omitFields, | ||
_ref4$keepFields = _ref4.keepFields, | ||
keepFields = _ref4$keepFields === void 0 ? [] : _ref4$keepFields; | ||
var built = _objectSpread$1(_objectSpread$1({}, builder.generated), propertyBuilder.get()); | ||
var transformed = built; | ||
switch (propToSet) { | ||
case 'build': | ||
{ | ||
transformed = transformers?.default?.transform(built) ?? built; | ||
var _transformers$default, _transformers$default2; | ||
transformed = (_transformers$default = transformers === null || transformers === void 0 ? void 0 : (_transformers$default2 = transformers.default) === null || _transformers$default2 === void 0 ? void 0 : _transformers$default2.transform(built)) !== null && _transformers$default !== void 0 ? _transformers$default : built; | ||
break; | ||
@@ -247,3 +306,5 @@ } | ||
{ | ||
transformed = transformers?.graphql?.transform(built) ?? built; | ||
var _transformers$graphql, _transformers$graphql2; | ||
transformed = (_transformers$graphql = transformers === null || transformers === void 0 ? void 0 : (_transformers$graphql2 = transformers.graphql) === null || _transformers$graphql2 === void 0 ? void 0 : _transformers$graphql2.transform(built)) !== null && _transformers$graphql !== void 0 ? _transformers$graphql : built; | ||
break; | ||
@@ -254,3 +315,5 @@ } | ||
{ | ||
transformed = transformers?.rest?.transform(built) ?? built; | ||
var _transformers$rest$tr, _transformers$rest; | ||
transformed = (_transformers$rest$tr = transformers === null || transformers === void 0 ? void 0 : (_transformers$rest = transformers.rest) === null || _transformers$rest === void 0 ? void 0 : _transformers$rest.transform(built)) !== null && _transformers$rest$tr !== void 0 ? _transformers$rest$tr : built; | ||
break; | ||
@@ -261,7 +324,11 @@ } | ||
if (keepFields.length > 0) { | ||
return pickMany(transformed, ...keepFields); | ||
var _context; | ||
return pickMany.apply(void 0, _concatInstanceProperty(_context = [transformed]).call(_context, _toConsumableArray(keepFields))); | ||
} | ||
if (omitFields.length > 0) { | ||
return omitMany(transformed, ...omitFields); | ||
var _context2; | ||
return omitMany.apply(void 0, _concatInstanceProperty(_context2 = [transformed]).call(_context2, _toConsumableArray(omitFields))); | ||
} | ||
@@ -281,7 +348,7 @@ | ||
if (isString(propToSet) && _includesInstanceProperty(_context = ['__esModule', 'default']).call(_context, propToSet)) { | ||
if (isString(propToSet) && _includesInstanceProperty(_context3 = ['__esModule', 'default']).call(_context3, propToSet)) { | ||
return builder.proxy; | ||
} | ||
return fnOrValue => { | ||
return function (fnOrValue) { | ||
if (!builder.generated) { | ||
@@ -300,3 +367,2 @@ builder.generated = applyGeneratorIfExists(); // Make the generated data available as functional chaining of the builder. | ||
} | ||
}) | ||
@@ -310,14 +376,15 @@ }; | ||
function Generator({ | ||
fields, | ||
postBuild | ||
}) { | ||
const originalGenerate = build({ | ||
fields, | ||
postBuild | ||
function Generator(_ref) { | ||
var fields = _ref.fields, | ||
postBuild = _ref.postBuild; | ||
var originalGenerate = build({ | ||
fields: fields, | ||
postBuild: postBuild | ||
}); | ||
return { | ||
generate({ | ||
defaults = {} | ||
} = {}) { | ||
generate: function generate() { | ||
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, | ||
_ref2$defaults = _ref2.defaults, | ||
defaults = _ref2$defaults === void 0 ? {} : _ref2$defaults; | ||
return originalGenerate({ | ||
@@ -327,27 +394,28 @@ overrides: defaults | ||
} | ||
}; | ||
} | ||
function ownKeys$2(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } | ||
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context2; _forEachInstanceProperty(_context2 = ownKeys$2(Object(source), true)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context3; _forEachInstanceProperty(_context3 = ownKeys$2(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; } | ||
function Transformer(transformType, transformOptions) { | ||
function transform(fields) { | ||
let transformedFields = { ...fields | ||
}; | ||
const fieldsReplacer = transformOptions?.replaceFields; | ||
const fieldsAdder = transformOptions?.addFields; | ||
const fieldsToRemove = transformOptions?.removeFields; | ||
const fieldsToBuild = transformOptions?.buildFields; | ||
var transformedFields = _objectSpread$2({}, fields); | ||
var fieldsReplacer = transformOptions === null || transformOptions === void 0 ? void 0 : transformOptions.replaceFields; | ||
var fieldsAdder = transformOptions === null || transformOptions === void 0 ? void 0 : transformOptions.addFields; | ||
var fieldsToRemove = transformOptions === null || transformOptions === void 0 ? void 0 : transformOptions.removeFields; | ||
var fieldsToBuild = transformOptions === null || transformOptions === void 0 ? void 0 : transformOptions.buildFields; | ||
if (fieldsToBuild) { | ||
_forEachInstanceProperty(fieldsToBuild).call(fieldsToBuild, fieldToBuild => { | ||
const field = transformedFields[fieldToBuild]; // Build only fields that are not null or undefined | ||
_forEachInstanceProperty(fieldsToBuild).call(fieldsToBuild, function (fieldToBuild) { | ||
var field = transformedFields[fieldToBuild]; // Build only fields that are not null or undefined | ||
if (field) { | ||
transformedFields = { ...transformedFields, | ||
[fieldToBuild]: _Array$isArray(field) ? buildFields(field, transformType, { | ||
fieldToBuild | ||
}) : buildField(field, transformType, { | ||
fieldToBuild | ||
}) | ||
}; | ||
transformedFields = _objectSpread$2(_objectSpread$2({}, transformedFields), {}, _defineProperty({}, fieldToBuild, _Array$isArray(field) ? buildFields(field, transformType, { | ||
fieldToBuild: fieldToBuild | ||
}) : buildField(field, transformType, { | ||
fieldToBuild: fieldToBuild | ||
}))); | ||
} | ||
@@ -367,11 +435,11 @@ }); | ||
if (fieldsAdder) { | ||
console.warn(`The "replaceFields" option takes precedence over the "addFields" option, making it unsed.`); | ||
console.warn("The \"replaceFields\" option takes precedence over the \"addFields\" option, making it unsed."); | ||
} | ||
if (fieldsToRemove) { | ||
console.warn(`The "replaceFields" option takes precedence over the "removeFields" option, making it unsed.`); | ||
console.warn("The \"replaceFields\" option takes precedence over the \"removeFields\" option, making it unsed."); | ||
} | ||
return fieldsReplacer({ | ||
fields | ||
fields: fields | ||
}); | ||
@@ -383,11 +451,13 @@ } | ||
const fieldsToAdd = fieldsAdder({ | ||
fields | ||
var fieldsToAdd = fieldsAdder({ | ||
fields: fields | ||
}); | ||
_forEachInstanceProperty(_context = _Object$entries(fieldsToAdd)).call(_context, ([fieldName, fieldValue]) => { | ||
_forEachInstanceProperty(_context = _Object$entries(fieldsToAdd)).call(_context, function (_ref) { | ||
var _ref2 = _slicedToArray(_ref, 2), | ||
fieldName = _ref2[0], | ||
fieldValue = _ref2[1]; | ||
if (transformedFields[fieldName]) return; | ||
transformedFields = { ...transformedFields, | ||
[fieldName]: fieldValue | ||
}; | ||
transformedFields = _objectSpread$2(_objectSpread$2({}, transformedFields), {}, _defineProperty({}, fieldName, fieldValue)); | ||
}); | ||
@@ -397,3 +467,3 @@ } | ||
if (fieldsToRemove) { | ||
_forEachInstanceProperty(fieldsToRemove).call(fieldsToRemove, fieldToRemove => { | ||
_forEachInstanceProperty(fieldsToRemove).call(fieldsToRemove, function (fieldToRemove) { | ||
delete transformedFields[fieldToRemove]; | ||
@@ -408,3 +478,3 @@ }); | ||
type: transformType, | ||
transform | ||
transform: transform | ||
}; | ||
@@ -411,0 +481,0 @@ } |
{ | ||
"name": "@commercetools-test-data/core", | ||
"version": "1.1.0", | ||
"version": "1.1.1", | ||
"description": "This package provides the core functions to define the data models", | ||
@@ -5,0 +5,0 @@ "bugs": "https://github.com/commercetools/test-data/issues", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
116574
26.24%1020
14.86%