@kokimoki/app 0.4.0 → 0.4.1

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/fields.d.ts CHANGED
@@ -8,6 +8,13 @@ export declare abstract class Field<T> {
8
8
  abstract get value(): T;
9
9
  abstract get schema(): any;
10
10
  }
11
+ export declare class ConstField<T> extends Field<T> {
12
+ value: T;
13
+ constructor(value: T, options?: FieldOptions);
14
+ get schema(): {
15
+ const: T;
16
+ };
17
+ }
11
18
  export declare class ImageField extends Field<string> {
12
19
  value: string;
13
20
  constructor(value: string, options?: FieldOptions);
@@ -24,6 +31,14 @@ export declare class TextField extends Field<string> {
24
31
  default: string;
25
32
  };
26
33
  }
34
+ export declare class EnumField<T extends string[]> extends Field<string> {
35
+ enumValues: T;
36
+ value: T[number];
37
+ constructor(enumValues: T, value: T[number], options?: FieldOptions);
38
+ get schema(): {
39
+ enum: T;
40
+ };
41
+ }
27
42
  export declare class IntegerField extends Field<number> {
28
43
  value: number;
29
44
  constructor(value: number, options?: FieldOptions);
@@ -32,7 +47,7 @@ export declare class IntegerField extends Field<number> {
32
47
  default: number;
33
48
  };
34
49
  }
35
- export declare class FormGroup<T extends Record<string, any>> extends Field<{
50
+ export declare class FormGroup<T extends Record<string, Field<any>>> extends Field<{
36
51
  [key in keyof T]: Field<T>["value"];
37
52
  }> {
38
53
  fields: T;
@@ -55,5 +70,13 @@ export declare class FormArray<T> extends Field<T[]> {
55
70
  default: T[];
56
71
  };
57
72
  }
73
+ export declare class OneOfField<T extends Field<any>> extends Field<T["value"]> {
74
+ fields: T[];
75
+ value: T["value"];
76
+ constructor(fields: T[], value: T["value"], options?: FieldOptions);
77
+ get schema(): {
78
+ oneOf: any[];
79
+ };
80
+ }
58
81
  export declare class Form<T extends Record<string, Field<any>>> extends FormGroup<T> {
59
82
  }
package/dist/fields.js CHANGED
@@ -7,6 +7,18 @@ export class Field {
7
7
  this.options = options;
8
8
  }
9
9
  }
10
+ export class ConstField extends Field {
11
+ value;
12
+ constructor(value, options = defaultFieldOptions) {
13
+ super(options);
14
+ this.value = value;
15
+ }
16
+ get schema() {
17
+ return {
18
+ const: this.value,
19
+ };
20
+ }
21
+ }
10
22
  export class ImageField extends Field {
11
23
  value;
12
24
  constructor(value, options = defaultFieldOptions) {
@@ -33,6 +45,20 @@ export class TextField extends Field {
33
45
  };
34
46
  }
35
47
  }
48
+ export class EnumField extends Field {
49
+ enumValues;
50
+ value;
51
+ constructor(enumValues, value, options = defaultFieldOptions) {
52
+ super(options);
53
+ this.enumValues = enumValues;
54
+ this.value = value;
55
+ }
56
+ get schema() {
57
+ return {
58
+ enum: this.enumValues,
59
+ };
60
+ }
61
+ }
36
62
  export class IntegerField extends Field {
37
63
  value;
38
64
  constructor(value, options = defaultFieldOptions) {
@@ -85,5 +111,19 @@ export class FormArray extends Field {
85
111
  };
86
112
  }
87
113
  }
114
+ export class OneOfField extends Field {
115
+ fields;
116
+ value;
117
+ constructor(fields, value, options = { optional: false }) {
118
+ super(options);
119
+ this.fields = fields;
120
+ this.value = value;
121
+ }
122
+ get schema() {
123
+ return {
124
+ oneOf: this.fields.map((field) => field.schema),
125
+ };
126
+ }
127
+ }
88
128
  export class Form extends FormGroup {
89
129
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kokimoki/app",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "type": "module",
5
5
  "description": "Kokimoki app",
6
6
  "main": "dist/index.js",