@prismatic-io/spectral 7.9.0 → 7.10.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.
@@ -1,6 +1,6 @@
1
1
  import { Inputs } from ".";
2
2
  import { ConditionalExpression } from "./conditional-logic";
3
- import { InputFieldCollection, InputCleanFunction, Connection } from "./Inputs";
3
+ import { InputFieldCollection, InputCleanFunction, Connection, KeyValuePair } from "./Inputs";
4
4
  /**
5
5
  * Collection of input parameters.
6
6
  * Inputs can be static values, references to config variables, or
@@ -10,16 +10,3 @@ export declare type ActionInputParameters<TInputs extends Inputs> = {
10
10
  [Property in keyof TInputs]: TInputs[Property]["clean"] extends InputCleanFunction<any> ? ReturnType<TInputs[Property]["clean"]> : TInputs[Property]["type"] extends "connection" ? ExtractValue<Connection, TInputs[Property]["collection"]> : TInputs[Property]["type"] extends "conditional" ? ExtractValue<ConditionalExpression, TInputs[Property]["collection"]> : ExtractValue<TInputs[Property]["default"], TInputs[Property]["collection"]>;
11
11
  };
12
12
  export declare type ExtractValue<TType, TCollection extends InputFieldCollection | undefined> = TCollection extends "keyvaluelist" ? KeyValuePair<TType>[] : TCollection extends "valuelist" ? TType[] : TType;
13
- /**
14
- * KeyValuePair input parameter type.
15
- * This allows users to input multiple keys / values as an input.
16
- * To see an example of how this can be used, see the `tagging` input
17
- * of the `putObject` action of the AWS S3 component:
18
- * https://github.com/prismatic-io/examples/blob/main/components/aws-s3/src/actions.ts
19
- */
20
- export interface KeyValuePair<V = unknown> {
21
- /** Key of the KeyValuePair */
22
- key: string;
23
- /** Value of the KeyValuePair */
24
- value: V;
25
- }
@@ -1,5 +1,18 @@
1
1
  import { ConditionalExpression } from "./conditional-logic";
2
2
  import { JsonSchema, UISchemaElement } from "@jsonforms/core";
