@bottlebooks/valid-values 2.1.0 → 3.1.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.
Files changed (237) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +2 -1
  3. package/dist/core/translate.d.ts +2 -2
  4. package/dist/core/translate.d.ts.map +1 -1
  5. package/dist/core/translate.js +3 -3
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +7 -1
  8. package/dist/locales/po/bg.d.ts +3 -1
  9. package/dist/locales/po/bg.d.ts.map +1 -1
  10. package/dist/locales/po/bg.js +3 -1
  11. package/dist/locales/po/cs.d.ts +3 -1
  12. package/dist/locales/po/cs.d.ts.map +1 -1
  13. package/dist/locales/po/cs.js +3 -1
  14. package/dist/locales/po/da.d.ts +3 -1
  15. package/dist/locales/po/da.d.ts.map +1 -1
  16. package/dist/locales/po/da.js +3 -1
  17. package/dist/locales/po/de.d.ts +3 -1
  18. package/dist/locales/po/de.d.ts.map +1 -1
  19. package/dist/locales/po/de.js +3 -1
  20. package/dist/locales/po/ee.d.ts +3 -1
  21. package/dist/locales/po/ee.d.ts.map +1 -1
  22. package/dist/locales/po/ee.js +3 -1
  23. package/dist/locales/po/el.d.ts +3 -1
  24. package/dist/locales/po/el.d.ts.map +1 -1
  25. package/dist/locales/po/el.js +3 -1
  26. package/dist/locales/po/en.d.ts +3 -1
  27. package/dist/locales/po/en.d.ts.map +1 -1
  28. package/dist/locales/po/en.js +3 -1
  29. package/dist/locales/po/es.d.ts +3 -1
  30. package/dist/locales/po/es.d.ts.map +1 -1
  31. package/dist/locales/po/es.js +3 -1
  32. package/dist/locales/po/fi.d.ts +3 -1
  33. package/dist/locales/po/fi.d.ts.map +1 -1
  34. package/dist/locales/po/fi.js +3 -1
  35. package/dist/locales/po/fr.d.ts +3 -1
  36. package/dist/locales/po/fr.d.ts.map +1 -1
  37. package/dist/locales/po/fr.js +3 -1
  38. package/dist/locales/po/ga.d.ts +3 -1
  39. package/dist/locales/po/ga.d.ts.map +1 -1
  40. package/dist/locales/po/ga.js +3 -1
  41. package/dist/locales/po/hr.d.ts +3 -1
  42. package/dist/locales/po/hr.d.ts.map +1 -1
  43. package/dist/locales/po/hr.js +3 -1
  44. package/dist/locales/po/hu.d.ts +3 -1
  45. package/dist/locales/po/hu.d.ts.map +1 -1
  46. package/dist/locales/po/hu.js +3 -1
  47. package/dist/locales/po/it.d.ts +3 -1
  48. package/dist/locales/po/it.d.ts.map +1 -1
  49. package/dist/locales/po/it.js +3 -1
  50. package/dist/locales/po/lt.d.ts +3 -1
  51. package/dist/locales/po/lt.d.ts.map +1 -1
  52. package/dist/locales/po/lt.js +3 -1
  53. package/dist/locales/po/lv.d.ts +3 -1
  54. package/dist/locales/po/lv.d.ts.map +1 -1
  55. package/dist/locales/po/lv.js +3 -1
  56. package/dist/locales/po/mt.d.ts +3 -1
  57. package/dist/locales/po/mt.d.ts.map +1 -1
  58. package/dist/locales/po/mt.js +3 -1
  59. package/dist/locales/po/nl.d.ts +3 -1
  60. package/dist/locales/po/nl.d.ts.map +1 -1
  61. package/dist/locales/po/nl.js +3 -1
  62. package/dist/locales/po/pl.d.ts +3 -1
  63. package/dist/locales/po/pl.d.ts.map +1 -1
  64. package/dist/locales/po/pl.js +3 -1
  65. package/dist/locales/po/pt.d.ts +3 -1
  66. package/dist/locales/po/pt.d.ts.map +1 -1
  67. package/dist/locales/po/pt.js +3 -1
  68. package/dist/locales/po/ro.d.ts +3 -1
  69. package/dist/locales/po/ro.d.ts.map +1 -1
  70. package/dist/locales/po/ro.js +3 -1
  71. package/dist/locales/po/se.d.ts +3 -1
  72. package/dist/locales/po/se.d.ts.map +1 -1
  73. package/dist/locales/po/se.js +3 -1
  74. package/dist/locales/po/si.d.ts +3 -1
  75. package/dist/locales/po/si.d.ts.map +1 -1
  76. package/dist/locales/po/si.js +3 -1
  77. package/dist/locales/po/sk.d.ts +3 -1
  78. package/dist/locales/po/sk.d.ts.map +1 -1
  79. package/dist/locales/po/sk.js +3 -1
  80. package/dist/main.d.ts.map +1 -1
  81. package/dist/main.js +14 -14
  82. package/dist/validValues/award.d.ts +214 -21
  83. package/dist/validValues/award.d.ts.map +1 -1
  84. package/dist/validValues/award.js +665 -662
  85. package/dist/validValues/awardMedal.d.ts +233 -18
  86. package/dist/validValues/awardMedal.d.ts.map +1 -1
  87. package/dist/validValues/awardMedal.js +921 -1148
  88. package/dist/validValues/beerStyle.d.ts +96 -18
  89. package/dist/validValues/beerStyle.d.ts.map +1 -1
  90. package/dist/validValues/beerStyle.js +381 -473
  91. package/dist/validValues/certification.d.ts +33 -19
  92. package/dist/validValues/certification.d.ts.map +1 -1
  93. package/dist/validValues/certification.js +144 -143
  94. package/dist/validValues/containerColor.d.ts +11 -18
  95. package/dist/validValues/containerColor.d.ts.map +1 -1
  96. package/dist/validValues/containerColor.js +41 -48
  97. package/dist/validValues/containerType.d.ts +8 -18
  98. package/dist/validValues/containerType.d.ts.map +1 -1
  99. package/dist/validValues/containerType.js +29 -33
  100. package/dist/validValues/country.d.ts +154 -23
  101. package/dist/validValues/country.d.ts.map +1 -1
  102. package/dist/validValues/country.js +452 -451
  103. package/dist/validValues/designation.d.ts +57 -629
  104. package/dist/validValues/designation.d.ts.map +1 -1
  105. package/dist/validValues/designation.js +109 -104
  106. package/dist/validValues/ingredient.d.ts +65 -30
  107. package/dist/validValues/ingredient.d.ts.map +1 -1
  108. package/dist/validValues/ingredient.js +271 -257
  109. package/dist/validValues/packagingCertification.d.ts +9 -33
  110. package/dist/validValues/packagingCertification.d.ts.map +1 -1
  111. package/dist/validValues/packagingCertification.js +29 -28
  112. package/dist/validValues/packagingMaterialType.d.ts +54 -28
  113. package/dist/validValues/packagingMaterialType.d.ts.map +1 -1
  114. package/dist/validValues/packagingMaterialType.js +265 -313
  115. package/dist/validValues/productType.d.ts +44 -22
  116. package/dist/validValues/productType.d.ts.map +1 -1
  117. package/dist/validValues/productType.js +126 -125
  118. package/dist/validValues/productionMethod.d.ts +15 -18
  119. package/dist/validValues/productionMethod.d.ts.map +1 -1
  120. package/dist/validValues/productionMethod.js +57 -68
  121. package/dist/validValues/region.d.ts +487 -16
  122. package/dist/validValues/region.d.ts.map +1 -1
  123. package/dist/validValues/region.js +4799 -4803
  124. package/dist/validValues/responsibleConsumptionLogo.d.ts +10 -19
  125. package/dist/validValues/responsibleConsumptionLogo.d.ts.map +1 -1
  126. package/dist/validValues/responsibleConsumptionLogo.js +29 -32
  127. package/dist/validValues/subregion.d.ts +1393 -12
  128. package/dist/validValues/subregion.d.ts.map +1 -1
  129. package/dist/validValues/subregion.js +12493 -11115
  130. package/dist/validValues/types/ValidValueDefinition.d.ts +23 -14
  131. package/dist/validValues/types/ValidValueDefinition.d.ts.map +1 -1
  132. package/dist/validValues/types/award_p85_100.js +2 -2
  133. package/dist/validValues/types/productTypesSpirit.js +2 -2
  134. package/dist/validValues/types/productTypesWine.js +2 -2
  135. package/dist/validValues/utils/createValidValues.d.ts +4 -3
  136. package/dist/validValues/utils/createValidValues.d.ts.map +1 -1
  137. package/dist/validValues/utils/createValidValues.js +1 -1
  138. package/dist/validValues/utils/loadLocalizedData.d.ts +6 -0
  139. package/dist/validValues/utils/loadLocalizedData.d.ts.map +1 -0
  140. package/dist/validValues/utils/loadLocalizedData.js +20 -0
  141. package/dist/validValues/varietyName.d.ts +1961 -18
  142. package/dist/validValues/varietyName.d.ts.map +1 -1
  143. package/dist/validValues/varietyName.js +5883 -7840
  144. package/dist/validValues/wineColor.d.ts +7 -18
  145. package/dist/validValues/wineColor.d.ts.map +1 -1
  146. package/dist/validValues/wineColor.js +25 -28
  147. package/dist/validValues/wineType.d.ts +7 -18
  148. package/dist/validValues/wineType.d.ts.map +1 -1
  149. package/dist/validValues/wineType.js +25 -28
  150. package/dist/validValues.js +20 -20
  151. package/package.json +2 -2
  152. package/src/core/translate.ts +6 -5
  153. package/src/index.ts +3 -2
  154. package/src/locales/po/bg.po +10 -2
  155. package/src/locales/po/bg.ts +1 -1
  156. package/src/locales/po/cs.po +10 -2
  157. package/src/locales/po/cs.ts +1 -1
  158. package/src/locales/po/da.po +10 -2
  159. package/src/locales/po/da.ts +1 -1
  160. package/src/locales/po/de.po +10 -2
  161. package/src/locales/po/de.ts +1 -1
  162. package/src/locales/po/ee.po +10 -2
  163. package/src/locales/po/ee.ts +1 -1
  164. package/src/locales/po/el.po +10 -2
  165. package/src/locales/po/el.ts +1 -1
  166. package/src/locales/po/en.po +12 -4
  167. package/src/locales/po/en.ts +1 -1
  168. package/src/locales/po/es.po +10 -2
  169. package/src/locales/po/es.ts +1 -1
  170. package/src/locales/po/fi.po +10 -2
  171. package/src/locales/po/fi.ts +1 -1
  172. package/src/locales/po/fr.po +10 -2
  173. package/src/locales/po/fr.ts +1 -1
  174. package/src/locales/po/ga.po +10 -2
  175. package/src/locales/po/ga.ts +1 -1
  176. package/src/locales/po/hr.po +10 -2
  177. package/src/locales/po/hr.ts +1 -1
  178. package/src/locales/po/hu.po +10 -2
  179. package/src/locales/po/hu.ts +1 -1
  180. package/src/locales/po/it.po +10 -2
  181. package/src/locales/po/it.ts +1 -1
  182. package/src/locales/po/lt.po +10 -2
  183. package/src/locales/po/lt.ts +1 -1
  184. package/src/locales/po/lv.po +10 -2
  185. package/src/locales/po/lv.ts +1 -1
  186. package/src/locales/po/mt.po +10 -2
  187. package/src/locales/po/mt.ts +1 -1
  188. package/src/locales/po/nl.po +10 -2
  189. package/src/locales/po/nl.ts +1 -1
  190. package/src/locales/po/pl.po +10 -2
  191. package/src/locales/po/pl.ts +1 -1
  192. package/src/locales/po/pt.po +10 -2
  193. package/src/locales/po/pt.ts +1 -1
  194. package/src/locales/po/ro.po +10 -2
  195. package/src/locales/po/ro.ts +1 -1
  196. package/src/locales/po/se.po +10 -2
  197. package/src/locales/po/se.ts +1 -1
  198. package/src/locales/po/si.po +10 -2
  199. package/src/locales/po/si.ts +1 -1
  200. package/src/locales/po/sk.po +10 -2
  201. package/src/locales/po/sk.ts +1 -1
  202. package/src/main.ts +12 -23
  203. package/src/scripts/transformArchitectureVV.js +34 -31
  204. package/src/scripts/transformServerVV.js +3 -3
  205. package/src/scripts/writeFields.not.test.js +38 -3
  206. package/src/validValues/award.ts +639 -841
  207. package/src/validValues/awardMedal.ts +695 -915
  208. package/src/validValues/beerStyle.ts +290 -375
  209. package/src/validValues/certification.ts +154 -139
  210. package/src/validValues/containerColor.ts +35 -35
  211. package/src/validValues/containerType.ts +26 -23
  212. package/src/validValues/country.ts +457 -452
  213. package/src/validValues/designation.ts +44 -87
  214. package/src/validValues/ingredient.ts +252 -230
  215. package/src/validValues/json/region.js +1 -0
  216. package/src/validValues/json/subregion.js +7 -0
  217. package/src/validValues/packagingCertification.ts +38 -42
  218. package/src/validValues/packagingMaterialType.ts +222 -268
  219. package/src/validValues/productType.ts +128 -126
  220. package/src/validValues/productionMethod.ts +47 -51
  221. package/src/validValues/region.ts +1464 -1947
  222. package/src/validValues/responsibleConsumptionLogo.ts +34 -24
  223. package/src/validValues/subregion.ts +4181 -4193
  224. package/src/validValues/types/ValidValueDefinition.ts +27 -14
  225. package/src/validValues/utils/loadLocalizedData.ts +11 -0
  226. package/src/validValues/varietyName.ts +5884 -7836
  227. package/src/validValues/wineColor.ts +23 -19
  228. package/src/validValues/wineType.ts +23 -19
  229. package/dist/validValues/json/appelation.d.ts +0 -2
  230. package/dist/validValues/json/appelation.d.ts.map +0 -1
  231. package/dist/validValues/types/Award.d.ts +0 -35
  232. package/dist/validValues/types/Award.d.ts.map +0 -1
  233. package/dist/validValues/types/Award.js +0 -5
  234. package/dist/validValues/types/Country.d.ts +0 -35
  235. package/dist/validValues/types/Country.d.ts.map +0 -1
  236. package/dist/validValues/types/Country.js +0 -5
  237. package/src/validValues/utils/createValidValues.ts +0 -76
