@kokimoki/app 0.3.3 → 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
@@ -1,4 +1,3 @@
1
- import type { Task } from "./types/tasks";
2
1
  export interface FieldOptions {
3
2
  label?: string;
4
3
  optional: boolean;
@@ -9,6 +8,13 @@ export declare abstract class Field<T> {
9
8
  abstract get value(): T;
10
9
  abstract get schema(): any;
11
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
+ }
12
18
  export declare class ImageField extends Field<string> {
13
19
  value: string;
14
20
  constructor(value: string, options?: FieldOptions);
@@ -25,6 +31,14 @@ export declare class TextField extends Field<string> {
25
31
  default: string;
26
32
  };
27
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
+ }
28
42
  export declare class IntegerField extends Field<number> {
29
43
  value: number;
30
44
  constructor(value: number, options?: FieldOptions);
@@ -33,7 +47,7 @@ export declare class IntegerField extends Field<number> {
33
47
  default: number;
34
48
  };
35
49
  }
36
- export declare class FormGroup<T extends Record<string, any>> extends Field<{
50
+ export declare class FormGroup<T extends Record<string, Field<any>>> extends Field<{
37
51
  [key in keyof T]: Field<T>["value"];
38
52
  }> {
39
53
  fields: T;
@@ -56,12 +70,12 @@ export declare class FormArray<T> extends Field<T[]> {
56
70
  default: T[];
57
71
  };
58
72
  }
59
- export declare class TaskField extends Field<Task> {
60
- value: Task;
61
- constructor(value: Task, options?: FieldOptions);
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);
62
77
  get schema(): {
63
- type: string;
64
- properties: {};
78
+ oneOf: any[];
65
79
  };
66
80
  }
67
81
  export declare class Form<T extends Record<string, Field<any>>> extends FormGroup<T> {
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,17 +111,17 @@ export class FormArray extends Field {
85
111
  };
86
112
  }
87
113
  }
88
- export class TaskField extends Field {
114
+ export class OneOfField extends Field {
115
+ fields;
89
116
  value;
90
- constructor(value, options = defaultFieldOptions) {
117
+ constructor(fields, value, options = { optional: false }) {
91
118
  super(options);
119
+ this.fields = fields;
92
120
  this.value = value;
93
121
  }
94
122
  get schema() {
95
- // TODO: validate task interface, not important right now
96
123
  return {
97
- type: "object",
98
- properties: {},
124
+ oneOf: this.fields.map((field) => field.schema),
99
125
  };
100
126
  }
101
127
  }
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export * from "./types/tasks";
2
1
  export * from "./types/common";
3
2
  export * from "./types/events";
4
3
  export * from "./types/upload";
package/dist/index.js CHANGED
@@ -1,4 +1,3 @@
1
- export * from "./types/tasks";
2
1
  export * from "./types/common";
3
2
  export * from "./types/events";
4
3
  export * from "./types/upload";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kokimoki/app",
3
- "version": "0.3.3",
3
+ "version": "0.4.1",
4
4
  "type": "module",
5
5
  "description": "Kokimoki app",
6
6
  "main": "dist/index.js",