cogfy-data-exchange 1.0.15 → 1.0.16

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,4 +1,7 @@
1
+ import type { FlowJson } from './flow-json';
1
2
  import type { FromSchema } from './schema';
3
+ import type { ScreenName } from './screen';
4
+ import type { AllTriggers } from './trigger';
2
5
  type ExtractScreenById<T, Id extends string> = T extends {
3
6
  screens: infer Screens;
4
7
  } ? Screens extends readonly unknown[] ? Extract<Screens[number], {
@@ -48,6 +51,6 @@ type ResolvePayloadValue<V, Children, ScreenData> = V extends `$${'{'}form.${inf
48
51
  type ResolvePayload<P, Children, ScreenData> = P extends unknown ? {
49
52
  [K in keyof P]: ResolvePayloadValue<P[K], Children, ScreenData>;
50
53
  } : never;
51
- export type PayloadByScreenId<T, Id extends string> = ResolvePayload<ExtractPayload<ExtractChildren<ExtractScreenById<T, Id>>>, ExtractChildren<ExtractScreenById<T, Id>>, ExtractScreenData<ExtractScreenById<T, Id>>>;
52
- export type PayloadByTrigger<T, Trigger extends string, ScreenId extends string> = ResolvePayload<ExtractPayload<ExtractChildByTrigger<ExtractChildren<ExtractScreenById<T, ScreenId>>, Trigger>>, ExtractChildren<ExtractScreenById<T, ScreenId>>, ExtractScreenData<ExtractScreenById<T, ScreenId>>>;
54
+ export type PayloadByScreenId<T extends FlowJson, Id extends ScreenName<T>> = ResolvePayload<ExtractPayload<ExtractChildByTrigger<ExtractChildren<ExtractScreenById<T, Id>>, `screen.${Id}`>>, ExtractChildren<ExtractScreenById<T, Id>>, ExtractScreenData<ExtractScreenById<T, Id>>>;
55
+ export type PayloadByTrigger<T extends FlowJson, Trigger extends AllTriggers<T>, ScreenId extends ScreenName<T>> = ResolvePayload<ExtractPayload<ExtractChildByTrigger<ExtractChildren<ExtractScreenById<T, ScreenId>>, Trigger>>, ExtractChildren<ExtractScreenById<T, ScreenId>>, ExtractScreenData<ExtractScreenById<T, ScreenId>>>;
53
56
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cogfy-data-exchange",
3
- "version": "1.0.15",
3
+ "version": "1.0.16",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,4 +1,7 @@
1
+ import type { FlowJson } from './flow-json'
1
2
  import type { FromSchema } from './schema'
3
+ import type { ScreenName } from './screen'
4
+ import type { AllTriggers } from './trigger'
2
5
 
3
6
  type ExtractScreenById<T, Id extends string> = T extends {
4
7
  screens: infer Screens
@@ -58,13 +61,17 @@ type ResolvePayload<P, Children, ScreenData> = P extends unknown
58
61
  ? { [K in keyof P]: ResolvePayloadValue<P[K], Children, ScreenData> }
59
62
  : never
60
63
 
61
- export type PayloadByScreenId<T, Id extends string> = ResolvePayload<
62
- ExtractPayload<ExtractChildren<ExtractScreenById<T, Id>>>,
64
+ export type PayloadByScreenId<T extends FlowJson, Id extends ScreenName<T>> = ResolvePayload<
65
+ ExtractPayload<ExtractChildByTrigger<ExtractChildren<ExtractScreenById<T, Id>>, `screen.${Id}`>>,
63
66
  ExtractChildren<ExtractScreenById<T, Id>>,
64
67
  ExtractScreenData<ExtractScreenById<T, Id>>
65
68
  >
66
69
 
67
- export type PayloadByTrigger<T, Trigger extends string, ScreenId extends string> = ResolvePayload<
70
+ export type PayloadByTrigger<
71
+ T extends FlowJson,
72
+ Trigger extends AllTriggers<T>,
73
+ ScreenId extends ScreenName<T>,
74
+ > = ResolvePayload<
68
75
  ExtractPayload<ExtractChildByTrigger<ExtractChildren<ExtractScreenById<T, ScreenId>>, Trigger>>,
69
76
  ExtractChildren<ExtractScreenById<T, ScreenId>>,
70
77
  ExtractScreenData<ExtractScreenById<T, ScreenId>>