@innet/server 2.0.0-beta.10 → 2.0.0-beta.11

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.
@@ -27,9 +27,18 @@ function useSchemaType(type, { example, examples, ref, values, ...options } = {}
27
27
  type: type === 'any' ? undefined : type,
28
28
  });
29
29
  }
30
+ const arrayValues = values ? Array.isArray(values) ? values : Object.keys(values) : values;
31
+ const enumDescription = values && !Array.isArray(values)
32
+ ? {
33
+ 'x-enum-descriptions': values,
34
+ 'x-enumDescriptions': values,
35
+ 'x-enumNames': values,
36
+ }
37
+ : {};
30
38
  return useNewSchema({
31
39
  ...options,
32
- enum: values,
40
+ ...enumDescription,
41
+ enum: arrayValues,
33
42
  example,
34
43
  examples,
35
44
  type: type === 'any' ? undefined : type,
@@ -31,9 +31,18 @@ function useSchemaType(type, { example, examples, ref, values, ...options } = {}
31
31
  type: type === 'any' ? undefined : type,
32
32
  });
33
33
  }
34
+ const arrayValues = values ? Array.isArray(values) ? values : Object.keys(values) : values;
35
+ const enumDescription = values && !Array.isArray(values)
36
+ ? {
37
+ 'x-enum-descriptions': values,
38
+ 'x-enumDescriptions': values,
39
+ 'x-enumNames': values,
40
+ }
41
+ : {};
34
42
  return useNewSchema.useNewSchema({
35
43
  ...options,
36
- enum: values,
44
+ ...enumDescription,
45
+ enum: arrayValues,
37
46
  example,
38
47
  examples,
39
48
  type: type === 'any' ? undefined : type,
package/index.es6.js CHANGED
@@ -117,5 +117,5 @@ export { pipe } from './utils/rules/pipe/pipe.es6.js';
117
117
  export { required } from './utils/rules/required/required.es6.js';
118
118
  export { tupleOf } from './utils/rules/tupleOf/tupleOf.es6.js';
119
119
  export { uuidTo } from './utils/rules/uuidTo/uuidTo.es6.js';
120
- export { values } from './utils/rules/values/values.es6.js';
120
+ export { getArrayValues, values } from './utils/rules/values/values.es6.js';
121
121
  export { stringifySearch } from './utils/stringifySearch/stringifySearch.es6.js';
package/index.js CHANGED
@@ -274,5 +274,6 @@ exports.pipe = pipe.pipe;
274
274
  exports.required = required.required;
275
275
  exports.tupleOf = tupleOf.tupleOf;
276
276
  exports.uuidTo = uuidTo.uuidTo;
277
+ exports.getArrayValues = values.getArrayValues;
277
278
  exports.values = values.values;
278
279
  exports.stringifySearch = stringifySearch.stringifySearch;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@innet/server",
3
- "version": "2.0.0-beta.10",
3
+ "version": "2.0.0-beta.11",
4
4
  "description": "Create server-side application with innet",
5
5
  "main": "index.js",
6
6
  "module": "index.es6.js",
@@ -4,10 +4,10 @@ import '../../../hooks/useParentRule/index.es6.js';
4
4
  import '../../../utils/index.es6.js';
5
5
  import '../../../utils/dateFormat/index.es6.js';
6
6
  import { dateFormat } from '../../../utils/dateFormat/dateFormat.es6.js';
7
+ import { getArrayValues, values } from '../../../utils/rules/values/values.es6.js';
7
8
  import { useSchemaType } from '../../../hooks/useSchemaType/useSchemaType.es6.js';
8
9
  import { defaultTo } from '../../../utils/rules/defaultTo/defaultTo.es6.js';
9
10
  import { dateTo } from '../../../utils/rules/dateTo/dateTo.es6.js';
10
- import { values } from '../../../utils/rules/values/values.es6.js';
11
11
  import { minDate } from '../../../utils/rules/minDate/minDate.es6.js';
12
12
  import { maxDate } from '../../../utils/rules/maxDate/maxDate.es6.js';
13
13
  import { useParentRule } from '../../../hooks/useParentRule/useParentRule.es6.js';
@@ -20,7 +20,7 @@ const date = () => {
20
20
  const normMax = dateFormat(max);
21
21
  const normDefault = dateFormat(defaultValue);
22
22
  const normExample = dateFormat(example);
23
- const normValues = values$1 === null || values$1 === void 0 ? void 0 : values$1.map(dateFormat);
23
+ const normValues = values$1 && getArrayValues(values$1, dateFormat);
24
24
  // @ts-expect-error: FIXME
25
25
  const stringValues = normValues === null || normValues === void 0 ? void 0 : normValues.map(value => value.toISOString());
26
26
  const normExamples = examples === null || examples === void 0 ? void 0 : examples.map(dateFormat);
@@ -8,10 +8,10 @@ require('../../../hooks/useParentRule/index.js');
8
8
  require('../../../utils/index.js');
9
9
  require('../../../utils/dateFormat/index.js');
10
10
  var dateFormat = require('../../../utils/dateFormat/dateFormat.js');
11
+ var values = require('../../../utils/rules/values/values.js');
11
12
  var useSchemaType = require('../../../hooks/useSchemaType/useSchemaType.js');
12
13
  var defaultTo = require('../../../utils/rules/defaultTo/defaultTo.js');
13
14
  var dateTo = require('../../../utils/rules/dateTo/dateTo.js');
14
- var values = require('../../../utils/rules/values/values.js');
15
15
  var minDate = require('../../../utils/rules/minDate/minDate.js');
16
16
  var maxDate = require('../../../utils/rules/maxDate/maxDate.js');
17
17
  var useParentRule = require('../../../hooks/useParentRule/useParentRule.js');
@@ -24,7 +24,7 @@ const date = () => {
24
24
  const normMax = dateFormat.dateFormat(max);
25
25
  const normDefault = dateFormat.dateFormat(defaultValue);
26
26
  const normExample = dateFormat.dateFormat(example);
27
- const normValues = values$1 === null || values$1 === void 0 ? void 0 : values$1.map(dateFormat.dateFormat);
27
+ const normValues = values$1 && values.getArrayValues(values$1, dateFormat.dateFormat);
28
28
  // @ts-expect-error: FIXME
29
29
  const stringValues = normValues === null || normValues === void 0 ? void 0 : normValues.map(value => value.toISOString());
30
30
  const normExamples = examples === null || examples === void 0 ? void 0 : examples.map(dateFormat.dateFormat);
@@ -2,9 +2,9 @@ import { useProps } from '@innet/jsx';
2
2
  import '../../../hooks/index.es6.js';
3
3
  import '../../../utils/index.es6.js';
4
4
  import { useSchemaType } from '../../../hooks/useSchemaType/useSchemaType.es6.js';
5
+ import { getArrayValues, values } from '../../../utils/rules/values/values.es6.js';
5
6
  import { defaultTo } from '../../../utils/rules/defaultTo/defaultTo.es6.js';
6
7
  import { int } from '../../../utils/rules/int/int.es6.js';
7
- import { values } from '../../../utils/rules/values/values.es6.js';
8
8
  import { min } from '../../../utils/rules/min/min.es6.js';
9
9
  import { max } from '../../../utils/rules/max/max.es6.js';
10
10
  import { useRule } from '../../../hooks/useRule/useRule.es6.js';
@@ -19,7 +19,7 @@ const integer = () => {
19
19
  default: defaultValue !== undefined ? Number(defaultValue) : undefined,
20
20
  example: example !== undefined ? Number(example) : undefined,
21
21
  examples: examples === null || examples === void 0 ? void 0 : examples.map(Number),
22
- values: values$1 === null || values$1 === void 0 ? void 0 : values$1.map(Number),
22
+ values: values$1 && getArrayValues(values$1, Number),
23
23
  });
24
24
  if (schema) {
25
25
  if (format) {
@@ -47,7 +47,7 @@ const integer = () => {
47
47
  }
48
48
  rules.push(int(format));
49
49
  if (values$1) {
50
- rules.push(values(values$1.map(value => int(format)(value))));
50
+ rules.push(values(getArrayValues(values$1, int(format))));
51
51
  }
52
52
  if (min$1 !== undefined) {
53
53
  rules.push(min(min$1));
@@ -6,9 +6,9 @@ var jsx = require('@innet/jsx');
6
6
  require('../../../hooks/index.js');
7
7
  require('../../../utils/index.js');
8
8
  var useSchemaType = require('../../../hooks/useSchemaType/useSchemaType.js');
9
+ var values = require('../../../utils/rules/values/values.js');
9
10
  var defaultTo = require('../../../utils/rules/defaultTo/defaultTo.js');
10
11
  var int = require('../../../utils/rules/int/int.js');
11
- var values = require('../../../utils/rules/values/values.js');
12
12
  var min = require('../../../utils/rules/min/min.js');
13
13
  var max = require('../../../utils/rules/max/max.js');
14
14
  var useRule = require('../../../hooks/useRule/useRule.js');
@@ -23,7 +23,7 @@ const integer = () => {
23
23
  default: defaultValue !== undefined ? Number(defaultValue) : undefined,
24
24
  example: example !== undefined ? Number(example) : undefined,
25
25
  examples: examples === null || examples === void 0 ? void 0 : examples.map(Number),
26
- values: values$1 === null || values$1 === void 0 ? void 0 : values$1.map(Number),
26
+ values: values$1 && values.getArrayValues(values$1, Number),
27
27
  });
28
28
  if (schema) {
29
29
  if (format) {
@@ -51,7 +51,7 @@ const integer = () => {
51
51
  }
52
52
  rules.push(int.int(format));
53
53
  if (values$1) {
54
- rules.push(values.values(values$1.map(value => int.int(format)(value))));
54
+ rules.push(values.values(values.getArrayValues(values$1, int.int(format))));
55
55
  }
56
56
  if (min$1 !== undefined) {
57
57
  rules.push(min.min(min$1));
@@ -5,7 +5,7 @@ import '../../../utils/index.es6.js';
5
5
  import { useSchemaType } from '../../../hooks/useSchemaType/useSchemaType.es6.js';
6
6
  import { defaultTo } from '../../../utils/rules/defaultTo/defaultTo.es6.js';
7
7
  import { num } from '../../../utils/rules/num/num.es6.js';
8
- import { values } from '../../../utils/rules/values/values.es6.js';
8
+ import { values, getArrayValues } from '../../../utils/rules/values/values.es6.js';
9
9
  import { min } from '../../../utils/rules/min/min.es6.js';
10
10
  import { max } from '../../../utils/rules/max/max.es6.js';
11
11
  import { useParentRule } from '../../../hooks/useParentRule/useParentRule.es6.js';
@@ -41,7 +41,7 @@ const number = () => {
41
41
  }
42
42
  rules.push(num);
43
43
  if (props.values) {
44
- rules.push(values(props.values));
44
+ rules.push(values(getArrayValues(props.values, Number)));
45
45
  }
46
46
  if (min$1 !== undefined) {
47
47
  rules.push(min(min$1));
@@ -45,7 +45,7 @@ const number = () => {
45
45
  }
46
46
  rules.push(num.num);
47
47
  if (props.values) {
48
- rules.push(values.values(props.values));
48
+ rules.push(values.values(values.getArrayValues(props.values, Number)));
49
49
  }
50
50
  if (min$1 !== undefined) {
51
51
  rules.push(min.min(min$1));
@@ -5,7 +5,7 @@ import '../../../utils/index.es6.js';
5
5
  import { useApi } from '../../../hooks/useApi/useApi.es6.js';
6
6
  import { useSchemaType } from '../../../hooks/useSchemaType/useSchemaType.es6.js';
7
7
  import { defaultTo } from '../../../utils/rules/defaultTo/defaultTo.es6.js';
8
- import { values } from '../../../utils/rules/values/values.es6.js';
8
+ import { values, getArrayValues } from '../../../utils/rules/values/values.es6.js';
9
9
  import { minLength } from '../../../utils/rules/minLength/minLength.es6.js';
10
10
  import { maxLength } from '../../../utils/rules/maxLength/maxLength.es6.js';
11
11
  import { pattern } from '../../../utils/rules/pattern/pattern.es6.js';
@@ -27,7 +27,7 @@ const string = () => {
27
27
  }
28
28
  rules.push(String);
29
29
  if (props.values) {
30
- rules.push(values(props.values));
30
+ rules.push(values(getArrayValues(props.values)));
31
31
  }
32
32
  if (format !== undefined) {
33
33
  schema.format = format;
@@ -31,7 +31,7 @@ const string = () => {
31
31
  }
32
32
  rules.push(String);
33
33
  if (props.values) {
34
- rules.push(values.values(props.values));
34
+ rules.push(values.values(values.getArrayValues(props.values)));
35
35
  }
36
36
  if (format !== undefined) {
37
37
  schema.format = format;
@@ -5,7 +5,7 @@ import '../../../utils/index.es6.js';
5
5
  import { useSchemaType } from '../../../hooks/useSchemaType/useSchemaType.es6.js';
6
6
  import { defaultTo } from '../../../utils/rules/defaultTo/defaultTo.es6.js';
7
7
  import { uuidTo } from '../../../utils/rules/uuidTo/uuidTo.es6.js';
8
- import { values } from '../../../utils/rules/values/values.es6.js';
8
+ import { values, getArrayValues } from '../../../utils/rules/values/values.es6.js';
9
9
  import { useRule } from '../../../hooks/useRule/useRule.es6.js';
10
10
  import { optional } from '../../../utils/rules/optional/optional.es6.js';
11
11
  import { pipe } from '../../../utils/rules/pipe/pipe.es6.js';
@@ -28,7 +28,7 @@ const uuid = () => {
28
28
  }
29
29
  rules.push(uuidTo);
30
30
  if (props.values) {
31
- rules.push(values(props.values));
31
+ rules.push(values(getArrayValues(props.values)));
32
32
  }
33
33
  if (defaultValue === undefined) {
34
34
  useRule(optional(pipe(...rules)));
@@ -32,7 +32,7 @@ const uuid = () => {
32
32
  }
33
33
  rules.push(uuidTo.uuidTo);
34
34
  if (props.values) {
35
- rules.push(values.values(props.values));
35
+ rules.push(values.values(values.getArrayValues(props.values)));
36
36
  }
37
37
  if (defaultValue === undefined) {
38
38
  useRule.useRule(optional.optional(pipe.pipe(...rules)));
package/types.d.ts CHANGED
@@ -68,7 +68,8 @@ export interface BaseSchemaProps<T> {
68
68
  title?: string;
69
69
  writeOnly?: boolean;
70
70
  }
71
+ export type SchemaValues<T> = (T extends (number | string) ? Record<T, string> : never) | T[];
71
72
  export interface ValuesSchemaProps<T> extends BaseSchemaProps<T> {
72
73
  const?: T;
73
- values?: T[];
74
+ values?: SchemaValues<T>;
74
75
  }
@@ -1 +1 @@
1
- export { values } from './values.es6.js';
1
+ export { getArrayValues, values } from './values.es6.js';
@@ -6,4 +6,5 @@ var values = require('./values.js');
6
6
 
7
7
 
8
8
 
9
+ exports.getArrayValues = values.getArrayValues;
9
10
  exports.values = values.values;
@@ -1 +1,3 @@
1
- export declare function values(values: any[]): (value: any, data?: object) => any;
1
+ import { type SchemaValues } from '../../../types';
2
+ export declare function getArrayValues<T, F extends (value: T | string) => any = () => T>(values: SchemaValues<T>, format?: F): ReturnType<F>[];
3
+ export declare function values<T>(values: T[]): (value: any, data?: object) => any;
@@ -1,5 +1,8 @@
1
1
  import { RulesError } from '../helpers.es6.js';
2
2
 
3
+ function getArrayValues(values, format = (value => value)) {
4
+ return Array.isArray(values) ? values.map(format) : Object.keys(values).map(format);
5
+ }
3
6
  function values(values) {
4
7
  return (value, data) => {
5
8
  if (!values.includes(value)) {
@@ -13,4 +16,4 @@ function values(values) {
13
16
  };
14
17
  }
15
18
 
16
- export { values };
19
+ export { getArrayValues, values };
@@ -4,6 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var helpers = require('../helpers.js');
6
6
 
7
+ function getArrayValues(values, format = (value => value)) {
8
+ return Array.isArray(values) ? values.map(format) : Object.keys(values).map(format);
9
+ }
7
10
  function values(values) {
8
11
  return (value, data) => {
9
12
  if (!values.includes(value)) {
@@ -17,4 +20,5 @@ function values(values) {
17
20
  };
18
21
  }
19
22
 
23
+ exports.getArrayValues = getArrayValues;
20
24
  exports.values = values;