@plasmicapp/host 1.0.211 → 1.0.213

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,45 +1,113 @@
1
- export type StringType<T extends string = string> = "string" | `'${T}'`;
2
- export type NumberType<T extends number = number> = "number" | `${number extends T ? number : T}`;
3
- export type BooleanType<T extends boolean = boolean> = "boolean" | `${boolean extends T ? boolean : T}`;
4
- export type NullType = "null";
5
- export type UndefinedType = "undefined";
6
- export type ArrayType = "array";
7
- export type ObjectType = "object";
8
- export type AnyType = "any";
9
- export type VoidType = "void";
10
- export type RestrictedType<T> = T extends string ? StringType<T> : T extends number ? NumberType<T> : T extends boolean ? BooleanType<T> : T extends null ? NullType : T extends undefined ? UndefinedType : T extends Array<any> ? ArrayType : T extends object ? ObjectType : AnyType;
11
- export type OrType<T> = RestrictedType<T>[];
12
- export type ParamType<T> = AnyType | RestrictedType<T> | OrType<T>;
13
- export interface BaseParam<T> {
1
+ /**
2
+ * Context that we pass back to control functions.
3
+ */
4
+ export type ControlContext<P> = [
5
+ /**
6
+ * props
7
+ */
8
+ P
9
+ ];
10
+ /**
11
+ * Config option that takes the context (e.g., props) of the function call
12
+ * to dynamically set its value.
13
+ */
14
+ export type ContextDependentConfig<P, R> = (...args: ControlContext<P>) => R;
15
+ export interface BaseParam {
14
16
  name: string;
15
- type?: ParamType<T>;
16
17
  description?: string;
17
18
  isOptional?: boolean;
18
- isRestParam?: boolean;
19
+ isRestParameter?: boolean;
20
+ }
21
+ export interface ChoiceTypeBase<P, T> extends BaseParam {
22
+ type: "choice";
23
+ options: T[] | {
24
+ label: string;
25
+ value: T;
26
+ }[] | ContextDependentConfig<P, T[] | {
27
+ label: string;
28
+ value: T;
29
+ }[]>;
30
+ allowSearch?: boolean;
31
+ filterOption?: boolean;
32
+ onSearch?: ContextDependentConfig<P, ((value: string) => void) | undefined>;
33
+ }
34
+ export interface SingleChoiceType<P, T> extends ChoiceTypeBase<P, T> {
35
+ multiSelect?: false;
36
+ }
37
+ export interface MultiChoiceType<P, T> extends ChoiceTypeBase<P, T[]> {
38
+ multiSelect: true;
39
+ }
40
+ export interface CustomChoiceType<P, T> extends ChoiceTypeBase<P, T | T[]> {
41
+ multiSelect: ContextDependentConfig<P, boolean>;
42
+ }
43
+ export type ChoiceType<P, T> = SingleChoiceType<P, T> | MultiChoiceType<P, T> | CustomChoiceType<P, T>;
44
+ export interface PlainStringType<T extends string = string> extends BaseParam {
45
+ type: "string" | `'${T}'`;
46
+ }
47
+ export type StringType<P, T extends string = string> = "string" | PlainStringType<T> | ChoiceType<P, T> | AnyType;
48
+ export interface PlainNumberType<T extends number = number> extends BaseParam {
49
+ type: "number" | `${number extends T ? number : T}`;
50
+ }
51
+ export type NumberType<P, T extends number = number> = PlainNumberType<T> | ChoiceType<P, T> | AnyType;
52
+ export interface PlainBooleanType<T extends boolean = boolean> extends BaseParam {
53
+ type: "boolean" | `${boolean extends T ? boolean : T}`;
19
54
  }
20
- export interface RequiredParam<T> extends BaseParam<T> {
55
+ export type BooleanType<P, T extends boolean = boolean> = PlainBooleanType<T> | ChoiceType<P, T> | AnyType;
56
+ export interface PlainNullType extends BaseParam {
57
+ type: "null";
58
+ }
59
+ export type NullType = PlainNullType | AnyType;
60
+ export interface PlainUndefinedType extends BaseParam {
61
+ type: "undefined";
62
+ }
63
+ export type UndefinedType = PlainUndefinedType | AnyType;
64
+ export interface PlainArrayType extends BaseParam {
65
+ type: "array";
66
+ }
67
+ export type ArrayType = PlainArrayType | AnyType;
68
+ export interface PlainObjectType extends BaseParam {
69
+ type: "object";
70
+ }
71
+ export type ObjectType = PlainObjectType | AnyType;
72
+ export interface PlainAnyType extends BaseParam {
73
+ type: "any";
74
+ }
75
+ export type AnyType = PlainAnyType;
76
+ export interface PlainVoidType extends BaseParam {
77
+ type: "void";
78
+ }
79
+ export type VoidType = PlainVoidType | AnyType;
80
+ type IsAny<T> = 0 extends 1 & T ? true : false;
81
+ type CommonType<T> = T extends null ? NullType : T extends undefined ? UndefinedType : T extends Array<any> ? ArrayType : T extends object ? ObjectType : AnyType;
82
+ type AnyTyping<P, T> = T extends string ? StringType<P, T> : T extends number ? NumberType<P, T> : T extends boolean ? BooleanType<P, T> : CommonType<T>;
83
+ export type RestrictedType<P, T> = IsAny<T> extends true ? AnyTyping<P, T> : [T] extends [string] ? StringType<P, T> : [T] extends [number] ? NumberType<P, T> : [T] extends [boolean] ? BooleanType<P, T> : CommonType<T>;
84
+ export type ParamType<P, T> = RestrictedType<P, T>;
85
+ export type RequiredParam<P, T> = ParamType<P, T> & {
21
86
  isOptional?: false;
22
87
  isRestParameter?: false;
23
- }
24
- export interface OptionalParam<T> extends BaseParam<T | undefined> {
88
+ };
89
+ export type OptionalParam<P, T> = ParamType<P, T> & {
25
90
  isRestParameter?: false;
26
- }
27
- export interface RestParam<T> extends BaseParam<T> {
91
+ };
92
+ export type RestParam<P, T> = ParamType<P, T> & {
28
93
  isOptional?: false;
29
94
  isRestParameter: true;
30
- }
95
+ };
31
96
  type RequiredParams<T extends any[], U extends any[] = []> = Partial<T> extends T ? U : T extends [infer F, ...infer R] ? RequiredParams<R, [...U, F]> : U;
32
97
  type OptionalParams<T extends any[]> = T extends [
33
98
  ...RequiredParams<T>,
34
99
  ...infer R
35
100
  ] ? [...R] : [];
36
- type HandleRequiredParams<P extends any[]> = P extends [infer H, ...infer T] ? [string | RequiredParam<H>, ...HandleRequiredParams<T>] : [];
37
- type HandleOptionalParams<P extends any[]> = P extends [infer H, ...infer T] ? [] | [string | OptionalParam<H | undefined>, ...HandleOptionalParams<T>] : P extends [] ? [] : P extends Array<infer T> ? [] | [RestParam<T[]>] : [];
101
+ type HandleRequiredParams<P, R extends any[]> = R extends [infer H, ...infer T] ? [string | RequiredParam<P, H>, ...HandleRequiredParams<P, T>] : [];
102
+ type HandleOptionalParams<P, R extends any[]> = R extends [infer H, ...infer T] ? [] | [
103
+ string | OptionalParam<P, H | undefined>,
104
+ ...HandleOptionalParams<P, T>
105
+ ] : R extends [] ? [] : R extends Array<infer T> ? [] | [RestParam<P, T[]>] : [];
38
106
  export type HandleParams<P extends any[]> = [
39
- ...HandleRequiredParams<RequiredParams<P>>,
40
- ...HandleOptionalParams<Required<OptionalParams<P>>>
107
+ ...HandleRequiredParams<P, RequiredParams<P>>,
108
+ ...HandleOptionalParams<P, Required<OptionalParams<P>>>
41
109
  ];
42
- export type HandleReturnType<T> = VoidType | ParamType<T>;
110
+ export type HandleReturnType<P, T> = VoidType | ParamType<P, T>;
43
111
  export interface CustomFunctionMeta<F extends (...args: any[]) => any> {
44
112
  /**
45
113
  * The javascript name of the function. Notice it must be unique across all
@@ -69,7 +137,7 @@ export interface CustomFunctionMeta<F extends (...args: any[]) => any> {
69
137
  /**
70
138
  * The function return type.
71
139
  */
72
- type?: HandleReturnType<ReturnType<F>>;
140
+ type?: HandleReturnType<Parameters<F>, ReturnType<F>>;
73
141
  /**
74
142
  * The function return value description.
75
143
  */
@@ -1 +1 @@
1
- export declare const hostVersion = "1.0.211";
1
+ export declare const hostVersion = "1.0.213";
@@ -313,7 +313,7 @@ export interface EventHandlerType<P> extends PropTypeBase<P> {
313
313
  }
314
314
  export interface ChoiceTypeBase<P, T> extends PropTypeBaseDefault<P, T> {
315
315
  type: "choice";
316
- options: string[] | {
316
+ options: (string | number | boolean)[] | {
317
317
  label: string;
318
318
  value: string | number | boolean;
319
319
  }[] | ContextDependentConfig<P, string[] | {
@@ -1,45 +1,113 @@
1
- export type StringType<T extends string = string> = "string" | `'${T}'`;
2
- export type NumberType<T extends number = number> = "number" | `${number extends T ? number : T}`;
3
- export type BooleanType<T extends boolean = boolean> = "boolean" | `${boolean extends T ? boolean : T}`;
4
- export type NullType = "null";
5
- export type UndefinedType = "undefined";
6
- export type ArrayType = "array";
7
- export type ObjectType = "object";
8
- export type AnyType = "any";
9
- export type VoidType = "void";
10
- export type RestrictedType<T> = T extends string ? StringType<T> : T extends number ? NumberType<T> : T extends boolean ? BooleanType<T> : T extends null ? NullType : T extends undefined ? UndefinedType : T extends Array<any> ? ArrayType : T extends object ? ObjectType : AnyType;
11
- export type OrType<T> = RestrictedType<T>[];
12
- export type ParamType<T> = AnyType | RestrictedType<T> | OrType<T>;
13
- export interface BaseParam<T> {
1
+ /**
2
+ * Context that we pass back to control functions.
3
+ */
4
+ export type ControlContext<P> = [
5
+ /**
6
+ * props
7
+ */
8
+ P
9
+ ];
10
+ /**
11
+ * Config option that takes the context (e.g., props) of the function call
12
+ * to dynamically set its value.
13
+ */
14
+ export type ContextDependentConfig<P, R> = (...args: ControlContext<P>) => R;
15
+ export interface BaseParam {
14
16
  name: string;
15
- type?: ParamType<T>;
16
17
  description?: string;
17
18
  isOptional?: boolean;
18
- isRestParam?: boolean;
19
+ isRestParameter?: boolean;
20
+ }
21
+ export interface ChoiceTypeBase<P, T> extends BaseParam {
22
+ type: "choice";
23
+ options: T[] | {
24
+ label: string;
25
+ value: T;
26
+ }[] | ContextDependentConfig<P, T[] | {
27
+ label: string;
28
+ value: T;
29
+ }[]>;
30
+ allowSearch?: boolean;
31
+ filterOption?: boolean;
32
+ onSearch?: ContextDependentConfig<P, ((value: string) => void) | undefined>;
33
+ }
34
+ export interface SingleChoiceType<P, T> extends ChoiceTypeBase<P, T> {
35
+ multiSelect?: false;
36
+ }
37
+ export interface MultiChoiceType<P, T> extends ChoiceTypeBase<P, T[]> {
38
+ multiSelect: true;
39
+ }
40
+ export interface CustomChoiceType<P, T> extends ChoiceTypeBase<P, T | T[]> {
41
+ multiSelect: ContextDependentConfig<P, boolean>;
42
+ }
43
+ export type ChoiceType<P, T> = SingleChoiceType<P, T> | MultiChoiceType<P, T> | CustomChoiceType<P, T>;
44
+ export interface PlainStringType<T extends string = string> extends BaseParam {
45
+ type: "string" | `'${T}'`;
46
+ }
47
+ export type StringType<P, T extends string = string> = "string" | PlainStringType<T> | ChoiceType<P, T> | AnyType;
48
+ export interface PlainNumberType<T extends number = number> extends BaseParam {
49
+ type: "number" | `${number extends T ? number : T}`;
50
+ }
51
+ export type NumberType<P, T extends number = number> = PlainNumberType<T> | ChoiceType<P, T> | AnyType;
52
+ export interface PlainBooleanType<T extends boolean = boolean> extends BaseParam {
53
+ type: "boolean" | `${boolean extends T ? boolean : T}`;
19
54
  }
20
- export interface RequiredParam<T> extends BaseParam<T> {
55
+ export type BooleanType<P, T extends boolean = boolean> = PlainBooleanType<T> | ChoiceType<P, T> | AnyType;
56
+ export interface PlainNullType extends BaseParam {
57
+ type: "null";
58
+ }
59
+ export type NullType = PlainNullType | AnyType;
60
+ export interface PlainUndefinedType extends BaseParam {
61
+ type: "undefined";
62
+ }
63
+ export type UndefinedType = PlainUndefinedType | AnyType;
64
+ export interface PlainArrayType extends BaseParam {
65
+ type: "array";
66
+ }
67
+ export type ArrayType = PlainArrayType | AnyType;
68
+ export interface PlainObjectType extends BaseParam {
69
+ type: "object";
70
+ }
71
+ export type ObjectType = PlainObjectType | AnyType;
72
+ export interface PlainAnyType extends BaseParam {
73
+ type: "any";
74
+ }
75
+ export type AnyType = PlainAnyType;
76
+ export interface PlainVoidType extends BaseParam {
77
+ type: "void";
78
+ }
79
+ export type VoidType = PlainVoidType | AnyType;
80
+ type IsAny<T> = 0 extends 1 & T ? true : false;
81
+ type CommonType<T> = T extends null ? NullType : T extends undefined ? UndefinedType : T extends Array<any> ? ArrayType : T extends object ? ObjectType : AnyType;
82
+ type AnyTyping<P, T> = T extends string ? StringType<P, T> : T extends number ? NumberType<P, T> : T extends boolean ? BooleanType<P, T> : CommonType<T>;
83
+ export type RestrictedType<P, T> = IsAny<T> extends true ? AnyTyping<P, T> : [T] extends [string] ? StringType<P, T> : [T] extends [number] ? NumberType<P, T> : [T] extends [boolean] ? BooleanType<P, T> : CommonType<T>;
84
+ export type ParamType<P, T> = RestrictedType<P, T>;
85
+ export type RequiredParam<P, T> = ParamType<P, T> & {
21
86
  isOptional?: false;
22
87
  isRestParameter?: false;
23
- }
24
- export interface OptionalParam<T> extends BaseParam<T | undefined> {
88
+ };
89
+ export type OptionalParam<P, T> = ParamType<P, T> & {
25
90
  isRestParameter?: false;
26
- }
27
- export interface RestParam<T> extends BaseParam<T> {
91
+ };
92
+ export type RestParam<P, T> = ParamType<P, T> & {
28
93
  isOptional?: false;
29
94
  isRestParameter: true;
30
- }
95
+ };
31
96
  type RequiredParams<T extends any[], U extends any[] = []> = Partial<T> extends T ? U : T extends [infer F, ...infer R] ? RequiredParams<R, [...U, F]> : U;
32
97
  type OptionalParams<T extends any[]> = T extends [
33
98
  ...RequiredParams<T>,
34
99
  ...infer R
35
100
  ] ? [...R] : [];
36
- type HandleRequiredParams<P extends any[]> = P extends [infer H, ...infer T] ? [string | RequiredParam<H>, ...HandleRequiredParams<T>] : [];
37
- type HandleOptionalParams<P extends any[]> = P extends [infer H, ...infer T] ? [] | [string | OptionalParam<H | undefined>, ...HandleOptionalParams<T>] : P extends [] ? [] : P extends Array<infer T> ? [] | [RestParam<T[]>] : [];
101
+ type HandleRequiredParams<P, R extends any[]> = R extends [infer H, ...infer T] ? [string | RequiredParam<P, H>, ...HandleRequiredParams<P, T>] : [];
102
+ type HandleOptionalParams<P, R extends any[]> = R extends [infer H, ...infer T] ? [] | [
103
+ string | OptionalParam<P, H | undefined>,
104
+ ...HandleOptionalParams<P, T>
105
+ ] : R extends [] ? [] : R extends Array<infer T> ? [] | [RestParam<P, T[]>] : [];
38
106
  export type HandleParams<P extends any[]> = [
39
- ...HandleRequiredParams<RequiredParams<P>>,
40
- ...HandleOptionalParams<Required<OptionalParams<P>>>
107
+ ...HandleRequiredParams<P, RequiredParams<P>>,
108
+ ...HandleOptionalParams<P, Required<OptionalParams<P>>>
41
109
  ];
42
- export type HandleReturnType<T> = VoidType | ParamType<T>;
110
+ export type HandleReturnType<P, T> = VoidType | ParamType<P, T>;
43
111
  export interface CustomFunctionMeta<F extends (...args: any[]) => any> {
44
112
  /**
45
113
  * The javascript name of the function. Notice it must be unique across all
@@ -69,7 +137,7 @@ export interface CustomFunctionMeta<F extends (...args: any[]) => any> {
69
137
  /**
70
138
  * The function return type.
71
139
  */
72
- type?: HandleReturnType<ReturnType<F>>;
140
+ type?: HandleReturnType<Parameters<F>, ReturnType<F>>;
73
141
  /**
74
142
  * The function return value description.
75
143
  */
@@ -1 +1 @@
1
- export declare const hostVersion = "1.0.211";
1
+ export declare const hostVersion = "1.0.213";