3
+ /**
4
+ * KeyValuePair input parameter type.
5
+ * This allows users to input multiple keys / values as an input.
6
+ * To see an example of how this can be used, see the `tagging` input
7
+ * of the `putObject` action of the AWS S3 component:
8
+ * https://github.com/prismatic-io/examples/blob/main/components/aws-s3/src/actions.ts
9
+ */
10
+ export interface KeyValuePair<V = unknown> {
11
+ /** Key of the KeyValuePair */
12
+ key: string;
13
+ /** Value of the KeyValuePair */
14
+ value: V;
15
+ }
3
16
  export declare type Element = {
4
17
  key: string;
5
18
  label?: string;
@@ -66,81 +79,76 @@ interface BaseInputField {
66
79
  /** Indicate if this InputField is required. */
67
80
  required?: boolean;
68
81
  }
69
- export interface StringInputField extends BaseInputField {
70
- /** Data type the InputField will collect. */
71
- type: "string";
82
+ declare type CollectionOptions<T> = SingleValue<T> | ValueListCollection<T> | KeyValueListCollection<T>;
83
+ interface SingleValue<T> {
72
84
  /** Collection type of the InputField */
73
- collection?: InputFieldCollection;
85
+ collection?: undefined;
74
86
  /** Default value for this field. */
75
- default?: unknown;
87
+ default?: T;
88
+ }
89
+ interface ValueListCollection<T> {
90
+ /** Collection type of the InputField */
91
+ collection: "valuelist";
92
+ /** Default value for this field. */
93
+ default?: T[];
94
+ }
95
+ interface KeyValueListCollection<T> {
96
+ /** Collection type of the InputField */
97
+ collection: "keyvaluelist";
98
+ /** Default value for this field. */
99
+ default?: KeyValuePair<T>[];
100
+ }
101
+ export declare type StringInputField = BaseInputField & CollectionOptions<string> & {
102
+ /** Data type the InputField will collect. */
103
+ type: "string";
76
104
  /** Dictates possible choices for the input. */
77
105
  model?: InputFieldChoice[];
78
106
  /** Clean function */
79
- clean?: InputCleanFunction<this["default"]>;
80
- }
81
- export interface DataInputField extends BaseInputField {
107
+ clean?: InputCleanFunction<unknown>;
108
+ };
109
+ export declare type DataInputField = BaseInputField & CollectionOptions<string> & {
82
110
  /** Data type the InputField will collect. */
83
111
  type: "data";
84
- /** Collection type of the InputField */
85
- collection?: InputFieldCollection;
86
- /** Default value for this field. */
87
- default?: unknown;
88
112
  /** Dictates possible choices for the input. */
89
113
  model?: InputFieldChoice[];
90
114
  /** Clean function */
91
- clean?: InputCleanFunction<this["default"]>;
92
- }
93
- export interface TextInputField extends BaseInputField {
115
+ clean?: InputCleanFunction<unknown>;
116
+ };
117
+ export declare type TextInputField = BaseInputField & CollectionOptions<string> & {
94
118
  /** Data type the InputField will collect. */
95
119
  type: "text";
96
- /** Collection type of the InputField */
97
- collection?: InputFieldCollection;
98
- /** Default value for this field. */
99
- default?: unknown;
100
120
  /** Dictates possible choices for the input. */
101
121
  model?: InputFieldChoice[];
102
122
  /** Clean function */
103
- clean?: InputCleanFunction<this["default"]>;
104
- }
105
- export interface PasswordInputField extends BaseInputField {
123
+ clean?: InputCleanFunction<unknown>;
124
+ };
125
+ export declare type PasswordInputField = BaseInputField & CollectionOptions<string> & {
106
126
  /** Data type the InputField will collect. */
107
127
  type: "password";
108
- /** Collection type of the InputField */
109
- collection?: InputFieldCollection;
110
- /** Default value for this field. */
111
- default?: unknown;
112
128
  /** Dictates possible choices for the input. */
113
129
  model?: InputFieldChoice[];
114
130
  /** Clean function */
115
- clean?: InputCleanFunction<this["default"]>;
116
- }
117
- export interface BooleanInputField extends BaseInputField {
131
+ clean?: InputCleanFunction<unknown>;
132
+ };
133
+ export declare type BooleanInputField = BaseInputField & CollectionOptions<string> & {
118
134
  /** Data type the InputField will collect. */
119
135
  type: "boolean";
120
- /** Collection type of the InputField */
121
- collection?: InputFieldCollection;
122
- /** Default value for this field. */
123
- default?: unknown;
124
136
  /** Dictates possible choices for the input. */
125
137
  model?: InputFieldChoice[];
126
138
  /** Clean function */
127
- clean?: InputCleanFunction<this["default"]>;
128
- }
139
+ clean?: InputCleanFunction<unknown>;
140
+ };
129
141
  /** Defines attributes of a CodeInputField. */
130
- export interface CodeInputField extends BaseInputField {
142
+ export declare type CodeInputField = BaseInputField & CollectionOptions<string> & {
131
143
  /** Data type the InputField will collect. */
132
144
  type: "code";
133
- /** Collection type of the InputField */
134
- collection?: InputFieldCollection;
135
- /** Default value for this field. */
136
- default?: unknown;
137
145
  /** Code language for syntax highlighting. For no syntax highlighting, choose "plaintext" */
138
146
  language: "css" | "graphql" | "handlebars" | "hcl" | "html" | "javascript" | "json" | "liquid" | "markdown" | "mysql" | "pgsql" | "plaintext" | "sql" | "typescript" | "xml" | "yaml";
139
147
  /** Dictates possible choices for the input. */
140
148
  model?: InputFieldChoice[];
141
149
  /** Clean function */
142
- clean?: InputCleanFunction<this["default"]>;
143
- }
150
+ clean?: InputCleanFunction<unknown>;
151
+ };
144
152
  /** Defines attributes of a ConditionalInputField. */
145
153
  export interface ConditionalInputField extends BaseInputField {
146
154
  /** Data type the InputField will collect. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prismatic-io/spectral",
3
- "version": "7.9.0",
3
+ "version": "7.10.0",
4
4
  "description": "Utility library for building Prismatic components",
5
5
  "keywords": [
6
6
  "prismatic"