@wix/motion-edm-autogen-transformations-core 1.26.0 → 1.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/__tests__/corvid-entity.spec.js +4 -2
- package/dist/cjs/__tests__/corvid-entity.spec.js.map +1 -1
- package/dist/cjs/__tests__/reduceTransformation.spec.js +1 -3
- package/dist/cjs/__tests__/reduceTransformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/create-transformation.spec.js +6 -3
- package/dist/cjs/__tests__/transformations/preset/create-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/delete-transformation.spec.js +9 -4
- package/dist/cjs/__tests__/transformations/preset/delete-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/get-transformation.spec.js +6 -3
- package/dist/cjs/__tests__/transformations/preset/get-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/list-transformation.spec.js +6 -3
- package/dist/cjs/__tests__/transformations/preset/list-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/query-transformation.spec.js +7 -6
- package/dist/cjs/__tests__/transformations/preset/query-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/update-transformation.spec.js +6 -3
- package/dist/cjs/__tests__/transformations/preset/update-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/validations/validateRequestTransformation.spec.js +3 -1
- package/dist/cjs/__tests__/validations/validateRequestTransformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/validations/validateResponseTransformation.spec.js +3 -1
- package/dist/cjs/__tests__/validations/validateResponseTransformation.spec.js.map +1 -1
- package/dist/cjs/index.js +13 -16
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/corvid-entity/index.js +2 -4
- package/dist/cjs/lib/corvid-entity/index.js.map +1 -1
- package/dist/cjs/lib/helpers.js +10 -10
- package/dist/cjs/lib/helpers.js.map +1 -1
- package/dist/cjs/lib/transformations/common.js +1 -2
- package/dist/cjs/lib/transformations/common.js.map +1 -1
- package/dist/cjs/lib/transformations/constants.js +2 -4
- package/dist/cjs/lib/transformations/constants.js.map +1 -1
- package/dist/cjs/lib/transformations/preset/delete.js +3 -1
- package/dist/cjs/lib/transformations/preset/delete.js.map +1 -1
- package/dist/cjs/lib/transformations/preset/query.js +9 -7
- package/dist/cjs/lib/transformations/preset/query.js.map +1 -1
- package/dist/cjs/lib/transformations/reduceTransformation.js +46 -36
- package/dist/cjs/lib/transformations/reduceTransformation.js.map +1 -1
- package/dist/cjs/lib/transformations/validations/common.js +4 -2
- package/dist/cjs/lib/transformations/validations/common.js.map +1 -1
- package/dist/cjs/lib/transformations/validations/validateRequestTransformation.js +3 -5
- package/dist/cjs/lib/transformations/validations/validateRequestTransformation.js.map +1 -1
- package/dist/cjs/lib/transformations/validations/validateResponseTransformation.js +7 -6
- package/dist/cjs/lib/transformations/validations/validateResponseTransformation.js.map +1 -1
- package/dist/esm/__tests__/corvid-entity.spec.js +30 -24
- package/dist/esm/__tests__/corvid-entity.spec.js.map +1 -1
- package/dist/esm/__tests__/getArgumentCardinality.spec.js +20 -25
- package/dist/esm/__tests__/getArgumentCardinality.spec.js.map +1 -1
- package/dist/esm/__tests__/helpers.spec.js +37 -29
- package/dist/esm/__tests__/helpers.spec.js.map +1 -1
- package/dist/esm/__tests__/reduceTransformation.spec.js +147 -149
- package/dist/esm/__tests__/reduceTransformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/custom-functions.spec.js +62 -59
- package/dist/esm/__tests__/transformations/custom-functions.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/create-transformation.spec.js +24 -26
- package/dist/esm/__tests__/transformations/preset/create-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/delete-transformation.spec.js +39 -43
- package/dist/esm/__tests__/transformations/preset/delete-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/get-transformation.spec.js +22 -24
- package/dist/esm/__tests__/transformations/preset/get-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/list-transformation.spec.js +11 -11
- package/dist/esm/__tests__/transformations/preset/list-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/query-transformation.spec.js +29 -30
- package/dist/esm/__tests__/transformations/preset/query-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/update-transformation.spec.js +58 -62
- package/dist/esm/__tests__/transformations/preset/update-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/validations/validateRequestTransformation.spec.js +94 -82
- package/dist/esm/__tests__/validations/validateRequestTransformation.spec.js.map +1 -1
- package/dist/esm/__tests__/validations/validateResponseTransformation.spec.js +130 -107
- package/dist/esm/__tests__/validations/validateResponseTransformation.spec.js.map +1 -1
- package/dist/esm/index.js +22 -22
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/corvid-entity/index.js +6 -10
- package/dist/esm/lib/corvid-entity/index.js.map +1 -1
- package/dist/esm/lib/getArgumentCardinality.js +15 -21
- package/dist/esm/lib/getArgumentCardinality.js.map +1 -1
- package/dist/esm/lib/helpers.js +26 -40
- package/dist/esm/lib/helpers.js.map +1 -1
- package/dist/esm/lib/transformations/common.js +2 -5
- package/dist/esm/lib/transformations/common.js.map +1 -1
- package/dist/esm/lib/transformations/constants.js +2 -2
- package/dist/esm/lib/transformations/constants.js.map +1 -1
- package/dist/esm/lib/transformations/custom-functions.js +11 -14
- package/dist/esm/lib/transformations/custom-functions.js.map +1 -1
- package/dist/esm/lib/transformations/preset/create.js +1 -4
- package/dist/esm/lib/transformations/preset/create.js.map +1 -1
- package/dist/esm/lib/transformations/preset/delete.js +9 -13
- package/dist/esm/lib/transformations/preset/delete.js.map +1 -1
- package/dist/esm/lib/transformations/preset/get.js +1 -4
- package/dist/esm/lib/transformations/preset/get.js.map +1 -1
- package/dist/esm/lib/transformations/preset/list.js +1 -3
- package/dist/esm/lib/transformations/preset/list.js.map +1 -1
- package/dist/esm/lib/transformations/preset/query.js +17 -24
- package/dist/esm/lib/transformations/preset/query.js.map +1 -1
- package/dist/esm/lib/transformations/preset/update.js +3 -4
- package/dist/esm/lib/transformations/preset/update.js.map +1 -1
- package/dist/esm/lib/transformations/reduceTransformation.js +33 -44
- package/dist/esm/lib/transformations/reduceTransformation.js.map +1 -1
- package/dist/esm/lib/transformations/validations/common.js +17 -20
- package/dist/esm/lib/transformations/validations/common.js.map +1 -1
- package/dist/esm/lib/transformations/validations/validateRequestTransformation.js +35 -44
- package/dist/esm/lib/transformations/validations/validateRequestTransformation.js.map +1 -1
- package/dist/esm/lib/transformations/validations/validateResponseTransformation.js +57 -69
- package/dist/esm/lib/transformations/validations/validateResponseTransformation.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_motionRuntimeTestContext","require","_lodash","_","validateRequestTransformation","validation","describe","validResults","isValid","validationErrors","test","validTransformation","expect","toStrictEqual","a","validationErrorWith","parentPath","invalidValue","description","arrayContaining","objectContaining","each","transformationKey","expectedValidationMessage","transformation","d","e","f","parentKey","aString","invalidSourceValue","invalidSourceTransformation","times","invalidTransformation","expectedParentPath","transformationWithOmitValue","value","nonArray","nonStringArray","aNumber","arrayWithInvalidPaths","invalidCustomFunctionCallExpression","b","c","invalidCustomFunctionExpression","transformationValue","specialField"],"sources":["../../../../src/__tests__/validations/validateRequestTransformation.spec.ts"],"sourcesContent":["import { aNumber, aString } from '@wix/motion-runtime-test-context';\nimport { times } from 'lodash';\n\nimport { validation } from '../..';\n\nconst { validateRequestTransformation } = validation;\n\ndescribe('validateRequestTransformation', () => {\n describe('valid transformations', () => {\n const validResults = { isValid: true, validationErrors: [] };\n\n test('returns valid transformation response for a valid simple transformation', () => {\n const validTransformation = '$[0].a.b.c';\n\n expect(validateRequestTransformation(validTransformation)).toStrictEqual(\n validResults,\n );\n });\n\n test('returns valid transformation response for a valid complex transformation', () => {\n const validTransformation = { a: '$[0].a.b.c' };\n\n expect(validateRequestTransformation(validTransformation)).toStrictEqual(\n validResults,\n );\n });\n });\n\n describe('invalid transformations', () => {\n const validationErrorWith = ({\n parentPath,\n invalidValue,\n description,\n }) => ({\n isValid: false,\n validationErrors: expect.arrayContaining([\n expect.objectContaining({\n parentPath,\n invalidValue,\n description,\n }),\n ]),\n });\n\n describe('invalid complex-transformation keys', () => {\n test.each`\n description | transformationKey | expectedValidationMessage\n ${'refers to an argument index'} | ${'$[0]'} | ${\"must start with '$.'\"}\n ${'refers to a custom function'} | ${'#someFunction'} | ${'cannot be a custom function call'}\n `(\n 'returns a validation error when a transformation value segment $description',\n ({ transformationKey, expectedValidationMessage }) => {\n const transformation = {\n d: { e: { f: { [transformationKey]: '$[0].a.b.c' } } },\n '*': '$[1]',\n };\n\n expect(validateRequestTransformation(transformation)).toStrictEqual(\n validationErrorWith({\n parentPath: 'd.e.f',\n invalidValue: transformationKey,\n description: expectedValidationMessage,\n }),\n );\n },\n );\n });\n\n describe('invalid transformations values', () => {\n describe('omit transformation', () => {\n const parentKey = aString();\n\n describe('invalid source', () => {\n const invalidSourceValue = '$[x].a.b.c';\n const invalidSourceTransformation = {\n '@source': invalidSourceValue,\n '@omit': times(2, () => aString()),\n };\n\n test.each`\n description | invalidTransformation | expectedParentPath\n ${'top level'} | ${invalidSourceTransformation} | ${'@source'}\n ${'nested'} | ${{ [parentKey]: invalidSourceTransformation }} | ${`${parentKey}.@source`}\n `(\n 'returns a validation error when the @source value is invalid',\n ({ invalidTransformation, expectedParentPath }) => {\n expect(\n validateRequestTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: invalidSourceValue,\n description: 'must start with $[N] where N is an index',\n }),\n );\n },\n );\n });\n\n describe('invalid @omit', () => {\n const transformationWithOmitValue = (value) => ({\n '@source': '$[0].a.b.c',\n '@omit': value,\n });\n\n const nonArray = aString();\n const nonStringArray = times(2, () => aNumber());\n const arrayWithInvalidPaths = ['a.b.c', aString()];\n\n describe.each`\n description | invalidTransformation | expectedParentPath\n ${'top level'} | ${transformationWithOmitValue(nonArray)} | ${'@omit'}\n ${'nested'} | ${{ [parentKey]: transformationWithOmitValue(nonArray) }} | ${`${parentKey}.@omit`}\n `(\n '@omit is not an array',\n ({ invalidTransformation, expectedParentPath }) => {\n test('returns a validation error', () => {\n expect(\n validateRequestTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: nonArray,\n description: 'must be an array of strings',\n }),\n );\n });\n },\n );\n\n describe.each`\n description | invalidTransformation | expectedParentPath\n ${'top level'} | ${transformationWithOmitValue(nonStringArray)} | ${'@omit'}\n ${'nested'} | ${{ [parentKey]: transformationWithOmitValue(nonStringArray) }} | ${`${parentKey}.@omit`}\n `(\n '@omit is an array of non-strings',\n ({ invalidTransformation, expectedParentPath }) => {\n test('return a validation error', () => {\n expect(\n validateRequestTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: nonStringArray,\n description: 'must be an array of strings',\n }),\n );\n });\n },\n );\n\n /* eslint-disable max-len */\n describe.each`\n description | invalidTransformation | expectedParentPath\n ${'top level'} | ${transformationWithOmitValue(arrayWithInvalidPaths)} | ${'@omit'}\n ${'nested'} | ${{ [parentKey]: transformationWithOmitValue(arrayWithInvalidPaths) }} | ${`${parentKey}.@omit`}\n `(\n '@omit is an array with invalid string paths',\n ({ description, invalidTransformation, expectedParentPath }) => {\n /* eslint-enable max-len */\n test(`returns a validation error for invalid ${description} transformation`, () => {\n expect(\n validateRequestTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: arrayWithInvalidPaths,\n description: 'must contain non-nested paths only',\n }),\n );\n });\n },\n );\n });\n });\n\n describe('custom function expressions', () => {\n test('returns a validation error when an invalid custom function-name is used', () => {\n const invalidCustomFunctionCallExpression = '#1a';\n const transformation = {\n a: { b: { c: invalidCustomFunctionCallExpression } },\n };\n\n expect(validateRequestTransformation(transformation)).toStrictEqual(\n validationErrorWith({\n parentPath: 'a.b.c',\n invalidValue: invalidCustomFunctionCallExpression,\n description: 'contains an invalid custom function expression',\n }),\n );\n });\n\n test('returns a validation error when a custom function argument is invalid for request transformation', () => {\n const invalidCustomFunctionExpression = '#someFunction($.id)';\n const transformation = {\n a: { b: { c: invalidCustomFunctionExpression } },\n };\n\n expect(validateRequestTransformation(transformation)).toStrictEqual(\n validationErrorWith({\n parentPath: 'a.b.c',\n invalidValue: '$.id',\n description: 'must start with $[N] where N is an index',\n }),\n );\n });\n\n describe('#constant function', () => {\n test('returns a validation error when passed value is not a valid json value', () => {\n const invalidCustomFunctionExpression = '#constant(not-json)';\n const transformation = {\n a: { b: { c: invalidCustomFunctionExpression } },\n };\n\n expect(validateRequestTransformation(transformation)).toStrictEqual(\n validationErrorWith({\n parentPath: 'a.b.c',\n invalidValue: 'not-json',\n description: 'must be a valid json value',\n }),\n );\n });\n\n test('allows passing non json-path arguments to the #constant function', () => {\n const transformation = { a: { b: { c: '#constant(\"abc\")' } } };\n\n expect(validateRequestTransformation(transformation)).toStrictEqual(\n {\n isValid: true,\n validationErrors: [],\n },\n );\n });\n });\n });\n\n /* eslint-disable max-len */\n describe.each`\n description | transformationValue | expectedValidationMessage\n ${'does not start with $[N] where N is a numeric index'} | ${'$[x].a.b.c'} | ${'must start with $[N] where N is an index'}\n ${'is not a valid json-path'} | ${'@'} | ${'must start with $[N] where N is an index'}\n ${'has several arguments referred to in the transformation'} | ${'$[0].$[1]'} | ${'must have a single argument-index as the first path segment'}\n ${'refers to * in the path'} | ${'$[0].a.b.*'} | ${'cannot refer to the * operator'}\n `(\n /* eslint-enable max-len */\n 'returns a validation error when a transformation value segment $description',\n ({ transformationValue, expectedValidationMessage }) => {\n test('simple transformation', () => {\n expect(\n validateRequestTransformation(transformationValue),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: null,\n invalidValue: transformationValue,\n description: expectedValidationMessage,\n }),\n );\n });\n\n test('complex transformation', () => {\n const transformation = { a: { b: { c: transformationValue } } };\n\n expect(validateRequestTransformation(transformation)).toStrictEqual(\n validationErrorWith({\n parentPath: 'a.b.c',\n invalidValue: transformationValue,\n description: expectedValidationMessage,\n }),\n );\n });\n },\n );\n\n describe('special fields', () => {\n describe.each(['id', 'createdDate', 'updatedDate'])(\n '%s',\n (specialField) => {\n const transformationValue = `$[0].a.b.${specialField}`;\n // eslint-disable-next-line max-len\n const expectedValidationMessage = `cannot refer to ${specialField} field, consider using _${specialField} instead`;\n\n test('simple transformation', () => {\n expect(\n validateRequestTransformation(transformationValue),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: null,\n invalidValue: transformationValue,\n description: expectedValidationMessage,\n }),\n );\n });\n\n test('complex transformation', () => {\n const transformation = { a: { b: { c: transformationValue } } };\n\n expect(\n validateRequestTransformation(transformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: 'a.b.c',\n invalidValue: transformationValue,\n description: expectedValidationMessage,\n }),\n );\n });\n },\n );\n });\n });\n });\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_motionRuntimeTestContext","require","_lodash","_","validateRequestTransformation","validation","describe","validResults","isValid","validationErrors","test","validTransformation","expect","toStrictEqual","a","validationErrorWith","parentPath","invalidValue","description","arrayContaining","objectContaining","each","transformationKey","expectedValidationMessage","transformation","d","e","f","parentKey","aString","invalidSourceValue","invalidSourceTransformation","times","invalidTransformation","expectedParentPath","transformationWithOmitValue","value","nonArray","nonStringArray","aNumber","arrayWithInvalidPaths","invalidCustomFunctionCallExpression","b","c","invalidCustomFunctionExpression","transformationValue","specialField"],"sources":["../../../../src/__tests__/validations/validateRequestTransformation.spec.ts"],"sourcesContent":["import { aNumber, aString } from '@wix/motion-runtime-test-context';\nimport { times } from 'lodash';\n\nimport { validation } from '../..';\n\nconst { validateRequestTransformation } = validation;\n\ndescribe('validateRequestTransformation', () => {\n describe('valid transformations', () => {\n const validResults = { isValid: true, validationErrors: [] };\n\n test('returns valid transformation response for a valid simple transformation', () => {\n const validTransformation = '$[0].a.b.c';\n\n expect(validateRequestTransformation(validTransformation)).toStrictEqual(\n validResults,\n );\n });\n\n test('returns valid transformation response for a valid complex transformation', () => {\n const validTransformation = { a: '$[0].a.b.c' };\n\n expect(validateRequestTransformation(validTransformation)).toStrictEqual(\n validResults,\n );\n });\n });\n\n describe('invalid transformations', () => {\n const validationErrorWith = ({\n parentPath,\n invalidValue,\n description,\n }) => ({\n isValid: false,\n validationErrors: expect.arrayContaining([\n expect.objectContaining({\n parentPath,\n invalidValue,\n description,\n }),\n ]),\n });\n\n describe('invalid complex-transformation keys', () => {\n test.each`\n description | transformationKey | expectedValidationMessage\n ${'refers to an argument index'} | ${'$[0]'} | ${\"must start with '$.'\"}\n ${'refers to a custom function'} | ${'#someFunction'} | ${'cannot be a custom function call'}\n `(\n 'returns a validation error when a transformation value segment $description',\n ({ transformationKey, expectedValidationMessage }) => {\n const transformation = {\n d: { e: { f: { [transformationKey]: '$[0].a.b.c' } } },\n '*': '$[1]',\n };\n\n expect(validateRequestTransformation(transformation)).toStrictEqual(\n validationErrorWith({\n parentPath: 'd.e.f',\n invalidValue: transformationKey,\n description: expectedValidationMessage,\n }),\n );\n },\n );\n });\n\n describe('invalid transformations values', () => {\n describe('omit transformation', () => {\n const parentKey = aString();\n\n describe('invalid source', () => {\n const invalidSourceValue = '$[x].a.b.c';\n const invalidSourceTransformation = {\n '@source': invalidSourceValue,\n '@omit': times(2, () => aString()),\n };\n\n test.each`\n description | invalidTransformation | expectedParentPath\n ${'top level'} | ${invalidSourceTransformation} | ${'@source'}\n ${'nested'} | ${{ [parentKey]: invalidSourceTransformation }} | ${`${parentKey}.@source`}\n `(\n 'returns a validation error when the @source value is invalid',\n ({ invalidTransformation, expectedParentPath }) => {\n expect(\n validateRequestTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: invalidSourceValue,\n description: 'must start with $[N] where N is an index',\n }),\n );\n },\n );\n });\n\n describe('invalid @omit', () => {\n const transformationWithOmitValue = (value) => ({\n '@source': '$[0].a.b.c',\n '@omit': value,\n });\n\n const nonArray = aString();\n const nonStringArray = times(2, () => aNumber());\n const arrayWithInvalidPaths = ['a.b.c', aString()];\n\n describe.each`\n description | invalidTransformation | expectedParentPath\n ${'top level'} | ${transformationWithOmitValue(nonArray)} | ${'@omit'}\n ${'nested'} | ${{ [parentKey]: transformationWithOmitValue(nonArray) }} | ${`${parentKey}.@omit`}\n `(\n '@omit is not an array',\n ({ invalidTransformation, expectedParentPath }) => {\n test('returns a validation error', () => {\n expect(\n validateRequestTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: nonArray,\n description: 'must be an array of strings',\n }),\n );\n });\n },\n );\n\n describe.each`\n description | invalidTransformation | expectedParentPath\n ${'top level'} | ${transformationWithOmitValue(nonStringArray)} | ${'@omit'}\n ${'nested'} | ${{ [parentKey]: transformationWithOmitValue(nonStringArray) }} | ${`${parentKey}.@omit`}\n `(\n '@omit is an array of non-strings',\n ({ invalidTransformation, expectedParentPath }) => {\n test('return a validation error', () => {\n expect(\n validateRequestTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: nonStringArray,\n description: 'must be an array of strings',\n }),\n );\n });\n },\n );\n\n /* eslint-disable max-len */\n describe.each`\n description | invalidTransformation | expectedParentPath\n ${'top level'} | ${transformationWithOmitValue(arrayWithInvalidPaths)} | ${'@omit'}\n ${'nested'} | ${{ [parentKey]: transformationWithOmitValue(arrayWithInvalidPaths) }} | ${`${parentKey}.@omit`}\n `(\n '@omit is an array with invalid string paths',\n ({ description, invalidTransformation, expectedParentPath }) => {\n /* eslint-enable max-len */\n test(`returns a validation error for invalid ${description} transformation`, () => {\n expect(\n validateRequestTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: arrayWithInvalidPaths,\n description: 'must contain non-nested paths only',\n }),\n );\n });\n },\n );\n });\n });\n\n describe('custom function expressions', () => {\n test('returns a validation error when an invalid custom function-name is used', () => {\n const invalidCustomFunctionCallExpression = '#1a';\n const transformation = {\n a: { b: { c: invalidCustomFunctionCallExpression } },\n };\n\n expect(validateRequestTransformation(transformation)).toStrictEqual(\n validationErrorWith({\n parentPath: 'a.b.c',\n invalidValue: invalidCustomFunctionCallExpression,\n description: 'contains an invalid custom function expression',\n }),\n );\n });\n\n test('returns a validation error when a custom function argument is invalid for request transformation', () => {\n const invalidCustomFunctionExpression = '#someFunction($.id)';\n const transformation = {\n a: { b: { c: invalidCustomFunctionExpression } },\n };\n\n expect(validateRequestTransformation(transformation)).toStrictEqual(\n validationErrorWith({\n parentPath: 'a.b.c',\n invalidValue: '$.id',\n description: 'must start with $[N] where N is an index',\n }),\n );\n });\n\n describe('#constant function', () => {\n test('returns a validation error when passed value is not a valid json value', () => {\n const invalidCustomFunctionExpression = '#constant(not-json)';\n const transformation = {\n a: { b: { c: invalidCustomFunctionExpression } },\n };\n\n expect(validateRequestTransformation(transformation)).toStrictEqual(\n validationErrorWith({\n parentPath: 'a.b.c',\n invalidValue: 'not-json',\n description: 'must be a valid json value',\n }),\n );\n });\n\n test('allows passing non json-path arguments to the #constant function', () => {\n const transformation = { a: { b: { c: '#constant(\"abc\")' } } };\n\n expect(validateRequestTransformation(transformation)).toStrictEqual(\n {\n isValid: true,\n validationErrors: [],\n },\n );\n });\n });\n });\n\n /* eslint-disable max-len */\n describe.each`\n description | transformationValue | expectedValidationMessage\n ${'does not start with $[N] where N is a numeric index'} | ${'$[x].a.b.c'} | ${'must start with $[N] where N is an index'}\n ${'is not a valid json-path'} | ${'@'} | ${'must start with $[N] where N is an index'}\n ${'has several arguments referred to in the transformation'} | ${'$[0].$[1]'} | ${'must have a single argument-index as the first path segment'}\n ${'refers to * in the path'} | ${'$[0].a.b.*'} | ${'cannot refer to the * operator'}\n `(\n /* eslint-enable max-len */\n 'returns a validation error when a transformation value segment $description',\n ({ transformationValue, expectedValidationMessage }) => {\n test('simple transformation', () => {\n expect(\n validateRequestTransformation(transformationValue),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: null,\n invalidValue: transformationValue,\n description: expectedValidationMessage,\n }),\n );\n });\n\n test('complex transformation', () => {\n const transformation = { a: { b: { c: transformationValue } } };\n\n expect(validateRequestTransformation(transformation)).toStrictEqual(\n validationErrorWith({\n parentPath: 'a.b.c',\n invalidValue: transformationValue,\n description: expectedValidationMessage,\n }),\n );\n });\n },\n );\n\n describe('special fields', () => {\n describe.each(['id', 'createdDate', 'updatedDate'])(\n '%s',\n (specialField) => {\n const transformationValue = `$[0].a.b.${specialField}`;\n // eslint-disable-next-line max-len\n const expectedValidationMessage = `cannot refer to ${specialField} field, consider using _${specialField} instead`;\n\n test('simple transformation', () => {\n expect(\n validateRequestTransformation(transformationValue),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: null,\n invalidValue: transformationValue,\n description: expectedValidationMessage,\n }),\n );\n });\n\n test('complex transformation', () => {\n const transformation = { a: { b: { c: transformationValue } } };\n\n expect(\n validateRequestTransformation(transformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: 'a.b.c',\n invalidValue: transformationValue,\n description: expectedValidationMessage,\n }),\n );\n });\n },\n );\n });\n });\n });\n});\n"],"mappings":"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"}
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
var _motionRuntimeTestContext = require("@wix/motion-runtime-test-context");
|
|
4
4
|
var _lodash = require("lodash");
|
|
5
5
|
var _ = require("../..");
|
|
6
|
-
const
|
|
6
|
+
const {
|
|
7
|
+
validateResponseTransformation
|
|
8
|
+
} = _.validation;
|
|
7
9
|
describe('validateResponseTransformation', () => {
|
|
8
10
|
describe('valid transformations', () => {
|
|
9
11
|
const validResults = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_motionRuntimeTestContext","require","_lodash","_","validateResponseTransformation","validation","describe","validResults","isValid","validationErrors","test","validTransformation","expect","toStrictEqual","aaa","parentKey","aString","validationErrorWith","parentPath","invalidValue","description","arrayContaining","objectContaining","transformation","each","transformationKey","expectedValidationMessage","d","e","f","invalidCustomFunctionName","a","b","c","expectedParentPath","invalidCustomFunctionExpression","argumentExpression","path","set","transformationValue","specialField","invalidSourceValue","invalidSourceTransformation","times","invalidTransformation","transformationWithOmitValue","value","nonArray","nonStringArray","aNumber","arrayWithInvalidPaths","validValue","invalidPathTransformationWith","invalidPathValue","aRandomItemFrom","aBoolean","anObject","invalidPathTransformation"],"sources":["../../../../src/__tests__/validations/validateResponseTransformation.spec.ts"],"sourcesContent":["import {\n aBoolean,\n anObject,\n aNumber,\n aRandomItemFrom,\n aString,\n} from '@wix/motion-runtime-test-context';\nimport { set, times } from 'lodash';\n\nimport { validation } from '../..';\n\nconst { validateResponseTransformation } = validation;\n\ndescribe('validateResponseTransformation', () => {\n describe('valid transformations', () => {\n const validResults = { isValid: true, validationErrors: [] };\n\n test('returns valid transformation response for a valid simple transformation', () => {\n const validTransformation = '$.a.b.c';\n\n expect(validateResponseTransformation(validTransformation)).toStrictEqual(\n validResults,\n );\n });\n\n test('returns valid transformation response for a valid complex transformation', () => {\n const validTransformation = { aaa: '$.a.b.c' };\n\n expect(validateResponseTransformation(validTransformation)).toStrictEqual(\n validResults,\n );\n });\n });\n\n describe('invalid transformations', () => {\n const parentKey = aString();\n\n const validationErrorWith = ({\n parentPath,\n invalidValue,\n description,\n }) => ({\n isValid: false,\n validationErrors: expect.arrayContaining([\n expect.objectContaining({\n parentPath,\n invalidValue,\n description,\n }),\n ]),\n });\n\n describe('invalid simple transformations', () => {\n test('returns a validation error when the transformation starts with an index argument', () => {\n const transformation = '$[0].a.b.c';\n\n expect(validateResponseTransformation(transformation)).toStrictEqual(\n validationErrorWith({\n parentPath: null,\n invalidValue: transformation,\n description: \"must be a string starting with '$.'\",\n }),\n );\n });\n });\n\n describe('invalid complex-transformation keys', () => {\n test.each`\n description | transformationKey | expectedValidationMessage\n ${'refers to an argument index'} | ${'$[0]'} | ${\"must be a string starting with '$.'\"}\n ${'refers to the root identifier'} | ${'$'} | ${'cannot refer to $ in a transformation key'}\n ${'refers to a custom function'} | ${'#someFunction'} | ${'cannot be a custom function call'}\n `(\n 'returns a validation error when a transformation value segment $description',\n ({ transformationKey, expectedValidationMessage }) => {\n const transformation = {\n d: { e: { f: { [transformationKey]: '$.a.b.c' } } },\n '*': '$[1]',\n };\n\n expect(validateResponseTransformation(transformation)).toStrictEqual(\n validationErrorWith({\n parentPath: 'd.e.f',\n invalidValue: transformationKey,\n description: expectedValidationMessage,\n }),\n );\n },\n );\n });\n\n describe('invalid transformations values', () => {\n describe('custom function expressions', () => {\n const invalidCustomFunctionName = '#1a';\n\n describe('invalid custom function-name is used', () => {\n test.each`\n description | transformation | expectedParentPath\n ${'top level'} | ${invalidCustomFunctionName} | ${null}\n ${'nested'} | ${{ a: { b: { c: invalidCustomFunctionName } } }} | ${'a.b.c'}\n `(\n 'returns a validation error for $description cases',\n ({ expectedParentPath, transformation }) => {\n expect(\n validateResponseTransformation(transformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: invalidCustomFunctionName,\n description: 'contains an invalid custom function expression',\n }),\n );\n },\n );\n });\n\n describe('a custom function argument is invalid in response transformation', () => {\n const invalidCustomFunctionExpression = '#someFunction($[0])';\n\n test.each`\n description | transformation | expectedParentPath\n ${'top level'} | ${invalidCustomFunctionExpression} | ${null}\n ${'nested'} | ${{ a: { b: { c: invalidCustomFunctionExpression } } }} | ${'a.b.c'}\n `(\n 'returns a validation error for $description cases',\n ({ expectedParentPath, transformation }) => {\n expect(\n validateResponseTransformation(transformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: '$[0]',\n description: \"must be a string starting with '$.'\",\n }),\n );\n },\n );\n });\n\n test('returns a validation error when an argument index is used', () => {\n const argumentExpression = '$[1].a.b.c.';\n const path = 'd.e.f';\n const transformation = set({}, path, argumentExpression);\n\n expect(validateResponseTransformation(transformation)).toStrictEqual(\n validationErrorWith({\n parentPath: path,\n invalidValue: argumentExpression,\n description: \"must be a string starting with '$.'\",\n }),\n );\n });\n });\n\n describe.each`\n description | transformationValue | expectedValidationMessage\n ${'does not start with $'} | ${'a.b.c'} | ${\"must be a string starting with '$.'\"}\n ${'refers to * in the path'} | ${'$.a.b.*'} | ${'cannot refer to the * operator'}\n `(\n 'returns a validation error when a transformation value segment $description',\n ({ transformationValue, expectedValidationMessage }) => {\n test('simple transformation', () => {\n expect(\n validateResponseTransformation(transformationValue),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: null,\n invalidValue: transformationValue,\n description: expectedValidationMessage,\n }),\n );\n });\n\n test('complex transformation', () => {\n const transformation = { d: { e: { f: transformationValue } } };\n\n expect(\n validateResponseTransformation(transformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: 'd.e.f',\n invalidValue: transformationValue,\n description: expectedValidationMessage,\n }),\n );\n });\n },\n );\n\n describe('special fields', () => {\n describe.each(['_id', '_createdDate', '_updatedDate'])(\n '%s',\n (specialField) => {\n const expectedValidationMessage = `cannot refer to the ${specialField} field`;\n\n test('returns a validation error when a transformation value segment $description', () => {\n const transformation = {\n d: { e: { f: { [specialField]: '$.a.b.c' } } },\n '*': '$[1]',\n };\n\n expect(\n validateResponseTransformation(transformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: 'd.e.f',\n invalidValue: specialField,\n description: expectedValidationMessage,\n }),\n );\n });\n\n describe('simple transformation', () => {\n test(`returns a validation error when a segment refers to the special field ${specialField}`, () => {\n const transformationValue = `$.a.b.${specialField}`;\n\n expect(\n validateResponseTransformation(transformationValue),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: null,\n invalidValue: transformationValue,\n description: expectedValidationMessage,\n }),\n );\n });\n });\n\n test('complex transformation', () => {\n const transformationValue = `$.a.b.${specialField}`;\n const transformation = { d: { e: { f: transformationValue } } };\n\n expect(\n validateResponseTransformation(transformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: 'd.e.f',\n invalidValue: transformationValue,\n description: expectedValidationMessage,\n }),\n );\n });\n },\n );\n });\n });\n\n describe('omit transformation', () => {\n describe('invalid @source', () => {\n const invalidSourceValue = 'a.b.c';\n const invalidSourceTransformation = {\n '@source': invalidSourceValue,\n '@omit': times(2, () => aString()),\n };\n\n test.each`\n description | invalidTransformation | expectedParentPath\n ${'top level'} | ${invalidSourceTransformation} | ${'@source'}\n ${'nested'} | ${{ [parentKey]: invalidSourceTransformation }} | ${`${parentKey}.@source`}\n `(\n 'returns a validation error when the @source value is invalid',\n ({ invalidTransformation, expectedParentPath }) => {\n expect(\n validateResponseTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: invalidSourceValue,\n description: \"must be a string starting with '$.'\",\n }),\n );\n },\n );\n });\n\n describe('invalid @omit', () => {\n const transformationWithOmitValue = (value) => ({\n '@source': '$.a.b.c',\n '@omit': value,\n });\n\n const nonArray = aString();\n const nonStringArray = times(2, () => aNumber());\n const arrayWithInvalidPaths = ['a.b.c', aString()];\n\n describe.each`\n description | invalidTransformation | expectedParentPath\n ${'top level'} | ${transformationWithOmitValue(nonArray)} | ${'@omit'}\n ${'nested'} | ${{ [parentKey]: transformationWithOmitValue(nonArray) }} | ${`${parentKey}.@omit`}\n `(\n '@omit is not an array',\n ({ description, invalidTransformation, expectedParentPath }) => {\n test(`returns a validation error for invalid ${description} transformation`, () => {\n expect(\n validateResponseTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: nonArray,\n description: 'must be an array of strings',\n }),\n );\n });\n },\n );\n\n describe.each`\n description | invalidTransformation | expectedParentPath\n ${'top level'} | ${transformationWithOmitValue(nonStringArray)} | ${'@omit'}\n ${'nested'} | ${{ [parentKey]: transformationWithOmitValue(nonStringArray) }} | ${`${parentKey}.@omit`}\n `(\n '@omit is an array of non-strings',\n ({ description, invalidTransformation, expectedParentPath }) => {\n test(`returns a validation error for invalid ${description} transformation`, () => {\n expect(\n validateResponseTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: nonStringArray,\n description: 'must be an array of strings',\n }),\n );\n });\n },\n );\n\n /* eslint-disable max-len */\n describe.each`\n description | invalidTransformation | expectedParentPath\n ${'top level'} | ${transformationWithOmitValue(arrayWithInvalidPaths)} | ${'@omit'}\n ${'nested'} | ${{ [parentKey]: transformationWithOmitValue(arrayWithInvalidPaths) }} | ${`${parentKey}.@omit`}\n `(\n '@omit is an array of invalid string paths',\n ({ description, invalidTransformation, expectedParentPath }) => {\n /* eslint-enable max-len */\n test(`returns a validation error for invalid ${description} transformation`, () => {\n expect(\n validateResponseTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: arrayWithInvalidPaths,\n description: 'must contain non-nested paths only',\n }),\n );\n });\n },\n );\n });\n });\n\n describe('array-item transformation', () => {\n const validValue = '$.d.e.f';\n\n const invalidPathTransformationWith = (invalidPathValue) => ({\n '@path': invalidPathValue,\n '@itemTransformation': validValue,\n });\n\n describe.each`\n invalidValue | description\n ${'$[0].should.fail'} | ${'invalid path value'}\n ${aRandomItemFrom([aBoolean(), aNumber(), anObject()])} | ${'invalid path type'}\n `('$description', ({ invalidValue }) => {\n test.each`\n description | invalidTransformation | expectedParentPath\n ${'top-level'} | ${invalidPathTransformationWith(invalidValue)} | ${'@path'}\n ${'nested'} | ${{ [parentKey]: invalidPathTransformationWith(invalidValue) }} | ${`${parentKey}.@path`}\n `(\n 'returns a validation error when the @path value is invalid for $description transformation',\n ({ invalidTransformation, expectedParentPath }) => {\n expect(\n validateResponseTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue,\n description: \"must be a string starting with '$.'\",\n }),\n );\n },\n );\n });\n\n describe('invalid @itemTransformation', () => {\n const invalidValue = '$[0].should.fail';\n const invalidPathTransformation = {\n '@path': validValue,\n '@itemTransformation': invalidValue,\n };\n\n test.each`\n description | invalidTransformation | expectedParentPath\n ${'top-level'} | ${invalidPathTransformation} | ${'@itemTransformation'}\n ${'nested'} | ${{ [parentKey]: invalidPathTransformation }} | ${`${parentKey}.@itemTransformation`}\n `(\n 'returns a validation error when the @itemTransformation value is invalid for $description transformation',\n ({ invalidTransformation, expectedParentPath }) => {\n expect(\n validateResponseTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue,\n description: \"must be a string starting with '$.'\",\n }),\n );\n },\n );\n });\n });\n });\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_motionRuntimeTestContext","require","_lodash","_","validateResponseTransformation","validation","describe","validResults","isValid","validationErrors","test","validTransformation","expect","toStrictEqual","aaa","parentKey","aString","validationErrorWith","parentPath","invalidValue","description","arrayContaining","objectContaining","transformation","each","transformationKey","expectedValidationMessage","d","e","f","invalidCustomFunctionName","a","b","c","expectedParentPath","invalidCustomFunctionExpression","argumentExpression","path","set","transformationValue","specialField","invalidSourceValue","invalidSourceTransformation","times","invalidTransformation","transformationWithOmitValue","value","nonArray","nonStringArray","aNumber","arrayWithInvalidPaths","validValue","invalidPathTransformationWith","invalidPathValue","aRandomItemFrom","aBoolean","anObject","invalidPathTransformation"],"sources":["../../../../src/__tests__/validations/validateResponseTransformation.spec.ts"],"sourcesContent":["import {\n aBoolean,\n anObject,\n aNumber,\n aRandomItemFrom,\n aString,\n} from '@wix/motion-runtime-test-context';\nimport { set, times } from 'lodash';\n\nimport { validation } from '../..';\n\nconst { validateResponseTransformation } = validation;\n\ndescribe('validateResponseTransformation', () => {\n describe('valid transformations', () => {\n const validResults = { isValid: true, validationErrors: [] };\n\n test('returns valid transformation response for a valid simple transformation', () => {\n const validTransformation = '$.a.b.c';\n\n expect(validateResponseTransformation(validTransformation)).toStrictEqual(\n validResults,\n );\n });\n\n test('returns valid transformation response for a valid complex transformation', () => {\n const validTransformation = { aaa: '$.a.b.c' };\n\n expect(validateResponseTransformation(validTransformation)).toStrictEqual(\n validResults,\n );\n });\n });\n\n describe('invalid transformations', () => {\n const parentKey = aString();\n\n const validationErrorWith = ({\n parentPath,\n invalidValue,\n description,\n }) => ({\n isValid: false,\n validationErrors: expect.arrayContaining([\n expect.objectContaining({\n parentPath,\n invalidValue,\n description,\n }),\n ]),\n });\n\n describe('invalid simple transformations', () => {\n test('returns a validation error when the transformation starts with an index argument', () => {\n const transformation = '$[0].a.b.c';\n\n expect(validateResponseTransformation(transformation)).toStrictEqual(\n validationErrorWith({\n parentPath: null,\n invalidValue: transformation,\n description: \"must be a string starting with '$.'\",\n }),\n );\n });\n });\n\n describe('invalid complex-transformation keys', () => {\n test.each`\n description | transformationKey | expectedValidationMessage\n ${'refers to an argument index'} | ${'$[0]'} | ${\"must be a string starting with '$.'\"}\n ${'refers to the root identifier'} | ${'$'} | ${'cannot refer to $ in a transformation key'}\n ${'refers to a custom function'} | ${'#someFunction'} | ${'cannot be a custom function call'}\n `(\n 'returns a validation error when a transformation value segment $description',\n ({ transformationKey, expectedValidationMessage }) => {\n const transformation = {\n d: { e: { f: { [transformationKey]: '$.a.b.c' } } },\n '*': '$[1]',\n };\n\n expect(validateResponseTransformation(transformation)).toStrictEqual(\n validationErrorWith({\n parentPath: 'd.e.f',\n invalidValue: transformationKey,\n description: expectedValidationMessage,\n }),\n );\n },\n );\n });\n\n describe('invalid transformations values', () => {\n describe('custom function expressions', () => {\n const invalidCustomFunctionName = '#1a';\n\n describe('invalid custom function-name is used', () => {\n test.each`\n description | transformation | expectedParentPath\n ${'top level'} | ${invalidCustomFunctionName} | ${null}\n ${'nested'} | ${{ a: { b: { c: invalidCustomFunctionName } } }} | ${'a.b.c'}\n `(\n 'returns a validation error for $description cases',\n ({ expectedParentPath, transformation }) => {\n expect(\n validateResponseTransformation(transformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: invalidCustomFunctionName,\n description: 'contains an invalid custom function expression',\n }),\n );\n },\n );\n });\n\n describe('a custom function argument is invalid in response transformation', () => {\n const invalidCustomFunctionExpression = '#someFunction($[0])';\n\n test.each`\n description | transformation | expectedParentPath\n ${'top level'} | ${invalidCustomFunctionExpression} | ${null}\n ${'nested'} | ${{ a: { b: { c: invalidCustomFunctionExpression } } }} | ${'a.b.c'}\n `(\n 'returns a validation error for $description cases',\n ({ expectedParentPath, transformation }) => {\n expect(\n validateResponseTransformation(transformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: '$[0]',\n description: \"must be a string starting with '$.'\",\n }),\n );\n },\n );\n });\n\n test('returns a validation error when an argument index is used', () => {\n const argumentExpression = '$[1].a.b.c.';\n const path = 'd.e.f';\n const transformation = set({}, path, argumentExpression);\n\n expect(validateResponseTransformation(transformation)).toStrictEqual(\n validationErrorWith({\n parentPath: path,\n invalidValue: argumentExpression,\n description: \"must be a string starting with '$.'\",\n }),\n );\n });\n });\n\n describe.each`\n description | transformationValue | expectedValidationMessage\n ${'does not start with $'} | ${'a.b.c'} | ${\"must be a string starting with '$.'\"}\n ${'refers to * in the path'} | ${'$.a.b.*'} | ${'cannot refer to the * operator'}\n `(\n 'returns a validation error when a transformation value segment $description',\n ({ transformationValue, expectedValidationMessage }) => {\n test('simple transformation', () => {\n expect(\n validateResponseTransformation(transformationValue),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: null,\n invalidValue: transformationValue,\n description: expectedValidationMessage,\n }),\n );\n });\n\n test('complex transformation', () => {\n const transformation = { d: { e: { f: transformationValue } } };\n\n expect(\n validateResponseTransformation(transformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: 'd.e.f',\n invalidValue: transformationValue,\n description: expectedValidationMessage,\n }),\n );\n });\n },\n );\n\n describe('special fields', () => {\n describe.each(['_id', '_createdDate', '_updatedDate'])(\n '%s',\n (specialField) => {\n const expectedValidationMessage = `cannot refer to the ${specialField} field`;\n\n test('returns a validation error when a transformation value segment $description', () => {\n const transformation = {\n d: { e: { f: { [specialField]: '$.a.b.c' } } },\n '*': '$[1]',\n };\n\n expect(\n validateResponseTransformation(transformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: 'd.e.f',\n invalidValue: specialField,\n description: expectedValidationMessage,\n }),\n );\n });\n\n describe('simple transformation', () => {\n test(`returns a validation error when a segment refers to the special field ${specialField}`, () => {\n const transformationValue = `$.a.b.${specialField}`;\n\n expect(\n validateResponseTransformation(transformationValue),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: null,\n invalidValue: transformationValue,\n description: expectedValidationMessage,\n }),\n );\n });\n });\n\n test('complex transformation', () => {\n const transformationValue = `$.a.b.${specialField}`;\n const transformation = { d: { e: { f: transformationValue } } };\n\n expect(\n validateResponseTransformation(transformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: 'd.e.f',\n invalidValue: transformationValue,\n description: expectedValidationMessage,\n }),\n );\n });\n },\n );\n });\n });\n\n describe('omit transformation', () => {\n describe('invalid @source', () => {\n const invalidSourceValue = 'a.b.c';\n const invalidSourceTransformation = {\n '@source': invalidSourceValue,\n '@omit': times(2, () => aString()),\n };\n\n test.each`\n description | invalidTransformation | expectedParentPath\n ${'top level'} | ${invalidSourceTransformation} | ${'@source'}\n ${'nested'} | ${{ [parentKey]: invalidSourceTransformation }} | ${`${parentKey}.@source`}\n `(\n 'returns a validation error when the @source value is invalid',\n ({ invalidTransformation, expectedParentPath }) => {\n expect(\n validateResponseTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: invalidSourceValue,\n description: \"must be a string starting with '$.'\",\n }),\n );\n },\n );\n });\n\n describe('invalid @omit', () => {\n const transformationWithOmitValue = (value) => ({\n '@source': '$.a.b.c',\n '@omit': value,\n });\n\n const nonArray = aString();\n const nonStringArray = times(2, () => aNumber());\n const arrayWithInvalidPaths = ['a.b.c', aString()];\n\n describe.each`\n description | invalidTransformation | expectedParentPath\n ${'top level'} | ${transformationWithOmitValue(nonArray)} | ${'@omit'}\n ${'nested'} | ${{ [parentKey]: transformationWithOmitValue(nonArray) }} | ${`${parentKey}.@omit`}\n `(\n '@omit is not an array',\n ({ description, invalidTransformation, expectedParentPath }) => {\n test(`returns a validation error for invalid ${description} transformation`, () => {\n expect(\n validateResponseTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: nonArray,\n description: 'must be an array of strings',\n }),\n );\n });\n },\n );\n\n describe.each`\n description | invalidTransformation | expectedParentPath\n ${'top level'} | ${transformationWithOmitValue(nonStringArray)} | ${'@omit'}\n ${'nested'} | ${{ [parentKey]: transformationWithOmitValue(nonStringArray) }} | ${`${parentKey}.@omit`}\n `(\n '@omit is an array of non-strings',\n ({ description, invalidTransformation, expectedParentPath }) => {\n test(`returns a validation error for invalid ${description} transformation`, () => {\n expect(\n validateResponseTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: nonStringArray,\n description: 'must be an array of strings',\n }),\n );\n });\n },\n );\n\n /* eslint-disable max-len */\n describe.each`\n description | invalidTransformation | expectedParentPath\n ${'top level'} | ${transformationWithOmitValue(arrayWithInvalidPaths)} | ${'@omit'}\n ${'nested'} | ${{ [parentKey]: transformationWithOmitValue(arrayWithInvalidPaths) }} | ${`${parentKey}.@omit`}\n `(\n '@omit is an array of invalid string paths',\n ({ description, invalidTransformation, expectedParentPath }) => {\n /* eslint-enable max-len */\n test(`returns a validation error for invalid ${description} transformation`, () => {\n expect(\n validateResponseTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue: arrayWithInvalidPaths,\n description: 'must contain non-nested paths only',\n }),\n );\n });\n },\n );\n });\n });\n\n describe('array-item transformation', () => {\n const validValue = '$.d.e.f';\n\n const invalidPathTransformationWith = (invalidPathValue) => ({\n '@path': invalidPathValue,\n '@itemTransformation': validValue,\n });\n\n describe.each`\n invalidValue | description\n ${'$[0].should.fail'} | ${'invalid path value'}\n ${aRandomItemFrom([aBoolean(), aNumber(), anObject()])} | ${'invalid path type'}\n `('$description', ({ invalidValue }) => {\n test.each`\n description | invalidTransformation | expectedParentPath\n ${'top-level'} | ${invalidPathTransformationWith(invalidValue)} | ${'@path'}\n ${'nested'} | ${{ [parentKey]: invalidPathTransformationWith(invalidValue) }} | ${`${parentKey}.@path`}\n `(\n 'returns a validation error when the @path value is invalid for $description transformation',\n ({ invalidTransformation, expectedParentPath }) => {\n expect(\n validateResponseTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue,\n description: \"must be a string starting with '$.'\",\n }),\n );\n },\n );\n });\n\n describe('invalid @itemTransformation', () => {\n const invalidValue = '$[0].should.fail';\n const invalidPathTransformation = {\n '@path': validValue,\n '@itemTransformation': invalidValue,\n };\n\n test.each`\n description | invalidTransformation | expectedParentPath\n ${'top-level'} | ${invalidPathTransformation} | ${'@itemTransformation'}\n ${'nested'} | ${{ [parentKey]: invalidPathTransformation }} | ${`${parentKey}.@itemTransformation`}\n `(\n 'returns a validation error when the @itemTransformation value is invalid for $description transformation',\n ({ invalidTransformation, expectedParentPath }) => {\n expect(\n validateResponseTransformation(invalidTransformation),\n ).toStrictEqual(\n validationErrorWith({\n parentPath: expectedParentPath,\n invalidValue,\n description: \"must be a string starting with '$.'\",\n }),\n );\n },\n );\n });\n });\n });\n});\n"],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -33,13 +33,15 @@ var _reduceTransformation = require("./lib/transformations/reduceTransformation"
|
|
|
33
33
|
exports.reduceTransformation = _reduceTransformation.reduceTransformation;
|
|
34
34
|
var _validateRequestTransformation = require("./lib/transformations/validations/validateRequestTransformation");
|
|
35
35
|
var _validateResponseTransformation = require("./lib/transformations/validations/validateResponseTransformation");
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
const {
|
|
37
|
+
JS_SINGLE_ARG_UNCHANGED,
|
|
38
|
+
RESPONSE_OBJECT_UNCHANGED,
|
|
39
|
+
ARRAY_ITEMS_PATH_PROPERTY_NAME,
|
|
40
|
+
ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,
|
|
41
|
+
OMIT_SOURCE_PROPERTY_NAME,
|
|
42
|
+
FIELDS_TO_OMIT_PROPERTY_NAME
|
|
43
|
+
} = _common.transformations;
|
|
44
|
+
const transformations = exports.transformations = {
|
|
43
45
|
JS_SINGLE_ARG_UNCHANGED,
|
|
44
46
|
RESPONSE_OBJECT_UNCHANGED,
|
|
45
47
|
ARRAY_ITEMS_PATH_PROPERTY_NAME,
|
|
@@ -47,12 +49,11 @@ const transformations = {
|
|
|
47
49
|
OMIT_SOURCE_PROPERTY_NAME,
|
|
48
50
|
FIELDS_TO_OMIT_PROPERTY_NAME
|
|
49
51
|
};
|
|
50
|
-
exports.transformations = transformations;
|
|
51
52
|
const transformationBuilder = (buildRequestTransformation, buildResponseTransformation) => ({
|
|
52
53
|
buildRequestTransformation,
|
|
53
54
|
buildResponseTransformation
|
|
54
55
|
});
|
|
55
|
-
const preset = {
|
|
56
|
+
const preset = exports.preset = {
|
|
56
57
|
create: transformationBuilder(_create.buildRequestTransformation, _create.buildResponseTransformation),
|
|
57
58
|
update: transformationBuilder(_update.buildRequestTransformation, _update.buildResponseTransformation),
|
|
58
59
|
delete: transformationBuilder(_delete.buildRequestTransformation, _delete.buildResponseTransformation),
|
|
@@ -64,19 +65,15 @@ const preset = {
|
|
|
64
65
|
PAGING_METADATA_RESULT_PROPERTY_NAME: _query.PAGING_METADATA_RESULT_PROPERTY_NAME
|
|
65
66
|
}
|
|
66
67
|
};
|
|
67
|
-
exports.
|
|
68
|
-
const namingHints = {
|
|
68
|
+
const namingHints = exports.namingHints = {
|
|
69
69
|
OPTIONS: 'OPTIONS'
|
|
70
70
|
};
|
|
71
|
-
exports.
|
|
72
|
-
const validation = {
|
|
71
|
+
const validation = exports.validation = {
|
|
73
72
|
validateRequestTransformation: _validateRequestTransformation.validateRequestTransformation,
|
|
74
73
|
validateResponseTransformation: _validateResponseTransformation.validateResponseTransformation
|
|
75
74
|
};
|
|
76
|
-
exports.
|
|
77
|
-
const corvidEntities = {
|
|
75
|
+
const corvidEntities = exports.corvidEntities = {
|
|
78
76
|
toCorvidName: _corvidEntity.toCorvidName,
|
|
79
77
|
fromCorvidName: _corvidEntity.fromCorvidName
|
|
80
78
|
};
|
|
81
|
-
exports.corvidEntities = corvidEntities;
|
|
82
79
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_corvidEntity","require","_getArgumentCardinality","exports","getArgumentCardinality","_helpers","extractIndexAndPath","getArgumentIndex","isArrayIndexString","isIdentityResponseTransformation","isJsonPathExpression","isMapArrayItemsTransformation","isOmitTransformation","isRootObjectIdentifier","isSimpleTransformation","isSpreadOperator","parseOmitTransformation","stripJsonPathRootPrefix","_common","_customFunctions","isFunctionCallExpression","parseCustomFunctionCall","runCustomFunctionCallExpression","_create","_delete","_get","_list","_query","_update","_reduceTransformation","reduceTransformation","_validateRequestTransformation","_validateResponseTransformation","JS_SINGLE_ARG_UNCHANGED","
|
|
1
|
+
{"version":3,"names":["_corvidEntity","require","_getArgumentCardinality","exports","getArgumentCardinality","_helpers","extractIndexAndPath","getArgumentIndex","isArrayIndexString","isIdentityResponseTransformation","isJsonPathExpression","isMapArrayItemsTransformation","isOmitTransformation","isRootObjectIdentifier","isSimpleTransformation","isSpreadOperator","parseOmitTransformation","stripJsonPathRootPrefix","_common","_customFunctions","isFunctionCallExpression","parseCustomFunctionCall","runCustomFunctionCallExpression","_create","_delete","_get","_list","_query","_update","_reduceTransformation","reduceTransformation","_validateRequestTransformation","_validateResponseTransformation","JS_SINGLE_ARG_UNCHANGED","RESPONSE_OBJECT_UNCHANGED","ARRAY_ITEMS_PATH_PROPERTY_NAME","ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME","OMIT_SOURCE_PROPERTY_NAME","FIELDS_TO_OMIT_PROPERTY_NAME","allTransformations","transformations","transformationBuilder","buildRequestTransformation","buildResponseTransformation","preset","create","buildCreateRequestTransformation","buildCreateResponseTransformation","update","buildUpdateRequestTransformation","buildUpdateResponseTransformation","delete","buildDeleteRequestTransformation","buildDeleteResponseTransformation","get","buildGetRequestTransformation","buildGetResponseTransformation","list","buildListRequestTransformation","buildListResponseTransformation","query","buildQueryRequestTransformation","buildQueryResponseTransformation","ITEMS_RESULT_PROPERTY_NAME","PAGING_METADATA_RESULT_PROPERTY_NAME","namingHints","OPTIONS","validation","validateRequestTransformation","validateResponseTransformation","corvidEntities","toCorvidName","fromCorvidName"],"sources":["../../src/index.ts"],"sourcesContent":["import { fromCorvidName, toCorvidName } from './lib/corvid-entity';\nimport { getArgumentCardinality } from './lib/getArgumentCardinality';\nimport {\n extractIndexAndPath,\n getArgumentIndex,\n isArrayIndexString,\n isIdentityResponseTransformation,\n isJsonPathExpression,\n isMapArrayItemsTransformation,\n isOmitTransformation,\n isRootObjectIdentifier,\n isSimpleTransformation,\n isSpreadOperator,\n parseOmitTransformation,\n stripJsonPathRootPrefix,\n} from './lib/helpers';\nimport { transformations as allTransformations } from './lib/transformations/common';\n\nconst {\n JS_SINGLE_ARG_UNCHANGED,\n RESPONSE_OBJECT_UNCHANGED,\n ARRAY_ITEMS_PATH_PROPERTY_NAME,\n ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,\n OMIT_SOURCE_PROPERTY_NAME,\n FIELDS_TO_OMIT_PROPERTY_NAME,\n} = allTransformations;\n\nconst transformations = {\n JS_SINGLE_ARG_UNCHANGED,\n RESPONSE_OBJECT_UNCHANGED,\n ARRAY_ITEMS_PATH_PROPERTY_NAME,\n ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,\n OMIT_SOURCE_PROPERTY_NAME,\n FIELDS_TO_OMIT_PROPERTY_NAME,\n};\n\nimport {\n isFunctionCallExpression,\n parseCustomFunctionCall,\n runCustomFunctionCallExpression,\n} from './lib/transformations/custom-functions';\nimport {\n buildRequestTransformation as buildCreateRequestTransformation,\n buildResponseTransformation as buildCreateResponseTransformation,\n} from './lib/transformations/preset/create';\nimport {\n buildRequestTransformation as buildDeleteRequestTransformation,\n buildResponseTransformation as buildDeleteResponseTransformation,\n} from './lib/transformations/preset/delete';\nimport {\n buildRequestTransformation as buildGetRequestTransformation,\n buildResponseTransformation as buildGetResponseTransformation,\n} from './lib/transformations/preset/get';\nimport {\n buildRequestTransformation as buildListRequestTransformation,\n buildResponseTransformation as buildListResponseTransformation,\n} from './lib/transformations/preset/list';\nimport {\n buildRequestTransformation as buildQueryRequestTransformation,\n buildResponseTransformation as buildQueryResponseTransformation,\n ITEMS_RESULT_PROPERTY_NAME,\n PAGING_METADATA_RESULT_PROPERTY_NAME,\n} from './lib/transformations/preset/query';\nimport {\n buildRequestTransformation as buildUpdateRequestTransformation,\n buildResponseTransformation as buildUpdateResponseTransformation,\n} from './lib/transformations/preset/update';\nimport { reduceTransformation } from './lib/transformations/reduceTransformation';\nimport { validateRequestTransformation } from './lib/transformations/validations/validateRequestTransformation';\nimport { validateResponseTransformation } from './lib/transformations/validations/validateResponseTransformation';\n\nconst transformationBuilder = (\n buildRequestTransformation,\n buildResponseTransformation,\n) => ({\n buildRequestTransformation,\n buildResponseTransformation,\n});\n\nconst preset = {\n create: transformationBuilder(\n buildCreateRequestTransformation,\n buildCreateResponseTransformation,\n ),\n update: transformationBuilder(\n buildUpdateRequestTransformation,\n buildUpdateResponseTransformation,\n ),\n delete: transformationBuilder(\n buildDeleteRequestTransformation,\n buildDeleteResponseTransformation,\n ),\n get: transformationBuilder(\n buildGetRequestTransformation,\n buildGetResponseTransformation,\n ),\n list: transformationBuilder(\n buildListRequestTransformation,\n buildListResponseTransformation,\n ),\n query: {\n ...transformationBuilder(\n buildQueryRequestTransformation,\n buildQueryResponseTransformation,\n ),\n ITEMS_RESULT_PROPERTY_NAME,\n PAGING_METADATA_RESULT_PROPERTY_NAME,\n },\n};\n\nconst namingHints = { OPTIONS: 'OPTIONS' };\n\nconst validation = {\n validateRequestTransformation,\n validateResponseTransformation,\n};\n\nconst corvidEntities = {\n toCorvidName,\n fromCorvidName,\n};\n\nexport {\n corvidEntities,\n extractIndexAndPath,\n getArgumentCardinality,\n getArgumentIndex,\n isArrayIndexString,\n isFunctionCallExpression,\n isIdentityResponseTransformation,\n isJsonPathExpression,\n isMapArrayItemsTransformation,\n isOmitTransformation,\n isRootObjectIdentifier,\n isSimpleTransformation,\n isSpreadOperator,\n namingHints,\n parseCustomFunctionCall,\n parseOmitTransformation,\n preset,\n reduceTransformation,\n runCustomFunctionCallExpression,\n stripJsonPathRootPrefix,\n transformations,\n validation,\n};\n"],"mappings":"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"}
|
|
@@ -3,14 +3,12 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.toCorvidName = exports.isReservedCorvidFieldName = exports.isReservedCommonFieldName = exports.fromCorvidName = exports.TO_CORVID_ENTITY_RENAMED_KEYS = exports.FROM_CORVID_ENTITY_RENAMED_KEYS = void 0;
|
|
5
5
|
var _lodash = require("lodash");
|
|
6
|
-
const TO_CORVID_ENTITY_RENAMED_KEYS = {
|
|
6
|
+
const TO_CORVID_ENTITY_RENAMED_KEYS = exports.TO_CORVID_ENTITY_RENAMED_KEYS = {
|
|
7
7
|
id: '_id',
|
|
8
8
|
createdDate: '_createdDate',
|
|
9
9
|
updatedDate: '_updatedDate'
|
|
10
10
|
};
|
|
11
|
-
exports.
|
|
12
|
-
const FROM_CORVID_ENTITY_RENAMED_KEYS = (0, _lodash.invert)(TO_CORVID_ENTITY_RENAMED_KEYS);
|
|
13
|
-
exports.FROM_CORVID_ENTITY_RENAMED_KEYS = FROM_CORVID_ENTITY_RENAMED_KEYS;
|
|
11
|
+
const FROM_CORVID_ENTITY_RENAMED_KEYS = exports.FROM_CORVID_ENTITY_RENAMED_KEYS = (0, _lodash.invert)(TO_CORVID_ENTITY_RENAMED_KEYS);
|
|
14
12
|
const isReservedCorvidFieldName = name => name in FROM_CORVID_ENTITY_RENAMED_KEYS;
|
|
15
13
|
exports.isReservedCorvidFieldName = isReservedCorvidFieldName;
|
|
16
14
|
const isReservedCommonFieldName = name => name in TO_CORVID_ENTITY_RENAMED_KEYS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","require","TO_CORVID_ENTITY_RENAMED_KEYS","id","createdDate","updatedDate","
|
|
1
|
+
{"version":3,"names":["_lodash","require","TO_CORVID_ENTITY_RENAMED_KEYS","exports","id","createdDate","updatedDate","FROM_CORVID_ENTITY_RENAMED_KEYS","invert","isReservedCorvidFieldName","name","isReservedCommonFieldName","toCorvidName","fromCorvidName"],"sources":["../../../../src/lib/corvid-entity/index.ts"],"sourcesContent":["import { invert } from 'lodash';\n\nconst TO_CORVID_ENTITY_RENAMED_KEYS = {\n id: '_id',\n createdDate: '_createdDate',\n updatedDate: '_updatedDate',\n};\nconst FROM_CORVID_ENTITY_RENAMED_KEYS = invert(TO_CORVID_ENTITY_RENAMED_KEYS);\n\nconst isReservedCorvidFieldName = (name) =>\n name in FROM_CORVID_ENTITY_RENAMED_KEYS;\n\nconst isReservedCommonFieldName = (name) =>\n name in TO_CORVID_ENTITY_RENAMED_KEYS;\n\nconst toCorvidName = (name) => TO_CORVID_ENTITY_RENAMED_KEYS[name] || name;\n\nconst fromCorvidName = (name) => FROM_CORVID_ENTITY_RENAMED_KEYS[name] || name;\n\nexport {\n FROM_CORVID_ENTITY_RENAMED_KEYS,\n fromCorvidName,\n isReservedCommonFieldName,\n isReservedCorvidFieldName,\n TO_CORVID_ENTITY_RENAMED_KEYS,\n toCorvidName,\n};\n"],"mappings":";;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,MAAMC,6BAA6B,GAAAC,OAAA,CAAAD,6BAAA,GAAG;EACpCE,EAAE,EAAE,KAAK;EACTC,WAAW,EAAE,cAAc;EAC3BC,WAAW,EAAE;AACf,CAAC;AACD,MAAMC,+BAA+B,GAAAJ,OAAA,CAAAI,+BAAA,GAAG,IAAAC,cAAM,EAACN,6BAA6B,CAAC;AAE7E,MAAMO,yBAAyB,GAAIC,IAAI,IACrCA,IAAI,IAAIH,+BAA+B;AAACJ,OAAA,CAAAM,yBAAA,GAAAA,yBAAA;AAE1C,MAAME,yBAAyB,GAAID,IAAI,IACrCA,IAAI,IAAIR,6BAA6B;AAACC,OAAA,CAAAQ,yBAAA,GAAAA,yBAAA;AAExC,MAAMC,YAAY,GAAIF,IAAI,IAAKR,6BAA6B,CAACQ,IAAI,CAAC,IAAIA,IAAI;AAACP,OAAA,CAAAS,YAAA,GAAAA,YAAA;AAE3E,MAAMC,cAAc,GAAIH,IAAI,IAAKH,+BAA+B,CAACG,IAAI,CAAC,IAAIA,IAAI;AAACP,OAAA,CAAAU,cAAA,GAAAA,cAAA"}
|
package/dist/cjs/lib/helpers.js
CHANGED
|
@@ -6,13 +6,15 @@ var _jsonpathPlus = require("jsonpath-plus");
|
|
|
6
6
|
var _lodash = require("lodash");
|
|
7
7
|
var _common = require("./transformations/common");
|
|
8
8
|
var _constants = require("./transformations/constants");
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
const {
|
|
10
|
+
RESPONSE_OBJECT_UNCHANGED,
|
|
11
|
+
ARRAY_ITEMS_PATH_PROPERTY_NAME,
|
|
12
|
+
ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,
|
|
13
|
+
OMIT_SOURCE_PROPERTY_NAME,
|
|
14
|
+
FIELDS_TO_OMIT_PROPERTY_NAME,
|
|
15
|
+
SPREAD_OPERATOR,
|
|
16
|
+
CONSTANT_VALUE_PROPERTY_NAME
|
|
17
|
+
} = _common.transformations;
|
|
16
18
|
const isInvalidJsonPath = path => (0, _lodash.isError)((0, _lodash.attempt)(() => (0, _jsonpathPlus.JSONPath)({
|
|
17
19
|
path,
|
|
18
20
|
json: {}
|
|
@@ -42,9 +44,7 @@ exports.isJsonPathExpression = isJsonPathExpression;
|
|
|
42
44
|
const stripJsonPathRootPrefix = jsonPath => jsonPath.replace(`${_constants.JSON_PATH_ROOT}.`, '');
|
|
43
45
|
exports.stripJsonPathRootPrefix = stripJsonPathRootPrefix;
|
|
44
46
|
const extractIndexAndPath = simpleTransformation => {
|
|
45
|
-
const
|
|
46
|
-
maybeIndexExpression = _simpleTransformation[0],
|
|
47
|
-
rest = _simpleTransformation.slice(1);
|
|
47
|
+
const [maybeIndexExpression, ...rest] = simpleTransformation.split('.');
|
|
48
48
|
const index = getArgumentIndex(maybeIndexExpression);
|
|
49
49
|
return {
|
|
50
50
|
index,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_jsonpathPlus","require","_lodash","_common","_constants","RESPONSE_OBJECT_UNCHANGED","
|
|
1
|
+
{"version":3,"names":["_jsonpathPlus","require","_lodash","_common","_constants","RESPONSE_OBJECT_UNCHANGED","ARRAY_ITEMS_PATH_PROPERTY_NAME","ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME","OMIT_SOURCE_PROPERTY_NAME","FIELDS_TO_OMIT_PROPERTY_NAME","SPREAD_OPERATOR","CONSTANT_VALUE_PROPERTY_NAME","transformations","isInvalidJsonPath","path","isError","attempt","JSONPath","json","exports","isInvalidJsonValue","value","JSON","parse","isSimpleTransformation","transformation","isArrayIndexString","str","test","isSpreadOperator","key","isIdentityResponseTransformation","transformationPath","getArgumentIndex","s","match","groups","Number","argIndex","hasValidArgumentIndex","isRootObjectIdentifier","JSON_PATH_ROOT","isJsonPathExpression","exp","startsWith","stripJsonPathRootPrefix","jsonPath","replace","extractIndexAndPath","simpleTransformation","maybeIndexExpression","rest","split","index","nestedPath","length","join","isMapArrayItemsTransformation","transformationValue","has","parseMapArrayItemsTransformation","sourceArrayExpression","itemTransformation","isOmitTransformation","parseOmitTransformation","sourceExpression","fieldsToOmit","isConstantExpression"],"sources":["../../../src/lib/helpers.ts"],"sourcesContent":["import { JSONPath } from 'jsonpath-plus';\nimport { attempt, has, isError } from 'lodash';\n\nimport { transformations } from './transformations/common';\nimport { JSON_PATH_ROOT } from './transformations/constants';\n\nconst {\n RESPONSE_OBJECT_UNCHANGED,\n ARRAY_ITEMS_PATH_PROPERTY_NAME,\n ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,\n OMIT_SOURCE_PROPERTY_NAME,\n FIELDS_TO_OMIT_PROPERTY_NAME,\n SPREAD_OPERATOR,\n CONSTANT_VALUE_PROPERTY_NAME,\n} = transformations;\n\nconst isInvalidJsonPath = (path) =>\n isError(attempt(() => JSONPath({ path, json: {} })));\n\nconst isInvalidJsonValue = (value) => isError(attempt(() => JSON.parse(value)));\n\nconst isSimpleTransformation = (transformation) =>\n typeof transformation === 'string';\n\nconst isArrayIndexString = (str) => !!/\\d+/.test(str);\n\nconst isSpreadOperator = (key) => key === SPREAD_OPERATOR;\n\nconst isIdentityResponseTransformation = (transformationPath) =>\n transformationPath === RESPONSE_OBJECT_UNCHANGED;\n\nconst getArgumentIndex = (s) => {\n const match = s.match(/\\$\\[(?<argIndex>\\d+)\\]/);\n\n return match && match.groups && Number(match.groups.argIndex);\n};\n\nconst hasValidArgumentIndex = (path) => getArgumentIndex(path) !== null;\n\nconst isRootObjectIdentifier = (s) => s === JSON_PATH_ROOT;\n\nconst isJsonPathExpression = (exp) => exp && exp.startsWith(JSON_PATH_ROOT);\n\nconst stripJsonPathRootPrefix = (jsonPath) =>\n jsonPath.replace(`${JSON_PATH_ROOT}.`, '');\n\nconst extractIndexAndPath = (simpleTransformation) => {\n const [maybeIndexExpression, ...rest] = simpleTransformation.split('.');\n const index = getArgumentIndex(maybeIndexExpression);\n\n return {\n index,\n nestedPath: index !== null && rest.length > 0 ? rest.join('.') : null,\n };\n};\n\nconst isMapArrayItemsTransformation = (transformationValue) =>\n has(transformationValue, ARRAY_ITEMS_PATH_PROPERTY_NAME) &&\n has(transformationValue, ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME);\n\nconst parseMapArrayItemsTransformation = (transformationValue) => ({\n sourceArrayExpression: transformationValue[ARRAY_ITEMS_PATH_PROPERTY_NAME],\n itemTransformation:\n transformationValue[ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME],\n});\n\nconst isOmitTransformation = (transformationValue) =>\n has(transformationValue, OMIT_SOURCE_PROPERTY_NAME) &&\n has(transformationValue, FIELDS_TO_OMIT_PROPERTY_NAME);\n\nconst parseOmitTransformation = (transformationValue) => ({\n sourceExpression: transformationValue[OMIT_SOURCE_PROPERTY_NAME],\n fieldsToOmit: transformationValue[FIELDS_TO_OMIT_PROPERTY_NAME],\n});\n\nconst isConstantExpression = (value) =>\n has(value, CONSTANT_VALUE_PROPERTY_NAME);\n\nexport {\n extractIndexAndPath,\n getArgumentIndex,\n hasValidArgumentIndex,\n isArrayIndexString,\n isConstantExpression,\n isIdentityResponseTransformation,\n isInvalidJsonPath,\n isInvalidJsonValue,\n isJsonPathExpression,\n isMapArrayItemsTransformation,\n isOmitTransformation,\n isRootObjectIdentifier,\n isSimpleTransformation,\n isSpreadOperator,\n parseMapArrayItemsTransformation,\n parseOmitTransformation,\n stripJsonPathRootPrefix,\n};\n"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ const unwrap = ({
|
|
|
7
7
|
responseMessageResultPath
|
|
8
8
|
}) => `$.${responseMessageResultPath}`;
|
|
9
9
|
exports.unwrap = unwrap;
|
|
10
|
-
const transformations = {
|
|
10
|
+
const transformations = exports.transformations = {
|
|
11
11
|
JS_SINGLE_ARG_UNCHANGED: '$[0]',
|
|
12
12
|
RESPONSE_OBJECT_UNCHANGED: _constants.JSON_PATH_ROOT,
|
|
13
13
|
ARRAY_ITEMS_PATH_PROPERTY_NAME: '@path',
|
|
@@ -17,5 +17,4 @@ const transformations = {
|
|
|
17
17
|
SPREAD_OPERATOR: '*',
|
|
18
18
|
CONSTANT_VALUE_PROPERTY_NAME: '@constant'
|
|
19
19
|
};
|
|
20
|
-
exports.transformations = transformations;
|
|
21
20
|
//# sourceMappingURL=common.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_constants","require","unwrap","responseMessageResultPath","exports","transformations","JS_SINGLE_ARG_UNCHANGED","RESPONSE_OBJECT_UNCHANGED","JSON_PATH_ROOT","ARRAY_ITEMS_PATH_PROPERTY_NAME","ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME","OMIT_SOURCE_PROPERTY_NAME","FIELDS_TO_OMIT_PROPERTY_NAME","SPREAD_OPERATOR","CONSTANT_VALUE_PROPERTY_NAME"],"sources":["../../../../src/lib/transformations/common.ts"],"sourcesContent":["import { JSON_PATH_ROOT } from './constants';\n\nconst unwrap = ({ responseMessageResultPath }) =>\n `$.${responseMessageResultPath}`;\n\nconst transformations = {\n JS_SINGLE_ARG_UNCHANGED: '$[0]',\n RESPONSE_OBJECT_UNCHANGED: JSON_PATH_ROOT,\n ARRAY_ITEMS_PATH_PROPERTY_NAME: '@path',\n ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME: '@itemTransformation',\n OMIT_SOURCE_PROPERTY_NAME: '@source',\n FIELDS_TO_OMIT_PROPERTY_NAME: '@omit',\n SPREAD_OPERATOR: '*',\n CONSTANT_VALUE_PROPERTY_NAME: '@constant',\n};\n\nexport { transformations, unwrap };\n"],"mappings":";;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA,MAAMC,MAAM,GAAGA,CAAC;EAAEC;AAA0B,CAAC,KAC1C,KAAIA,yBAA0B,EAAC;AAACC,OAAA,CAAAF,MAAA,GAAAA,MAAA;AAEnC,MAAMG,eAAe,GAAG;EACtBC,uBAAuB,EAAE,MAAM;EAC/BC,yBAAyB,EAAEC,yBAAc;EACzCC,8BAA8B,EAAE,OAAO;EACvCC,uCAAuC,EAAE,qBAAqB;EAC9DC,yBAAyB,EAAE,SAAS;EACpCC,4BAA4B,EAAE,OAAO;EACrCC,eAAe,EAAE,GAAG;EACpBC,4BAA4B,EAAE;AAChC,CAAC
|
|
1
|
+
{"version":3,"names":["_constants","require","unwrap","responseMessageResultPath","exports","transformations","JS_SINGLE_ARG_UNCHANGED","RESPONSE_OBJECT_UNCHANGED","JSON_PATH_ROOT","ARRAY_ITEMS_PATH_PROPERTY_NAME","ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME","OMIT_SOURCE_PROPERTY_NAME","FIELDS_TO_OMIT_PROPERTY_NAME","SPREAD_OPERATOR","CONSTANT_VALUE_PROPERTY_NAME"],"sources":["../../../../src/lib/transformations/common.ts"],"sourcesContent":["import { JSON_PATH_ROOT } from './constants';\n\nconst unwrap = ({ responseMessageResultPath }) =>\n `$.${responseMessageResultPath}`;\n\nconst transformations = {\n JS_SINGLE_ARG_UNCHANGED: '$[0]',\n RESPONSE_OBJECT_UNCHANGED: JSON_PATH_ROOT,\n ARRAY_ITEMS_PATH_PROPERTY_NAME: '@path',\n ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME: '@itemTransformation',\n OMIT_SOURCE_PROPERTY_NAME: '@source',\n FIELDS_TO_OMIT_PROPERTY_NAME: '@omit',\n SPREAD_OPERATOR: '*',\n CONSTANT_VALUE_PROPERTY_NAME: '@constant',\n};\n\nexport { transformations, unwrap };\n"],"mappings":";;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA,MAAMC,MAAM,GAAGA,CAAC;EAAEC;AAA0B,CAAC,KAC1C,KAAIA,yBAA0B,EAAC;AAACC,OAAA,CAAAF,MAAA,GAAAA,MAAA;AAEnC,MAAMG,eAAe,GAAAD,OAAA,CAAAC,eAAA,GAAG;EACtBC,uBAAuB,EAAE,MAAM;EAC/BC,yBAAyB,EAAEC,yBAAc;EACzCC,8BAA8B,EAAE,OAAO;EACvCC,uCAAuC,EAAE,qBAAqB;EAC9DC,yBAAyB,EAAE,SAAS;EACpCC,4BAA4B,EAAE,OAAO;EACrCC,eAAe,EAAE,GAAG;EACpBC,4BAA4B,EAAE;AAChC,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.visitorTypes = exports.JSON_PATH_ROOT = void 0;
|
|
5
|
-
const visitorTypes = {
|
|
5
|
+
const visitorTypes = exports.visitorTypes = {
|
|
6
6
|
TOP_LEVEL_SIMPLE_TRANSFORMATION: 'TopLevelSimpleTransformationExpression',
|
|
7
7
|
TOP_LEVEL_CUSTOM_FUNCTION: 'TopLevelCustomFunctionExpression',
|
|
8
8
|
NESTED_UNSUPPORTED_TRANSFORMATION: 'NestedUnsupportedTransformationExpression',
|
|
@@ -17,7 +17,5 @@ const visitorTypes = {
|
|
|
17
17
|
NESTED_OMIT_TRANSFORMATION: 'NestedOmit',
|
|
18
18
|
NESTED_CONSTANT_VALUE: 'NestedConstantValue'
|
|
19
19
|
};
|
|
20
|
-
exports.
|
|
21
|
-
const JSON_PATH_ROOT = '$';
|
|
22
|
-
exports.JSON_PATH_ROOT = JSON_PATH_ROOT;
|
|
20
|
+
const JSON_PATH_ROOT = exports.JSON_PATH_ROOT = '$';
|
|
23
21
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["visitorTypes","TOP_LEVEL_SIMPLE_TRANSFORMATION","TOP_LEVEL_CUSTOM_FUNCTION","NESTED_UNSUPPORTED_TRANSFORMATION","TOP_LEVEL_UNSUPPORTED_TRANSFORMATION","NESTED_SPREAD","TOP_LEVEL_SPREAD","CUSTOM_FUNCTION","NESTED_SIMPLE_TRANSFORMATION","MAP_ARRAY_ITEMS","TOP_LEVEL_MAP_ARRAY_ITEMS","TOP_LEVEL_OMIT_TRANSFORMATION","NESTED_OMIT_TRANSFORMATION","NESTED_CONSTANT_VALUE","
|
|
1
|
+
{"version":3,"names":["visitorTypes","exports","TOP_LEVEL_SIMPLE_TRANSFORMATION","TOP_LEVEL_CUSTOM_FUNCTION","NESTED_UNSUPPORTED_TRANSFORMATION","TOP_LEVEL_UNSUPPORTED_TRANSFORMATION","NESTED_SPREAD","TOP_LEVEL_SPREAD","CUSTOM_FUNCTION","NESTED_SIMPLE_TRANSFORMATION","MAP_ARRAY_ITEMS","TOP_LEVEL_MAP_ARRAY_ITEMS","TOP_LEVEL_OMIT_TRANSFORMATION","NESTED_OMIT_TRANSFORMATION","NESTED_CONSTANT_VALUE","JSON_PATH_ROOT"],"sources":["../../../../src/lib/transformations/constants.ts"],"sourcesContent":["const visitorTypes = {\n TOP_LEVEL_SIMPLE_TRANSFORMATION: 'TopLevelSimpleTransformationExpression',\n TOP_LEVEL_CUSTOM_FUNCTION: 'TopLevelCustomFunctionExpression',\n NESTED_UNSUPPORTED_TRANSFORMATION:\n 'NestedUnsupportedTransformationExpression',\n TOP_LEVEL_UNSUPPORTED_TRANSFORMATION:\n 'TopLevelUnsupportedTransformationExpression',\n NESTED_SPREAD: 'NestedSpreadExpression',\n TOP_LEVEL_SPREAD: 'TopLevelSpreadExpression',\n CUSTOM_FUNCTION: 'CustomFunctionExpression',\n NESTED_SIMPLE_TRANSFORMATION: 'NestedSimpleTransformationExpression',\n MAP_ARRAY_ITEMS: 'MapArrayItems',\n TOP_LEVEL_MAP_ARRAY_ITEMS: 'TopLevelMapArrayItems',\n TOP_LEVEL_OMIT_TRANSFORMATION: 'TopLevelOmit',\n NESTED_OMIT_TRANSFORMATION: 'NestedOmit',\n NESTED_CONSTANT_VALUE: 'NestedConstantValue',\n};\n\nconst JSON_PATH_ROOT = '$';\n\nexport { JSON_PATH_ROOT, visitorTypes };\n"],"mappings":";;;;AAAA,MAAMA,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EACnBE,+BAA+B,EAAE,wCAAwC;EACzEC,yBAAyB,EAAE,kCAAkC;EAC7DC,iCAAiC,EAC/B,2CAA2C;EAC7CC,oCAAoC,EAClC,6CAA6C;EAC/CC,aAAa,EAAE,wBAAwB;EACvCC,gBAAgB,EAAE,0BAA0B;EAC5CC,eAAe,EAAE,0BAA0B;EAC3CC,4BAA4B,EAAE,sCAAsC;EACpEC,eAAe,EAAE,eAAe;EAChCC,yBAAyB,EAAE,uBAAuB;EAClDC,6BAA6B,EAAE,cAAc;EAC7CC,0BAA0B,EAAE,YAAY;EACxCC,qBAAqB,EAAE;AACzB,CAAC;AAED,MAAMC,cAAc,GAAAd,OAAA,CAAAc,cAAA,GAAG,GAAG"}
|
|
@@ -5,7 +5,9 @@ exports.buildResponseTransformation = exports.buildRequestTransformation = void
|
|
|
5
5
|
var _motionEdmAutogenCommon = require("@wix/motion-edm-autogen-common");
|
|
6
6
|
var _lodash = require("lodash");
|
|
7
7
|
var _common = require("../common");
|
|
8
|
-
const
|
|
8
|
+
const {
|
|
9
|
+
RESPONSE_OBJECT_UNCHANGED
|
|
10
|
+
} = _common.transformations;
|
|
9
11
|
const contains = (longerPath, shorterPath) => longerPath.startsWith(shorterPath) && (0, _motionEdmAutogenCommon.segmentCount)(longerPath) === (0, _motionEdmAutogenCommon.segmentCount)(shorterPath) + 1;
|
|
10
12
|
const buildRequestTransformation = ({
|
|
11
13
|
requestMessageIdentifierPath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_motionEdmAutogenCommon","require","_lodash","_common","RESPONSE_OBJECT_UNCHANGED","transformations","contains","longerPath","shorterPath","startsWith","segmentCount","buildRequestTransformation","requestMessageIdentifierPath","requestMessageOptionsPath","transformed","set","merge","exports","buildResponseTransformation"],"sources":["../../../../../src/lib/transformations/preset/delete.ts"],"sourcesContent":["import { segmentCount } from '@wix/motion-edm-autogen-common';\nimport { merge, set } from 'lodash';\n\nimport { transformations } from '../common';\n\nconst { RESPONSE_OBJECT_UNCHANGED } = transformations;\n\nconst contains = (longerPath, shorterPath) =>\n longerPath.startsWith(shorterPath) &&\n segmentCount(longerPath) === segmentCount(shorterPath) + 1;\n\nconst buildRequestTransformation = ({\n requestMessageIdentifierPath,\n requestMessageOptionsPath,\n}) => {\n const transformed = set({}, requestMessageIdentifierPath, '$[0]');\n\n if (requestMessageOptionsPath) {\n if (contains(requestMessageIdentifierPath, requestMessageOptionsPath)) {\n return merge(transformed, {\n [requestMessageOptionsPath]: { '*': '$[1]' },\n });\n }\n\n return set(transformed, requestMessageOptionsPath, '$[1]');\n }\n\n return transformed;\n};\n\nconst buildResponseTransformation = () => RESPONSE_OBJECT_UNCHANGED;\n\nexport { buildRequestTransformation, buildResponseTransformation };\n"],"mappings":";;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAEA,
|
|
1
|
+
{"version":3,"names":["_motionEdmAutogenCommon","require","_lodash","_common","RESPONSE_OBJECT_UNCHANGED","transformations","contains","longerPath","shorterPath","startsWith","segmentCount","buildRequestTransformation","requestMessageIdentifierPath","requestMessageOptionsPath","transformed","set","merge","exports","buildResponseTransformation"],"sources":["../../../../../src/lib/transformations/preset/delete.ts"],"sourcesContent":["import { segmentCount } from '@wix/motion-edm-autogen-common';\nimport { merge, set } from 'lodash';\n\nimport { transformations } from '../common';\n\nconst { RESPONSE_OBJECT_UNCHANGED } = transformations;\n\nconst contains = (longerPath, shorterPath) =>\n longerPath.startsWith(shorterPath) &&\n segmentCount(longerPath) === segmentCount(shorterPath) + 1;\n\nconst buildRequestTransformation = ({\n requestMessageIdentifierPath,\n requestMessageOptionsPath,\n}) => {\n const transformed = set({}, requestMessageIdentifierPath, '$[0]');\n\n if (requestMessageOptionsPath) {\n if (contains(requestMessageIdentifierPath, requestMessageOptionsPath)) {\n return merge(transformed, {\n [requestMessageOptionsPath]: { '*': '$[1]' },\n });\n }\n\n return set(transformed, requestMessageOptionsPath, '$[1]');\n }\n\n return transformed;\n};\n\nconst buildResponseTransformation = () => RESPONSE_OBJECT_UNCHANGED;\n\nexport { buildRequestTransformation, buildResponseTransformation };\n"],"mappings":";;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAEA,MAAM;EAAEG;AAA0B,CAAC,GAAGC,uBAAe;AAErD,MAAMC,QAAQ,GAAGA,CAACC,UAAU,EAAEC,WAAW,KACvCD,UAAU,CAACE,UAAU,CAACD,WAAW,CAAC,IAClC,IAAAE,oCAAY,EAACH,UAAU,CAAC,KAAK,IAAAG,oCAAY,EAACF,WAAW,CAAC,GAAG,CAAC;AAE5D,MAAMG,0BAA0B,GAAGA,CAAC;EAClCC,4BAA4B;EAC5BC;AACF,CAAC,KAAK;EACJ,MAAMC,WAAW,GAAG,IAAAC,WAAG,EAAC,CAAC,CAAC,EAAEH,4BAA4B,EAAE,MAAM,CAAC;EAEjE,IAAIC,yBAAyB,EAAE;IAC7B,IAAIP,QAAQ,CAACM,4BAA4B,EAAEC,yBAAyB,CAAC,EAAE;MACrE,OAAO,IAAAG,aAAK,EAACF,WAAW,EAAE;QACxB,CAACD,yBAAyB,GAAG;UAAE,GAAG,EAAE;QAAO;MAC7C,CAAC,CAAC;IACJ;IAEA,OAAO,IAAAE,WAAG,EAACD,WAAW,EAAED,yBAAyB,EAAE,MAAM,CAAC;EAC5D;EAEA,OAAOC,WAAW;AACpB,CAAC;AAACG,OAAA,CAAAN,0BAAA,GAAAA,0BAAA;AAEF,MAAMO,2BAA2B,GAAGA,CAAA,KAAMd,yBAAyB;AAACa,OAAA,CAAAC,2BAAA,GAAAA,2BAAA"}
|
|
@@ -4,13 +4,15 @@ exports.__esModule = true;
|
|
|
4
4
|
exports.buildResponseTransformation = exports.buildRequestTransformation = exports.PAGING_METADATA_RESULT_PROPERTY_NAME = exports.ITEMS_RESULT_PROPERTY_NAME = void 0;
|
|
5
5
|
var _motionEdmAutogenCommon = require("@wix/motion-edm-autogen-common");
|
|
6
6
|
var _common = require("../common");
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
const {
|
|
8
|
+
ARRAY_ITEMS_PATH_PROPERTY_NAME,
|
|
9
|
+
ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME
|
|
10
|
+
} = _common.transformations;
|
|
11
|
+
const {
|
|
12
|
+
DEFAULT_REQUEST_QUERY_OBJECT_PROPERTY_NAME
|
|
13
|
+
} = _motionEdmAutogenCommon.constants;
|
|
14
|
+
const ITEMS_RESULT_PROPERTY_NAME = exports.ITEMS_RESULT_PROPERTY_NAME = 'items';
|
|
15
|
+
const PAGING_METADATA_RESULT_PROPERTY_NAME = exports.PAGING_METADATA_RESULT_PROPERTY_NAME = 'pagingMetadata';
|
|
14
16
|
const buildRequestTransformation = ({
|
|
15
17
|
requestQueryObjectPropertyName = DEFAULT_REQUEST_QUERY_OBJECT_PROPERTY_NAME
|
|
16
18
|
} = {}) => ({
|