package/src/main.ts CHANGED
@@ -1,40 +1,33 @@
1
- import createValidValues from './validValues/utils/createValidValues.js';
2
1
  import './style.css';
3
2
  import * as validValues from './validValues.js';
4
- import { designation } from './validValues.js';
5
3
  import { translate } from './core/translate';
6
- import { MessageDescriptor } from '@lingui/core';
4
+ import loadLocalizedData from './validValues/utils/loadLocalizedData';
5
+
6
+ loadLocalizedData();
7
7
 
8
8
  document.querySelector<HTMLDivElement>('#app')!.innerHTML = `
9
9
  <div>
10
10
  <h1>ValidValues</h1>
11
11
  ${Object.entries(validValues)
12
12
  .map(([validValueCategory, values]) => {
13
- const list = values.list as ReturnType<
14
- typeof createValidValues
15
- >['list'];
13
+ const list = Object.values(values);
16
14
  let content: string = `<h2>${validValueCategory}</h2>`;
17
- // if (['designation'].includes(validValueCategory)) {
18
- // return '';
19
- // }
15
+
20
16
  return `${content}
21
17
  <pre>${list.map((item, i) => {
22
- const { key, title, form } = item;
23
- // const message = { id: item.id } as MessageDescriptor;
18
+ //@ts-ignore
19
+ const { label, data } = item;
24
20
  return i === 0
25
21
  ? JSON.stringify(
26
22
  {
27
23
  // @ts-ignore
28
24
  id: item.id,
29
- 'title(en)': translate(title, 'en'),
30
- 'title(de)': translate(title, 'de'),
31
- // titles: item.getTitles(['de', 'en', 'es', 'fr']),
25
+ 'title(en)': translate(label, 'en'),
26
+ 'title(de)': translate(label, 'de'),
32
27
  ...item,
33
- form: item.form
34
- ? item.form && {
35
- ...item.form,
36
- // 'description(en)': item.form?.getDescription('en'),
37
- // 'description(de)': item.form?.getDescription('de'),
28
+ data: data
29
+ ? data && {
30
+ ...data,
38
31
  }
39
32
  : null,
40
33
  },
@@ -44,10 +37,6 @@ document.querySelector<HTMLDivElement>('#app')!.innerHTML = `
44
37
  : '';
45
38
  })}</pre>
46
39
  `;
47
-
48
- return `<h2>${validValueCategory}</h2>
49
- <pre>${JSON.stringify(values, undefined, 2)}</pre>
50
- `;
51
40
  })
52
41
  .join('')}</pre></code>
53
42
  </div>
@@ -5,43 +5,47 @@ const all = {
5
5
  // awards: {
6
6
  // _json: require('../../../../bottlebooks-server/architecture/validvalues/validvalues/awards.json'),
7
7
  // _mapping: { medals: mappings['awards-awardsMedals'] },
8
- // props: { addForm: false },
8
+ // props: { addMetadata: false },
9
9
  // },
10
10
  // awardsMedals: {
11
11
  // _json: require('../../../../bottlebooks-server/architecture/validvalues/validvalues/awardsMedals.json'),
12
- // props: { addForm: false },
12
+ // props: { addMetadata: false },
13
13
  // },
14
14
  // wineColor: {
15
15
  // _json: require('../../../../bottlebooks-server/architecture/validvalues/validvalues/wineColor.json'),
16
- // props: { addForm: false },
16
+ // props: { addMetadata: false },
17
17
  // },
18
18
  // wineType: {
19
19
  // _json: require('../../../../bottlebooks-server/architecture/validvalues/validvalues/wineType.json'),
20
- // props: { addForm: false },
20
+ // props: { addMetadata: false },
21
21
  // },
22
22
  // designation: require('../../../../bottlebooks-server/architecture/validvalues/validvalues/designation.json'),
23
23
  // country: {
24
24
  // _json: require('../../../../bottlebooks-server/architecture/validvalues/validvalues/country.json'),
25
25
  // _mapping: { regions: mappings['country-appelation'] },
26
- // props: { addForm: false },
26
+ // props: { addMetadata: false },
27
27
  // },
28
28
  // region: {
29
29
  // _json: require('../../../../bottlebooks-server/architecture/validvalues/validvalues/appelation'),
30
30
  // _mapping: { subregions: mappings['appelation-subregion'] },
31
- // props: { addForm: true },
31
+ // props: { addMetadata: true },
32
32
  // },
33
33
  // subregion: {
34
34
  // _json: require('../../../../bottlebooks-server/architecture/validvalues/validvalues/subregion'),
35
- // props: { addForm: true },
35
+ // props: { addMetadata: true },
36
36
  // },
37
37
  // beerStyle: {
38
38
  // _json: require('../../../../bottlebooks-server/architecture/validvalues/validvalues/beerStyle.json'),
39
- // props: { addForm: false },
39
+ // props: { addMetadata: false },
40
40
  // },
41
41
  // varietyName: {
42
42
  // _json: require('../../../../bottlebooks-server/architecture/validvalues/validvalues/grapes.json'),
43
- // props: { addForm: false },
43
+ // props: { addMetadata: false },
44
44
  // },
45
+ aromas: {
46
+ _json: require('../../../../bottlebooks-server/architecture/validvalues/validvalues/aromas.json'),
47
+ props: { addMetadata: false },
48
+ },
45
49
  };
46
50
  module.exports = extractAll;
47
51
 
@@ -50,14 +54,14 @@ function extractAll() {
50
54
  .sort()
51
55
  .map(([validValueCategory, vv]) => {
52
56
  const _mapping = vv._mapping;
53
- let addForm = true;
57
+ let addMetadata = true;
54
58
  const withoutTranslations = ['varietyName', 'awards'].find(
55
59
  (category) => category === validValueCategory
56
60
  );
57
61
  const keyIsTitle = ['varietyName'].includes(validValueCategory);
58
62
  if (vv._json) {
59
63
  vv = vv._json;
60
- addForm = vv.props?.addForm;
64
+ addMetadata = vv.props?.addMetadata;
61
65
  }
62
66
  const i18n = {};
63
67
  const _all = vv._all || {};
@@ -85,32 +89,27 @@ function extractAll() {
85
89
  .sort()
86
90
  .reduce((acc, key) => {
87
91
  const newKey = `validValues.${validValueCategory}.${key}`;
88
- const title = oneLocaleValidValues[key];
92
+ const localizedValue = oneLocaleValidValues[key];
89
93
  i18n[locale] = i18n[locale] || {};
90
- i18n[locale][newKey] = title;
94
+ i18n[locale][newKey] = localizedValue;
91
95
  if (locale === 'en') {
92
96
  const logo = null;
93
97
  let newValidValue = {
94
98
  key,
95
- title: {
99
+ label: {
96
100
  id: newKey,
97
- message: title,
101
+ message: localizedValue,
98
102
  },
99
- frontend: logo ? { logo } : undefined,
100
- form: addForm
101
- ? {
102
- tags: [],
103
- productType: [],
104
- //
105
- // description:
106
- // // 'defineMessage(' +
107
- // {
108
- // comment: 'Description for ingredient, used in edit forms.',
109
- // message: '',
110
- // },
111
- }
112
- : {},
113
103
  };
104
+ if (logo) {
105
+ newValidValue.data = { logo };
106
+ }
107
+ if (addMetadata) {
108
+ newValidValue.metadata = {
109
+ tags: [],
110
+ // productType: [],
111
+ };
112
+ }
114
113
  if (_mapping) {
115
114
  const prop = Object.keys(_mapping)[0];
116
115
  newValidValue = {
@@ -122,9 +121,13 @@ function extractAll() {
122
121
  acc = acc || {};
123
122
  if (withoutTranslations) {
124
123
  if (keyIsTitle) {
125
- acc[title] = { ...newValidValue, title: title, key: title };
124
+ acc[localizedValue] = {
125
+ ...newValidValue,
126
+ label: localizedValue,
127
+ key: localizedValue,
128
+ };
126
129
  } else {
127
- acc[key] = { ...newValidValue, title: title };
130
+ acc[key] = { ...newValidValue, label: localizedValue };
128
131
  }
129
132
  } else {
130
133
  acc[key] = newValidValue;
@@ -36,12 +36,12 @@ function extractAll() {
36
36
  const validValue = {
37
37
  key,
38
38
  // name: locales.en,
39
- title: {
39
+ label: {
40
40
  id: newKey,
41
41
  message: locales.en,
42
42
  },
43
- frontend: logo ? { logo } : undefined,
44
- form: {
43
+ data: logo ? { logo } : undefined,
44
+ metadata: {
45
45
  tags,
46
46
  productType,
47
47
  //
@@ -13,7 +13,6 @@ describe('Transform bottlebooks-server/** legacy format valid values', () => {
13
13
  for (const { name, tsVV, i18n } of allValidValues) {
14
14
  expect(tsVV).not.toBeUndefined();
15
15
  expect(i18n).not.toBeUndefined();
16
-
17
16
  // Building content for i18n json files.
18
17
  for (const locale in i18n) {
19
18
  i18All[locale] = { ...i18All[locale], ...i18n[locale] };
@@ -23,11 +22,43 @@ describe('Transform bottlebooks-server/** legacy format valid values', () => {
23
22
  "import { defineMessage } from '@lingui/macro';\n" +
24
23
  'const validValues = \n' +
25
24
  JSON.stringify(tsVV, null, 2).replace(
26
- /"title": \{(.*?(.|[\n])*?)\}/g,
27
- '"title": defineMessage({$1})'
25
+ /"label": \{(.*?(.|[\n])*?)\}/g,
26
+ '"label": defineMessage({$1})'
28
27
  ),
29
28
  { encoding: 'utf8' }
30
29
  );
30
+
31
+ // Building content for valid value .ts file.
32
+ fs.writeFileSync(
33
+ path.resolve(__dirname, `../validValues/${name}.ts`),
34
+ "import { defineMessage } from '@lingui/macro';\n" +
35
+ "import { ValidValueDefinition } from './types/ValidValueDefinition';\n\n" +
36
+ `export interface ${capitalizeFirstLetter(
37
+ name
38
+ )} extends ValidValueDefinition {} \n\n` +
39
+ '/** Makes sure errors are displayed where the error is introduced. */\n' +
40
+ `const ${name} = (value: ${capitalizeFirstLetter(
41
+ name
42
+ )}) => value; \n\n` +
43
+ `const all${capitalizeFirstLetter(name)} = \n` +
44
+ '{' +
45
+ Object.entries(tsVV)?.reduce((acc, [key, vv]) => {
46
+ acc +=
47
+ `${key}: ${name}(` +
48
+ JSON.stringify(vv, null, 2).replace(
49
+ /"label": \{(.*?(.|[\n])*?)\}/g,
50
+ '"label": defineMessage({$1})'
51
+ ) +
52
+ `),`;
53
+ return acc;
54
+ }, '') +
55
+ '}' +
56
+ `as const;\n\n` +
57
+ `export type ${capitalizeFirstLetter(
58
+ name
59
+ )}Key = keyof typeof all${capitalizeFirstLetter(name)};\n\n` +
60
+ `export default all${capitalizeFirstLetter(name)};`
61
+ );
31
62
  }
32
63
  for (const locale in i18All) {
33
64
  fs.writeFileSync(
@@ -58,3 +89,7 @@ describe('Transform bottlebooks-server/** legacy format valid values', () => {
58
89
  }
59
90
  });
60
91
  });
92
+
93
+ function capitalizeFirstLetter(string) {
94
+ return string.charAt(0).toUpperCase() + string.slice(1);
95
+ }