shinkansen-pinion 1.0.36

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.
Files changed (126) hide show
  1. package/.husky/pre-commit +4 -0
  2. package/README.md +10 -0
  3. package/babel.config.js +72 -0
  4. package/gulp.sh +42 -0
  5. package/index.js +7 -0
  6. package/lib/components/check-answers/index.js +1 -0
  7. package/lib/components/common/index.js +1 -0
  8. package/lib/components/common/text-content/index.js +1 -0
  9. package/lib/components/error-summary/index.js +1 -0
  10. package/lib/components/index.js +1 -0
  11. package/lib/components/pinion/index.js +1 -0
  12. package/lib/index.js +1 -0
  13. package/lib/transformers/check-answers/get-answer-title.js +1 -0
  14. package/lib/transformers/check-answers/get-answer-value-for-type-array.js +1 -0
  15. package/lib/transformers/check-answers/get-answer-value-for-type-object.js +1 -0
  16. package/lib/transformers/check-answers/get-answer-value.js +1 -0
  17. package/lib/transformers/check-answers/get-any-of-selected-item-value.js +1 -0
  18. package/lib/transformers/check-answers/get-any-of-selected-items-value.js +1 -0
  19. package/lib/transformers/check-answers/get-change-answer.js +1 -0
  20. package/lib/transformers/check-answers/get-enum-selected-item-value.js +1 -0
  21. package/lib/transformers/check-answers/get-enum-selected-items-value.js +1 -0
  22. package/lib/transformers/check-answers/get-one-of-selected-item-value.js +1 -0
  23. package/lib/transformers/check-answers/get-one-of-selected-items-value.js +1 -0
  24. package/lib/transformers/check-answers/get-visually-hidden-text.js +1 -0
  25. package/lib/transformers/check-answers/index.js +1 -0
  26. package/lib/transformers/check-answers/to-answer-value.js +1 -0
  27. package/lib/transformers/check-answers/transform-answer-title.js +1 -0
  28. package/lib/transformers/check-answers/transform-answer-value.js +1 -0
  29. package/lib/transformers/check-answers/transform-any-of-value.js +1 -0
  30. package/lib/transformers/check-answers/transform-enum-value.js +1 -0
  31. package/lib/transformers/check-answers/transform-field-value.js +1 -0
  32. package/lib/transformers/check-answers/transform-one-of-value.js +1 -0
  33. package/lib/transformers/check-answers/transform-type-array-answers.js +1 -0
  34. package/lib/transformers/check-answers/transform-type-boolean-answer.js +1 -0
  35. package/lib/transformers/check-answers/transform-type-null-answer.js +1 -0
  36. package/lib/transformers/check-answers/transform-type-number-answer.js +1 -0
  37. package/lib/transformers/check-answers/transform-type-object-answers.js +1 -0
  38. package/lib/transformers/check-answers/transform-type-string-answer.js +1 -0
  39. package/lib/transformers/common/get-any-of.js +1 -0
  40. package/lib/transformers/common/get-component.js +1 -0
  41. package/lib/transformers/common/get-description.js +1 -0
  42. package/lib/transformers/common/get-elements-title.js +1 -0
  43. package/lib/transformers/common/get-enum.js +1 -0
  44. package/lib/transformers/common/get-field.js +1 -0
  45. package/lib/transformers/common/get-group.js +1 -0
  46. package/lib/transformers/common/get-one-of.js +1 -0
  47. package/lib/transformers/common/get-required.js +1 -0
  48. package/lib/transformers/common/get-resource-url.js +1 -0
  49. package/lib/transformers/common/get-title.js +1 -0
  50. package/lib/transformers/common/get-type.js +1 -0
  51. package/lib/transformers/common/get-value.js +1 -0
  52. package/lib/transformers/common/has-any-of.js +1 -0
  53. package/lib/transformers/common/has-component.js +1 -0
  54. package/lib/transformers/common/has-description.js +1 -0
  55. package/lib/transformers/common/has-elements-title.js +1 -0
  56. package/lib/transformers/common/has-enum.js +1 -0
  57. package/lib/transformers/common/has-field.js +1 -0
  58. package/lib/transformers/common/has-one-of.js +1 -0
  59. package/lib/transformers/common/has-required.js +1 -0
  60. package/lib/transformers/common/has-title.js +1 -0
  61. package/lib/transformers/common/has-type.js +1 -0
  62. package/lib/transformers/common/has-value.js +1 -0
  63. package/lib/transformers/common/index.js +1 -0
  64. package/lib/transformers/error-message/index.js +1 -0
  65. package/lib/transformers/index.js +1 -0
  66. package/package.json +104 -0
  67. package/src/components/check-answers/index.js +5 -0
  68. package/src/components/common/index.js +1 -0
  69. package/src/components/common/text-content/index.js +14 -0
  70. package/src/components/error-summary/index.js +5 -0
  71. package/src/components/index.js +4 -0
  72. package/src/components/pinion/index.js +404 -0
  73. package/src/index.js +10 -0
  74. package/src/transformers/check-answers/get-answer-title.js +11 -0
  75. package/src/transformers/check-answers/get-answer-value-for-type-array.js +14 -0
  76. package/src/transformers/check-answers/get-answer-value-for-type-object.js +14 -0
  77. package/src/transformers/check-answers/get-answer-value.js +11 -0
  78. package/src/transformers/check-answers/get-any-of-selected-item-value.js +13 -0
  79. package/src/transformers/check-answers/get-any-of-selected-items-value.js +17 -0
  80. package/src/transformers/check-answers/get-change-answer.js +16 -0
  81. package/src/transformers/check-answers/get-enum-selected-item-value.js +13 -0
  82. package/src/transformers/check-answers/get-enum-selected-items-value.js +15 -0
  83. package/src/transformers/check-answers/get-one-of-selected-item-value.js +13 -0
  84. package/src/transformers/check-answers/get-one-of-selected-items-value.js +17 -0
  85. package/src/transformers/check-answers/get-visually-hidden-text.js +16 -0
  86. package/src/transformers/check-answers/index.js +108 -0
  87. package/src/transformers/check-answers/to-answer-value.js +15 -0
  88. package/src/transformers/check-answers/transform-answer-title.js +16 -0
  89. package/src/transformers/check-answers/transform-answer-value.js +47 -0
  90. package/src/transformers/check-answers/transform-any-of-value.js +20 -0
  91. package/src/transformers/check-answers/transform-enum-value.js +20 -0
  92. package/src/transformers/check-answers/transform-field-value.js +16 -0
  93. package/src/transformers/check-answers/transform-one-of-value.js +20 -0
  94. package/src/transformers/check-answers/transform-type-array-answers.js +26 -0
  95. package/src/transformers/check-answers/transform-type-boolean-answer.js +22 -0
  96. package/src/transformers/check-answers/transform-type-null-answer.js +22 -0
  97. package/src/transformers/check-answers/transform-type-number-answer.js +22 -0
  98. package/src/transformers/check-answers/transform-type-object-answers.js +26 -0
  99. package/src/transformers/check-answers/transform-type-string-answer.js +22 -0
  100. package/src/transformers/common/get-any-of.js +1 -0
  101. package/src/transformers/common/get-component.js +1 -0
  102. package/src/transformers/common/get-description.js +1 -0
  103. package/src/transformers/common/get-elements-title.js +3 -0
  104. package/src/transformers/common/get-enum.js +1 -0
  105. package/src/transformers/common/get-field.js +1 -0
  106. package/src/transformers/common/get-group.js +18 -0
  107. package/src/transformers/common/get-one-of.js +1 -0
  108. package/src/transformers/common/get-required.js +1 -0
  109. package/src/transformers/common/get-resource-url.js +37 -0
  110. package/src/transformers/common/get-title.js +1 -0
  111. package/src/transformers/common/get-type.js +1 -0
  112. package/src/transformers/common/get-value.js +1 -0
  113. package/src/transformers/common/has-any-of.js +1 -0
  114. package/src/transformers/common/has-component.js +1 -0
  115. package/src/transformers/common/has-description.js +1 -0
  116. package/src/transformers/common/has-elements-title.js +3 -0
  117. package/src/transformers/common/has-enum.js +1 -0
  118. package/src/transformers/common/has-field.js +1 -0
  119. package/src/transformers/common/has-one-of.js +1 -0
  120. package/src/transformers/common/has-required.js +1 -0
  121. package/src/transformers/common/has-title.js +1 -0
  122. package/src/transformers/common/has-type.js +1 -0
  123. package/src/transformers/common/has-value.js +1 -0
  124. package/src/transformers/common/index.js +26 -0
  125. package/src/transformers/error-message/index.js +15 -0
  126. package/src/transformers/index.js +3 -0
