fix(): temporary transform cached data (#13467)

**What**
Properly store key obj reference for weak map usage
This commit is contained in:
Adrien de Peretti
2025-09-11 07:31:01 +00:00
committed by GitHub
parent 0700a2448c
commit 0079464f32
3 changed files with 26 additions and 9 deletions
+6
View File
@@ -0,0 +1,6 @@
---
"@medusajs/orchestration": patch
"@medusajs/workflows-sdk": patch
---
fix(): temporary transform cached data
@@ -311,16 +311,16 @@ class DistributedTransaction extends EventEmitter {
await DistributedTransaction.keyValueStore.clearStepTimeout(this, step) await DistributedTransaction.keyValueStore.clearStepTimeout(this, step)
} }
public setTemporaryData(key: string, value: unknown) { public setTemporaryData(key: { key: string }, value: unknown) {
this.#temporaryStorage.set({ key }, value) this.#temporaryStorage.set(key, value)
} }
public getTemporaryData(key: string) { public getTemporaryData(key: { key: string }) {
return this.#temporaryStorage.get({ key }) return this.#temporaryStorage.get(key)
} }
public hasTemporaryData(key: string) { public hasTemporaryData(key: { key: string }) {
return this.#temporaryStorage.has({ key }) return this.#temporaryStorage.has(key)
} }
/** /**
@@ -167,6 +167,7 @@ export function transform(
const ret = { const ret = {
__id: uniqId, __id: uniqId,
__type: OrchestrationUtils.SymbolWorkflowStepTransformer, __type: OrchestrationUtils.SymbolWorkflowStepTransformer,
__temporary_storage_key: null as { key: string } | null,
} }
const returnFn = async function ( const returnFn = async function (
@@ -175,9 +176,16 @@ export function transform(
): Promise<any> { ): Promise<any> {
if ("transaction" in transactionContext) { if ("transaction" in transactionContext) {
const temporaryDataKey = `${transactionContext.transaction.modelId}_${transactionContext.transaction.transactionId}_${uniqId}` const temporaryDataKey = `${transactionContext.transaction.modelId}_${transactionContext.transaction.transactionId}_${uniqId}`
ret.__temporary_storage_key ??= { key: temporaryDataKey }
if (transactionContext.transaction.hasTemporaryData(temporaryDataKey)) { if (
return transactionContext.transaction.getTemporaryData(temporaryDataKey) transactionContext.transaction.hasTemporaryData(
ret.__temporary_storage_key
)
) {
return transactionContext.transaction.getTemporaryData(
ret.__temporary_storage_key
)
} }
} }
@@ -195,7 +203,10 @@ export function transform(
} }
if ("transaction" in transactionContext) { if ("transaction" in transactionContext) {
const temporaryDataKey = `${transactionContext.transaction.modelId}_${transactionContext.transaction.transactionId}_${uniqId}` const temporaryDataKey = ret.__temporary_storage_key!
if (!temporaryDataKey) {
return finalResult
}
transactionContext.transaction.setTemporaryData( transactionContext.transaction.setTemporaryData(
temporaryDataKey, temporaryDataKey,