diff --git a/.changeset/dry-squids-tap.md b/.changeset/dry-squids-tap.md
index d0a737f4af..613ec4b7cb 100644
--- a/.changeset/dry-squids-tap.md
+++ b/.changeset/dry-squids-tap.md
@@ -14,7 +14,7 @@ const EntityCardBlueprint = createExtensionBlueprint({
output: {
element: coreExtensionData.reactElement,
},
- factory(_, params: { text: string }) {
+ factory(params: { text: string }) {
return {
element:
{params.text}
,
};
diff --git a/packages/frontend-plugin-api/api-report.md b/packages/frontend-plugin-api/api-report.md
index 858350044c..342907e096 100644
--- a/packages/frontend-plugin-api/api-report.md
+++ b/packages/frontend-plugin-api/api-report.md
@@ -527,12 +527,12 @@ export interface CreateExtensionBlueprintOptions<
disabled?: boolean;
// (undocumented)
factory(
+ params: TParams,
context: {
node: AppNode;
config: TConfig;
inputs: Expand>;
},
- params: TParams,
): Expand>;
// (undocumented)
inputs?: TInputs;
@@ -899,20 +899,20 @@ export interface ExtensionBlueprint<
configSchema?: PortableSchema;
params: TParams;
factory?(
+ params: TParams,
context: {
node: AppNode;
config: TConfig;
inputs: Expand>;
orignalFactory(
+ params?: TParams,
context?: {
node?: AppNode;
config?: TConfig;
inputs?: Expand>;
},
- params?: TParams,
): Expand>;
},
- params: TParams,
): Expand>;
}): ExtensionDefinition;
}
diff --git a/packages/frontend-plugin-api/src/wiring/createExtensionBlueprint.test.tsx b/packages/frontend-plugin-api/src/wiring/createExtensionBlueprint.test.tsx
index b3e926e57c..c7b077bdbd 100644
--- a/packages/frontend-plugin-api/src/wiring/createExtensionBlueprint.test.tsx
+++ b/packages/frontend-plugin-api/src/wiring/createExtensionBlueprint.test.tsx
@@ -27,7 +27,7 @@ describe('createExtensionBlueprint', () => {
output: {
element: coreExtensionData.reactElement,
},
- factory(_, params: { text: string }) {
+ factory(params: { text: string }) {
return {
element: {params.text}
,
};
@@ -78,7 +78,7 @@ describe('createExtensionBlueprint', () => {
output: {
element: coreExtensionData.reactElement,
},
- factory(_, params: { text: string }) {
+ factory(params: { text: string }) {
return {
element: {params.text}
,
};
@@ -90,7 +90,7 @@ describe('createExtensionBlueprint', () => {
params: {
text: 'Hello, world!',
},
- factory(_, params: { text: string }) {
+ factory(params: { text: string }) {
return {
element: {params.text}
,
};
diff --git a/packages/frontend-plugin-api/src/wiring/createExtensionBlueprint.ts b/packages/frontend-plugin-api/src/wiring/createExtensionBlueprint.ts
index 74d2eeadf1..6c79017a0a 100644
--- a/packages/frontend-plugin-api/src/wiring/createExtensionBlueprint.ts
+++ b/packages/frontend-plugin-api/src/wiring/createExtensionBlueprint.ts
@@ -43,12 +43,12 @@ export interface CreateExtensionBlueprintOptions<
output: TOutput;
configSchema?: PortableSchema;
factory(
+ params: TParams,
context: {
node: AppNode;
config: TConfig;
inputs: Expand>;
},
- params: TParams,
): Expand>;
}
@@ -71,20 +71,20 @@ export interface ExtensionBlueprint<
configSchema?: PortableSchema;
params: TParams;
factory?(
+ params: TParams,
context: {
node: AppNode;
config: TConfig;
inputs: Expand>;
orignalFactory(
+ params?: TParams,
context?: {
node?: AppNode;
config?: TConfig;
inputs?: Expand>;
},
- params?: TParams,
): Expand>;
},
- params: TParams,
): Expand>;
}): ExtensionDefinition;
}
@@ -117,20 +117,20 @@ class ExtensionBlueprintImpl<
configSchema?: PortableSchema;
params: TParams;
factory?(
+ params: TParams,
context: {
node: AppNode;
config: TConfig;
inputs: Expand>;
orignalFactory(
+ params?: TParams,
context?: {
node?: AppNode;
config?: TConfig;
inputs?: Expand>;
},
- params?: TParams,
): Expand>;
},
- params: TParams,
): Expand>;
}): ExtensionDefinition {
return createExtension({
@@ -144,39 +144,30 @@ class ExtensionBlueprintImpl<
configSchema: args.configSchema ?? this.options.configSchema, // TODO: some config merging or smth
factory: ({ node, config, inputs }) => {
if (args.factory) {
- return args.factory(
- {
- node,
- config,
- inputs,
- orignalFactory: (
- innerContext?: {
- config?: TConfig;
- inputs?: Expand>;
- },
- innerParams?: TParams,
- ) =>
- this.options.factory(
- {
- node,
- config: innerContext?.config ?? config,
- inputs: innerContext?.inputs ?? inputs,
- },
- innerParams ?? args.params,
- ),
- },
- args.params,
- );
- }
-
- return this.options.factory(
- {
+ return args.factory(args.params, {
node,
config,
inputs,
- },
- args.params,
- );
+ orignalFactory: (
+ innerParams?: TParams,
+ innerContext?: {
+ config?: TConfig;
+ inputs?: Expand>;
+ },
+ ) =>
+ this.options.factory(innerParams ?? args.params, {
+ node,
+ config: innerContext?.config ?? config,
+ inputs: innerContext?.inputs ?? inputs,
+ }),
+ });
+ }
+
+ return this.options.factory(args.params, {
+ node,
+ config,
+ inputs,
+ });
},
});
}