@@ -0,0 +1,13 @@
1
+ import debug from 'debug'
2
+
3
+ import toAnswerValue from './to-answer-value'
4
+
5
+ const log = debug('shinkansen-pinion:transformers:check-answers')
6
+
7
+ export default function getOneOfSelectedItemValue (items = [], [selectedItem] = []) {
8
+ log('getOneOfSelectedItemValue')
9
+
10
+ return (Reflect.has(items, selectedItem))
11
+ ? toAnswerValue(Reflect.get(items, selectedItem)) // || 'Not answered'
12
+ : '' // 'Not answered'
13
+ }
@@ -0,0 +1,17 @@
1
+ import debug from 'debug'
2
+
3
+ import toAnswerValue from './to-answer-value'
4
+
5
+ const log = debug('shinkansen-pinion:transformers:check-answers')
6
+
7
+ export default function getOneOfSelectedItemsValue (items = [], selectedItems = []) {
8
+ log('getOneOfSelectedItemsValue')
9
+
10
+ return (
11
+ selectedItems.reduce((accumulator, selectedItem) => (
12
+ (Reflect.has(items, selectedItem))
13
+ ? accumulator.concat(toAnswerValue(Reflect.get(items, selectedItem)))
14
+ : accumulator
15
+ ), '') // || 'Not answered'
16
+ )
17
+ }
@@ -0,0 +1,16 @@
1
+ import debug from 'debug'
2
+
3
+ import hasTitle from 'shinkansen-pinion/transformers/common/has-title'
4
+ import getTitle from 'shinkansen-pinion/transformers/common/get-title'
5
+
6
+ const log = debug('shinkansen-pinion:transformers:check-answers')
7
+
8
+ export default ({ elements } = {}) => {
9
+ log('getVisuallyHiddenText')
10
+
11
+ if (hasTitle(elements)) {
12
+ return getTitle(elements).toLowerCase()
13
+ }
14
+
15
+ return ''
16
+ }
@@ -0,0 +1,108 @@
1
+ import debug from 'debug'
2
+
3
+ import hasElementsTitle from 'shinkansen-pinion/transformers/common/has-elements-title'
4
+ import getGroup from 'shinkansen-pinion/transformers/common/get-group'
5
+
6
+ import transformTypeStringAnswer from './transform-type-string-answer'
7
+ import transformTypeNumberAnswer from './transform-type-number-answer'
8
+ import transformTypeBooleanAnswer from './transform-type-boolean-answer'
9
+ import transformTypeNullAnswer from './transform-type-null-answer'
10
+
11
+ import transformTypeObjectAnswers from './transform-type-object-answers'
12
+ import transformTypeArrayAnswers from './transform-type-array-answers'
13
+
14
+ const log = debug('shinkansen-pinion:transformers:check-answers')
15
+
16
+ export function transformTypeObjectAnswer ({ elements: { fields = [] } = {} }, resource, array = [], group = []) {
17
+ log('transformTypeObjectAnswer')
18
+
19
+ return fields.reduce((accumulator, answer, i, a) => {
20
+ if (hasElementsTitle(answer)) {
21
+ /*
22
+ * `answer` has a title. Put any title-less siblings into `group`
23
+ */
24
+ group = getGroup(i, a)
25
+
26
+ if (group.length) {
27
+ /*
28
+ * Transform `answer` and siblings
29
+ */
30
+ return accumulator.concat(transformTypeObjectAnswers([answer, ...group], resource))
31
+ }
32
+ }
33
+
34
+ return (
35
+ !group.includes(answer)
36
+ ? accumulator.concat(transformAnswer(answer, resource, array, group))
37
+ : accumulator
38
+ )
39
+ }, array)
40
+ }
41
+
42
+ export function transformTypeArrayAnswer ({ elements: { fields = [] } = {} }, resource, array = [], group = []) {
43
+ log('transformTypeArrayAnswer')
44
+
45
+ return fields.reduce((accumulator, answer, i, a) => {
46
+ if (hasElementsTitle(answer)) {
47
+ /*
48
+ * `answer` has a title. Put any title-less siblings into `group`
49
+ */
50
+ group = getGroup(i, a)
51
+
52
+ if (group.length) {
53
+ /*
54
+ * Transform `answer` and siblings
55
+ */
56
+ return accumulator.concat(transformTypeArrayAnswers([answer, ...group], resource))
57
+ }
58
+ }
59
+
60
+ return (
61
+ !group.includes(answer)
62
+ ? accumulator.concat(transformAnswer(answer, resource, array, group))
63
+ : accumulator
64
+ )
65
+ }, array)
66
+ }
67
+
68
+ export default function transformAnswer (answer, resource, array = [], group = []) {
69
+ const {
70
+ meta: {
71
+ type
72
+ } = {}
73
+ } = answer
74
+
75
+ switch (type) {
76
+ case 'string':
77
+ return (
78
+ array.concat(transformTypeStringAnswer(answer, resource))
79
+ )
80
+
81
+ case 'number':
82
+ return (
83
+ array.concat(transformTypeNumberAnswer(answer, resource))
84
+ )
85
+
86
+ case 'object':
87
+ return (
88
+ array.concat(transformTypeObjectAnswer(answer, resource, array, group))
89
+ )
90
+
91
+ case 'array':
92
+ return (
93
+ array.concat(transformTypeArrayAnswer(answer, resource, array, group))
94
+ )
95
+
96
+ case 'boolean':
97
+ return (
98
+ array.concat(transformTypeBooleanAnswer(answer, resource))
99
+ )
100
+
101
+ case 'null':
102
+ return (
103
+ array.concat(transformTypeNullAnswer(answer, resource))
104
+ )
105
+ }
106
+
107
+ return null
108
+ }
@@ -0,0 +1,15 @@
1
+ import debug from 'debug'
2
+
3
+ import getValue from 'shinkansen-pinion/transformers/common/get-value'
4
+
5
+ const log = debug('shinkansen-pinion:transformers:check-answers')
6
+
7
+ export default function toAnswerValue ({ elements } = {}) {
8
+ log('toAnswerValue')
9
+
10
+ const {
11
+ title: value = getValue(elements)
12
+ } = elements
13
+
14
+ return value
15
+ }
@@ -0,0 +1,16 @@
1
+ import debug from 'debug'
2
+
3
+ import hasTitle from 'shinkansen-pinion/transformers/common/has-title'
4
+ import getTitle from 'shinkansen-pinion/transformers/common/get-title'
5
+
6
+ const log = debug('shinkansen-pinion:transformers:check-answers')
7
+
8
+ export default function transformAnswerTitle (elements) {
9
+ log('transformAnswerTitle')
10
+
11
+ if (hasTitle(elements)) {
12
+ return getTitle(elements)
13
+ }
14
+
15
+ return null
16
+ }
@@ -0,0 +1,47 @@
1
+ import debug from 'debug'
2
+
3
+ import hasEnum from 'shinkansen-pinion/transformers/common/has-enum'
4
+ import getEnum from 'shinkansen-pinion/transformers/common/get-enum'
5
+ import hasOneOf from 'shinkansen-pinion/transformers/common/has-one-of'
6
+ import getOneOf from 'shinkansen-pinion/transformers/common/get-one-of'
7
+ import hasAnyOf from 'shinkansen-pinion/transformers/common/has-any-of'
8
+ import getAnyOf from 'shinkansen-pinion/transformers/common/get-any-of'
9
+ import hasField from 'shinkansen-pinion/transformers/common/has-field'
10
+ import getField from 'shinkansen-pinion/transformers/common/get-field'
11
+
12
+ import transformEnumValue from './transform-enum-value'
13
+ import transformAnyOfValue from './transform-any-of-value'
14
+ import transformOneOfValue from './transform-one-of-value'
15
+ import transformFieldValue from './transform-field-value'
16
+
17
+ const log = debug('shinkansen-pinion:transformers:check-answers')
18
+
19
+ export default function transformAnswerValue (elements) {
20
+ log('transformAnswerValue')
21
+
22
+ if (hasEnum(elements)) {
23
+ const field = getEnum(elements)
24
+
25
+ return transformEnumValue(field)
26
+ } else {
27
+ if (hasAnyOf(elements)) {
28
+ const field = getAnyOf(elements)
29
+
30
+ return transformAnyOfValue(field)
31
+ } else {
32
+ if (hasOneOf(elements)) {
33
+ const field = getOneOf(elements)
34
+
35
+ return transformOneOfValue(field)
36
+ } else {
37
+ if (hasField(elements)) {
38
+ const field = getField(elements)
39
+
40
+ return transformFieldValue(field)
41
+ }
42
+ }
43
+ }
44
+ }
45
+
46
+ return null
47
+ }
@@ -0,0 +1,20 @@
1
+ import debug from 'debug'
2
+
3
+ import getAnyOfSelectedItemsValue from './get-any-of-selected-items-value'
4
+ import getAnyOfSelectedItemValue from './get-any-of-selected-item-value'
5
+
6
+ const log = debug('shinkansen-pinion:transformers:check-answers')
7
+
8
+ export default function transformAnyOfValue ({ items, selectedItems } = {}) {
9
+ log('transformAnyOfValue')
10
+
11
+ if (selectedItems.length < 1) {
12
+ return ''
13
+ } else {
14
+ if (selectedItems.length > 1) {
15
+ return getAnyOfSelectedItemsValue(items, selectedItems)
16
+ }
17
+ }
18
+
19
+ return getAnyOfSelectedItemValue(items, selectedItems)
20
+ }
@@ -0,0 +1,20 @@
1
+ import debug from 'debug'
2
+
3
+ import getEnumSelectedItemsValue from './get-enum-selected-items-value'
4
+ import getEnumSelectedItemValue from './get-enum-selected-item-value'
5
+
6
+ const log = debug('shinkansen-pinion:transformers:check-answers')
7
+
8
+ export default function transformEnumValue ({ items, selectedItems } = {}) {
9
+ log('transformEnumValue')
10
+
11
+ if (selectedItems.length < 1) {
12
+ return ''
13
+ } else {
14
+ if (selectedItems.length > 1) {
15
+ return getEnumSelectedItemsValue(items, selectedItems)
16
+ }
17
+ }
18
+
19
+ return getEnumSelectedItemValue(items, selectedItems)
20
+ }
@@ -0,0 +1,16 @@
1
+ import debug from 'debug'
2
+
3
+ import hasValue from 'shinkansen-pinion/transformers/common/has-value'
4
+ import getValue from 'shinkansen-pinion/transformers/common/get-value'
5
+
6
+ const log = debug('shinkansen-pinion:transformers:check-answers')
7
+
8
+ export default function transformFieldValue (field = {}) {
9
+ log('transformFieldValue')
10
+
11
+ return (
12
+ hasValue(field)
13
+ ? getValue(field)
14
+ : ''
15
+ )
16
+ }
@@ -0,0 +1,20 @@
1
+ import debug from 'debug'
2
+
3
+ import getOneOfSelectedItemsValue from './get-one-of-selected-items-value'
4
+ import getOneOfSelectedItemValue from './get-one-of-selected-item-value'
5
+
6
+ const log = debug('shinkansen-pinion:transformers:check-answers')
7
+
8
+ export default function transformOneOfValue ({ items, selectedItems } = {}) {
9
+ log('transformOneOfValue')
10
+
11
+ if (selectedItems.length < 1) {
12
+ return ''
13
+ } else {
14
+ if (selectedItems.length > 1) {
15
+ return getOneOfSelectedItemsValue(items, selectedItems)
16
+ }
17
+ }
18
+
19
+ return getOneOfSelectedItemValue(items, selectedItems)
20
+ }
@@ -0,0 +1,26 @@
1
+ import debug from 'debug'
2
+
3
+ import getAnswerTitle from './get-answer-title'
4
+ import getAnswerValue from './get-answer-value-for-type-array'
5
+ import getChangeAnswer from './get-change-answer'
6
+
7
+ const log = debug('shinkansen-pinion:transformers:check-answers')
8
+
9
+ export default function transformTypeArrayAnswers (answers = [], resource = {}) {
10
+ log('transformTypeArrayAnswers')
11
+
12
+ const [
13
+ answer
14
+ ] = answers
15
+
16
+ return {
17
+ type: 'ARRAY',
18
+ params: {
19
+ answer: {
20
+ title: getAnswerTitle(answer),
21
+ value: getAnswerValue(answers)
22
+ },
23
+ changeAnswer: getChangeAnswer(answer, resource)
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,22 @@
1
+ import debug from 'debug'
2
+
3
+ import getAnswerTitle from './get-answer-title'
4
+ import getAnswerValue from './get-answer-value'
5
+ import getChangeAnswer from './get-change-answer'
6
+
7
+ const log = debug('shinkansen-pinion:transformers:check-answers')
8
+
9
+ export default function transformTypeBooleanAnswer (answer, resource) {
10
+ log('transformTypeBooleanAnswer')
11
+
12
+ return {
13
+ type: 'BOOLEAN',
14
+ params: {
15
+ answer: {
16
+ title: getAnswerTitle(answer),
17
+ value: getAnswerValue(answer)
18
+ },
19
+ changeAnswer: getChangeAnswer(answer, resource)
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,22 @@
1
+ import debug from 'debug'
2
+
3
+ import getAnswerTitle from './get-answer-title'
4
+ import getAnswerValue from './get-answer-value'
5
+ import getChangeAnswer from './get-change-answer'
6
+
7
+ const log = debug('shinkansen-pinion:transformers:check-answers')
8
+
9
+ export default function transformTypeNullAnswer (answer, resource) {
10
+ log('transformTypeNullAnswer')
11
+
12
+ return {
13
+ type: 'NULL',
14
+ params: {
15
+ answer: {
16
+ title: getAnswerTitle(answer),
17
+ value: getAnswerValue(answer)
18
+ },
19
+ changeAnswer: getChangeAnswer(answer, resource)
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,22 @@
1
+ import debug from 'debug'
2
+
3
+ import getAnswerTitle from './get-answer-title'
4
+ import getAnswerValue from './get-answer-value'
5
+ import getChangeAnswer from './get-change-answer'
6
+
7
+ const log = debug('shinkansen-pinion:transformers:check-answers')
8
+
9
+ export default function transformTypeNumberAnswer (answer, resource) {
10
+ log('transformTypeNumberAnswer')
11
+
12
+ return {
13
+ type: 'NUMBER',
14
+ params: {
15
+ answer: {
16
+ title: getAnswerTitle(answer),
17
+ value: getAnswerValue(answer)
18
+ },
19
+ changeAnswer: getChangeAnswer(answer, resource)
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,26 @@
1
+ import debug from 'debug'
2
+
3
+ import getAnswerTitle from './get-answer-title'
4
+ import getAnswerValue from './get-answer-value-for-type-object'
5
+ import getChangeAnswer from './get-change-answer'
6
+
7
+ const log = debug('shinkansen-pinion:transformers:check-answers')
8
+
9
+ export default function transformTypeObjectAnswers (answers = [], resource = {}) {
10
+ log('transformTypeObjectAnswers')
11
+
12
+ const [
13
+ answer
14
+ ] = answers
15
+
16
+ return {
17
+ type: 'OBJECT',
18
+ params: {
19
+ answer: {
20
+ title: getAnswerTitle(answer),
21
+ value: getAnswerValue(answers)
22
+ },
23
+ changeAnswer: getChangeAnswer(answer, resource)
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,22 @@
1
+ import debug from 'debug'
2
+
3
+ import getAnswerTitle from './get-answer-title'
4
+ import getAnswerValue from './get-answer-value'
5
+ import getChangeAnswer from './get-change-answer'
6
+
7
+ const log = debug('shinkansen-pinion:transformers:check-answers')
8
+
9
+ export default function transformTypeStringAnswer (answer, resource) {
10
+ log('transformTypeStringAnswer')
11
+
12
+ return {
13
+ type: 'STRING',
14
+ params: {
15
+ answer: {
16
+ title: getAnswerTitle(answer),
17
+ value: getAnswerValue(answer)
18
+ },
19
+ changeAnswer: getChangeAnswer(answer, resource)
20
+ }
21
+ }
22
+ }
@@ -0,0 +1 @@
1
+ export default (elements = {}) => Reflect.get(elements, 'anyOf')
@@ -0,0 +1 @@
1
+ export default (meta = {}) => Reflect.get(meta, 'component')
@@ -0,0 +1 @@
1
+ export default (elements = {}) => Reflect.get(elements, 'description')
@@ -0,0 +1,3 @@
1
+ import getTitle from './get-title'
2
+
3
+ export default ({ elements } = {}) => getTitle(elements)
@@ -0,0 +1 @@
1
+ export default (elements = {}) => Reflect.get(elements, 'enum')
@@ -0,0 +1 @@
1
+ export default (elements = {}) => Reflect.get(elements, 'field')
@@ -0,0 +1,18 @@
1
+ import hasElementsTitle from './has-elements-title'
2
+
3
+ export default function getGroup (index, array) {
4
+ const group = []
5
+
6
+ let n = index + 1
7
+ let sibling = array[n]
8
+ if (sibling) {
9
+ while (!hasElementsTitle(sibling)) {
10
+ group.push(sibling)
11
+ n = n + 1
12
+ sibling = array[n]
13
+ if (!sibling) break
14
+ }
15
+ }
16
+
17
+ return group
18
+ }
@@ -0,0 +1 @@
1
+ export default (elements = {}) => Reflect.get(elements, 'oneOf')
@@ -0,0 +1 @@
1
+ export default (elements = {}) => Reflect.get(elements, 'required')
@@ -0,0 +1,37 @@
1
+ import debug from 'debug'
2
+
3
+ import {
4
+ Rails
5
+ } from 'shinkansen-rails'
6
+
7
+ import {
8
+ Signals
9
+ } from 'shinkansen-signals'
10
+
11
+ const log = debug('shinkansen-pinion:transformers:check-answers')
12
+
13
+ export default function getResourceUrl (resource = {}) {
14
+ log('getResourceUrl')
15
+
16
+ if (Rails.go(resource, Signals.OMEGA_PATTERN)) {
17
+ return Rails.to(resource, Signals.OMEGA_PATTERN)
18
+ } else {
19
+ if (Rails.go(resource, Signals.DEBARK_PATTERN)) {
20
+ return Rails.to(resource, Signals.DEBARK_PATTERN)
21
+ } else {
22
+ if (Rails.go(resource, Signals.CONFIRM_PATTERN)) {
23
+ return Rails.to(resource, Signals.CONFIRM_PATTERN)
24
+ } else {
25
+ if (Rails.go(resource, Signals.EMBARK_PATTERN)) {
26
+ return Rails.to(resource, Signals.EMBARK_PATTERN)
27
+ } else {
28
+ if (Rails.go(resource, Signals.ALPHA_PATTERN)) {
29
+ return Rails.to(resource, Signals.ALPHA_PATTERN)
30
+ }
31
+ }
32
+ }
33
+ }
34
+ }
35
+
36
+ throw new Error('Incompatible with Shinkansen')
37
+ }
@@ -0,0 +1 @@
1
+ export default (elements = {}) => Reflect.get(elements, 'title')
@@ -0,0 +1 @@
1
+ export default (meta = {}) => Reflect.get(meta, 'type')
@@ -0,0 +1 @@
1
+ export default (field = {}) => Reflect.get(field, 'value')
@@ -0,0 +1 @@
1
+ export default (elements = {}) => Reflect.has(elements, 'anyOf')
@@ -0,0 +1 @@
1
+ export default (meta = {}) => Reflect.has(meta, 'component')
@@ -0,0 +1 @@
1
+ export default (elements = {}) => Reflect.has(elements, 'description')
@@ -0,0 +1,3 @@
1
+ import hasTitle from './has-title'
2
+
3
+ export default ({ elements } = {}) => hasTitle(elements)
@@ -0,0 +1 @@
1
+ export default (elements = {}) => Reflect.has(elements, 'enum')
@@ -0,0 +1 @@
1
+ export default (elements = {}) => Reflect.has(elements, 'field')
@@ -0,0 +1 @@
1
+ export default (elements = {}) => Reflect.has(elements, 'oneOf')
@@ -0,0 +1 @@
1
+ export default (elements = {}) => Reflect.has(elements, 'required')
@@ -0,0 +1 @@
1
+ export default (elements = {}) => Reflect.has(elements, 'title')
@@ -0,0 +1 @@
1
+ export default (meta = {}) => Reflect.has(meta, 'type')
@@ -0,0 +1 @@
1
+ export default (field = {}) => Reflect.has(field, 'value')
@@ -0,0 +1,26 @@
1
+ export getAnyOf from './get-any-of'
2
+ export getComponent from './get-component'
3
+ export getDescription from './get-description'
4
+ export getElementsTitle from './get-elements-title'
5
+ export getEnum from './get-enum'
6
+ export getField from './get-field'
7
+ export getGroup from './get-group'
8
+ export getOneOf from './get-one-of'
9
+ export getRequired from './get-required'
10
+ export getResourceUrl from './get-resource-url'
11
+ export getTitle from './get-title'
12
+ export getType from './get-type'
13
+ export getValue from './get-value'
14
+ export hasAnyOf from './has-any-of'
15
+ export hasComponent from './has-component'
16
+ export hasDescription from './has-description'
17
+ export hasElementsTitle from './has-elements-title'
18
+ export hasEnum from './has-enum'
19
+ export hasField from './has-field'
20
+ // export hasGroup from './has-group'
21
+ export hasOneOf from './has-one-of'
22
+ export hasRequired from './has-required'
23
+ // export hasResourceUrl from './has-resource-url'
24
+ export hasTitle from './has-title'
25
+ export hasType from './has-type'
26
+ export hasValue from './has-value'
@@ -0,0 +1,15 @@
1
+ import debug from 'debug'
2
+
3
+ const log = debug('shinkansen-pinion:transformers:error-message')
4
+
5
+ export function hasError (errors = [], uri = null) {
6
+ log('hasError')
7
+
8
+ return errors.some(({ uri: URI }) => URI === uri)
9
+ }
10
+
11
+ export function getError (errors = [], uri = null) {
12
+ log('getError')
13
+
14
+ return errors.find(({ uri: URI }) => URI === uri)
15
+ }
@@ -0,0 +1,3 @@
1
+ export * as checkAnswers from './check-answers'
2
+ export * as common from './common'
3
+ export * as errorMessage from './error-message'