@othree.io/stethoscope 5.0.0 → 5.0.1

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 +1 @@
1
- {"version":3,"file":"aws.js","sourceRoot":"","sources":["../../src/aws.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aws.js","sourceRoot":"","sources":["../../src/aws.ts"],"names":[],"mappings":"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","sourcesContent":["import {SQSBatchResponse, SQSEvent, SQSRecord} from 'aws-lambda'\nimport {Optional} from '@othree.io/optional'\nimport {\n GetProcessResults,\n ProcessResult,\n ProcessResultAction,\n ProcessResults,\n} from './results-processor'\nimport {sqs} from '@othree.io/awsome'\n\nexport const NoGroupSymbol: unique symbol = Symbol('NoGroupSymbol')\n\nconst LIMIT = 10\n\nexport type RunProcess<Input, Output> = (input: Input) => Promise<Optional<Output>>\n\nexport type Key = string | symbol\n\nexport type MessageResult<Input, Output> = Readonly<{\n message: SQSRecord\n result: ProcessResults<Input, Output>\n}>\n\nexport type Results<Input, Output> = Readonly<{\n [key in ProcessResultAction]: Array<MessageResult<Input, Output>>\n}>\n\nexport type GroupResults<Input, Output> = Readonly<{\n group: Key\n results: Results<Input, Output>\n}>\n\nexport type GroupedRecords = Record<Key, Array<SQSRecord>>\n\nconst InitialValue: Record<Key, Array<SQSRecord>> = Object.freeze({})\n\nconst appendToResults = <Input, Output>(\n accumulated: Results<Input, Output>,\n action: ProcessResultAction,\n messageResult: MessageResult<Input, Output>,\n): Results<Input, Output> => {\n return {\n none: accumulated.none,\n success: accumulated.success,\n failure: accumulated.failure,\n retry: accumulated.retry,\n [action]: ([] as Array<MessageResult<Input, Output>>).concat(accumulated[action], messageResult),\n }\n}\n\nexport const groupRecords = (records: Array<SQSRecord>): GroupedRecords => {\n const groupedRecords: GroupedRecords = records.reduce(((acum, current) => {\n const key = Optional<Key>(current.attributes.MessageGroupId).orElse(NoGroupSymbol)\n const existing = Optional(acum[key])\n const updated = existing\n .map(_ => ([] as Array<SQSRecord>).concat(_, current))\n .orElse([current])\n const result: Record<Key, Array<SQSRecord>> = {}\n Reflect.ownKeys(acum).forEach(k => { result[k] = acum[k] })\n result[key] = updated\n\n return result\n }), InitialValue)\n\n return groupedRecords\n}\n\nconst processInBatches = async <T, R>(items: Array<T>, limit: number, fn: (item: T) => Promise<R>): Promise<Array<R>> => {\n const results: Array<R> = []\n for (let i = 0; i < items.length; i += limit) {\n const batch = items.slice(i, i + limit)\n const batchResults = await Promise.all(batch.map(fn))\n results.push(...batchResults)\n }\n return results\n}\n\nexport const processSQSEvent = <Input, Output>(deps: {\n process: RunProcess<Input, Output>\n groupRecords: (records: Array<SQSRecord>) => GroupedRecords\n getProcessInput: RunProcess<SQSRecord, Input>\n getProcessResults: GetProcessResults<Input, Output>\n}) =>\n async (event: SQSEvent): Promise<Array<GroupResults<Input, Output>>> => {\n\n const groupedRecords = deps.groupRecords(event.Records)\n\n const groupedResults = await processInBatches(Reflect.ownKeys(groupedRecords), LIMIT, async (key: Key) => {\n const values = groupedRecords[key]\n\n let accumulated: Results<Input, Output> = {\n [ProcessResultAction.none]: [],\n [ProcessResultAction.failure]: [],\n [ProcessResultAction.success]: [],\n [ProcessResultAction.retry]: [],\n }\n\n for (const current of values) {\n const maybeInput = await deps.getProcessInput(current)\n\n if (maybeInput.isEmpty) {\n const processResult: ProcessResult<Input, Output, 'failure'> = {\n request: undefined!,\n action: ProcessResultAction.failure,\n result: undefined,\n error: Optional(maybeInput.getError()).orElse(new Error('Failed to get input')),\n }\n\n const messageResult: MessageResult<Input, Output> = {\n message: current,\n result: processResult,\n }\n\n accumulated = appendToResults(accumulated, processResult.action, messageResult)\n continue\n }\n\n const input = maybeInput.get()\n\n /*\n if it is an actual grouped message it means it's a fifo queue and\n if there's already a message for retry (retry action) on a previous message\n then next messages need to be retried.\n Return retry so that the message is placed back into the queue\n */\n if (key !== NoGroupSymbol && accumulated.retry.length > 0) {\n const messageResult: MessageResult<Input, Output> = {\n message: current,\n result: {\n request: maybeInput.orElse(undefined!) as Input,\n action: ProcessResultAction.retry,\n result: undefined,\n error: undefined,\n },\n }\n\n accumulated = appendToResults(accumulated, messageResult.result.action, messageResult)\n continue\n }\n\n const processResult: ProcessResults<Input, Output> = await deps.process(input as Input)\n .then(maybeResult => deps.getProcessResults(input as Input, maybeResult))\n\n const messageResult: MessageResult<Input, Output> = {\n message: current,\n result: processResult,\n }\n\n accumulated = appendToResults(accumulated, processResult.action, messageResult)\n }\n\n const groupResults: GroupResults<Input, Output> = {\n group: key,\n results: accumulated,\n }\n return groupResults\n })\n\n return groupedResults\n }\n\nexport const handleExponentialBackoff = <Input, Output>(deps: {\n changeMessageVisibility: (request: sqs.ChangeMessageVisibilityTimeoutRequest) => Promise<Optional<true>>\n getQueueUrl: (input: sqs.GetQueueUrlInput) => Optional<sqs.QueueUrlOutput>\n timeouts: Array<number>\n}) =>\n async (groupResults: Array<GroupResults<Input, Output>>): Promise<Array<GroupResults<Input, Output>>> => {\n await Promise.allSettled(groupResults.map(async results => {\n for (const messageResult of results.results.retry) {\n const receiveCount = Number(messageResult.message.attributes.ApproximateReceiveCount)\n const timeoutIndex = receiveCount - 1 >= deps.timeouts.length ? deps.timeouts.length - 1 : receiveCount - 1\n\n const visibilityTimeout = deps.timeouts[timeoutIndex]\n\n await deps.getQueueUrl({\n queueArn: messageResult.message.eventSourceARN\n }).mapAsync(async queueUrlOutput => {\n await deps.changeMessageVisibility({\n receiptHandle: messageResult.message.receiptHandle,\n queue: queueUrlOutput.queueUrl,\n timeout: visibilityTimeout,\n })\n })\n }\n }))\n\n return groupResults\n }\n\nexport type ErrorMessage<Input> = Readonly<{\n request: Input\n error: Readonly<{\n name: string\n message: string\n stack?: string\n }>\n}>\n\nexport const handleErrors = <Input, Output>(deps: {\n notifyError: (payload: ErrorMessage<SQSRecord>) => Promise<Optional<boolean>>\n}) =>\n async (groupResults: Array<GroupResults<Input, Output>>): Promise<Array<GroupResults<Input, Output>>> => {\n await Promise.allSettled(groupResults.map(async results => {\n for (const messageResult of results.results.failure) {\n await deps.notifyError({\n request: messageResult.message,\n error: {\n message: messageResult.result.error!.message,\n name: messageResult.result.error!.name,\n stack: messageResult.result.error!.stack,\n },\n })\n }\n }))\n\n return groupResults\n }\n\nexport const toSQSBatchResponse = async <Input, Output>(groupResults: Array<GroupResults<Input, Output>>): Promise<SQSBatchResponse> => {\n return {\n batchItemFailures: groupResults.map(_ => _.results.retry)\n .flat()\n .map(_ => {\n return {\n itemIdentifier: _.message.messageId,\n }\n }),\n }\n}\n\nexport const processSQSEventAndHandleResults = <Input, Output>(deps: {\n processSQSEvent: (event: SQSEvent) => Promise<Array<GroupResults<Input, Output>>>\n handleExponentialBackoff: (groupResults: Array<GroupResults<Input, Output>>) => Promise<Array<GroupResults<Input, Output>>>\n handleErrors: (groupResults: Array<GroupResults<Input, Output>>) => Promise<Array<GroupResults<Input, Output>>>\n toSQSBatchResponse: (groupResults: Array<GroupResults<Input, Output>>) => Promise<SQSBatchResponse>\n}) =>\n async (event: SQSEvent): Promise<SQSBatchResponse> => {\n return deps.processSQSEvent(event)\n .then(deps.handleErrors)\n .then(deps.handleExponentialBackoff)\n .then(deps.toSQSBatchResponse)\n }\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+BASc;AAEd,2DAAqD;AAErD,kDAA4C;AAE5C,8CAAqC;AAErC,sDAAmC;AACnC,+BAA4B;AAW5B,MAAM,WAAW,GAAG,CAAI,QAAuB,EAAE,EAAK,EAAE,IAAY,EAAK,EAAE;IACvE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAS,CAAC,CAAC,IAAI,CAAM,CAAA;IAC/C,CAAC;IACD,OAAO,EAAE,CAAA;AACb,CAAC,CAAA;AAEM,MAAM,UAAU,GAAG,CAAgB,IAOzC,EAAE,EAAE;IACD,MAAM,QAAQ,GAAG,IAAA,mBAAQ,EAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEnC,MAAM,iBAAiB,GAAG,WAAW,CACjC,QAAQ,EACR,IAAA,qBAAe,EAAgB;QAC3B,OAAO,EAAE,IAAI,CAAC,UAAU;QACxB,YAAY,EAAZ,kBAAY;QACZ,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,iBAAiB,EAAE,IAAA,qCAAiB,EAAC,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC;KACpE,CAAC,EACF,iBAAiB,CACpB,CAAA;IAED,MAAM,8BAA8B,GAAG,WAAW,CAC9C,QAAQ,EACR,YAAG,CAAC,8BAA8B,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC,EAC5D,gCAAgC,CACnC,CAAA;IAED,MAAM,0BAA0B,GAAG,WAAW,CAC1C,QAAQ,EACR,IAAA,8BAAwB,EAAgB;QACpC,uBAAuB,EAAE,8BAA8B;QACvD,WAAW,EAAE,YAAG,CAAC,WAAW;QAC5B,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,mBAAmB;KACnD,CAAC,EACF,0BAA0B,CAC7B,CAAA;IAED,MAAM,cAAc,GAAG,YAAG,CAAC,IAAI,CAA0B;QACrD,MAAM,EAAE,IAAI,CAAC,SAAS;QACtB,aAAa,EAAE,EAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAC;KACvD,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,WAAW,CAC9B,QAAQ,EACR,IAAA,kBAAY,EAAgB;QACxB,WAAW,EAAE,cAAc;KAC9B,CAAC,EACF,cAAc,CACjB,CAAA;IAED,OAAO,WAAW,CACd,QAAQ,EACR,IAAA,qCAA+B,EAAgB;QAC3C,eAAe,EAAE,iBAAiB;QAClC,wBAAwB,EAAE,0BAA0B;QACpD,YAAY,EAAE,cAAc;QAC5B,kBAAkB,EAAlB,wBAAkB;KACrB,CAAC,EACF,iCAAiC,CACpC,CAAA;AACL,CAAC,CAAA;AA5DY,QAAA,UAAU,cA4DtB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+BASc;AAEd,2DAAqD;AAErD,kDAA4C;AAE5C,8CAAqC;AAErC,sDAAmC;AACnC,+BAA4B;AAW5B,MAAM,WAAW,GAAG,CAAI,QAAuB,EAAE,EAAK,EAAE,IAAY,EAAK,EAAE;IACvE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAS,CAAC,CAAC,IAAI,CAAM,CAAA;IAC/C,CAAC;IACD,OAAO,EAAE,CAAA;AACb,CAAC,CAAA;AAEM,MAAM,UAAU,GAAG,CAAgB,IAOzC,EAAE,EAAE;IACD,MAAM,QAAQ,GAAG,IAAA,mBAAQ,EAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEnC,MAAM,iBAAiB,GAAG,WAAW,CACjC,QAAQ,EACR,IAAA,qBAAe,EAAgB;QAC3B,OAAO,EAAE,IAAI,CAAC,UAAU;QACxB,YAAY,EAAZ,kBAAY;QACZ,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,iBAAiB,EAAE,IAAA,qCAAiB,EAAC,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC;KACpE,CAAC,EACF,iBAAiB,CACpB,CAAA;IAED,MAAM,8BAA8B,GAAG,WAAW,CAC9C,QAAQ,EACR,YAAG,CAAC,8BAA8B,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC,EAC5D,gCAAgC,CACnC,CAAA;IAED,MAAM,0BAA0B,GAAG,WAAW,CAC1C,QAAQ,EACR,IAAA,8BAAwB,EAAgB;QACpC,uBAAuB,EAAE,8BAA8B;QACvD,WAAW,EAAE,YAAG,CAAC,WAAW;QAC5B,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,mBAAmB;KACnD,CAAC,EACF,0BAA0B,CAC7B,CAAA;IAED,MAAM,cAAc,GAAG,YAAG,CAAC,IAAI,CAA0B;QACrD,MAAM,EAAE,IAAI,CAAC,SAAS;QACtB,aAAa,EAAE,EAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAC;KACvD,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,WAAW,CAC9B,QAAQ,EACR,IAAA,kBAAY,EAAgB;QACxB,WAAW,EAAE,cAAc;KAC9B,CAAC,EACF,cAAc,CACjB,CAAA;IAED,OAAO,WAAW,CACd,QAAQ,EACR,IAAA,qCAA+B,EAAgB;QAC3C,eAAe,EAAE,iBAAiB;QAClC,wBAAwB,EAAE,0BAA0B;QACpD,YAAY,EAAE,cAAc;QAC5B,kBAAkB,EAAlB,wBAAkB;KACrB,CAAC,EACF,iCAAiC,CACpC,CAAA;AACL,CAAC,CAAA;AA5DY,QAAA,UAAU,cA4DtB","sourcesContent":["import {\n ErrorMessage,\n groupRecords,\n handleErrors,\n handleExponentialBackoff,\n processSQSEvent,\n processSQSEventAndHandleResults,\n RunProcess,\n toSQSBatchResponse,\n} from './aws'\nimport {SQSRecord} from 'aws-lambda'\nimport {getProcessResults} from './results-processor'\nimport {SQSClient} from '@aws-sdk/client-sqs'\nimport {Optional} from '@othree.io/optional'\nimport {LoggingProps} from '@othree.io/journal'\nimport {sqs} from '@othree.io/awsome'\n\nexport * from './results-processor'\nexport * as aws from './aws'\n\nexport type SQSProcessConfiguration = Readonly<{\n dlqUrl: string\n exponentialTimeouts: Array<number>\n}>\n\ntype Log = <Args extends ReadonlyArray<unknown>, Output>(fn: (...args: Args) => Promise<Output>) =>\n (context: string, loggingProps?: LoggingProps) =>\n (...args: Args) => Promise<Optional<Output>>\n\nconst wrapWithLog = <T>(maybeLog: Optional<Log>, fn: T, name: string): T => {\n if (maybeLog.isPresent) {\n return maybeLog.get()(fn as any)(name) as T\n }\n return fn\n}\n\nexport const processSqs = <Input, Output>(deps: {\n log?: Log\n sqsClient: SQSClient\n configuration: SQSProcessConfiguration\n didItFail: (error: Error) => boolean\n runProcess: RunProcess<Input, Output>\n getProcessInput: RunProcess<SQSRecord, Input>\n}) => {\n const maybeLog = Optional(deps.log)\n\n const processSQSEventFn = wrapWithLog(\n maybeLog,\n processSQSEvent<Input, Output>({\n process: deps.runProcess,\n groupRecords,\n getProcessInput: deps.getProcessInput,\n getProcessResults: getProcessResults({didItFail: deps.didItFail}),\n }),\n 'processSQSEvent',\n )\n\n const changeMessageVisibilityTimeout = wrapWithLog(\n maybeLog,\n sqs.changeMessageVisibilityTimeout({client: deps.sqsClient}),\n 'changeMessageVisibilityTimeout',\n )\n\n const handleExponentialBackoffFn = wrapWithLog(\n maybeLog,\n handleExponentialBackoff<Input, Output>({\n changeMessageVisibility: changeMessageVisibilityTimeout,\n getQueueUrl: sqs.getQueueUrl,\n timeouts: deps.configuration.exponentialTimeouts,\n }),\n 'handleExponentialBackoff',\n )\n\n const sendDLQMessage = sqs.send<ErrorMessage<SQSRecord>>({\n client: deps.sqsClient,\n configuration: {QueueUrl: deps.configuration.dlqUrl},\n })\n\n const handleErrorsFn = wrapWithLog(\n maybeLog,\n handleErrors<Input, Output>({\n notifyError: sendDLQMessage,\n }),\n 'handleErrors',\n )\n\n return wrapWithLog(\n maybeLog,\n processSQSEventAndHandleResults<Input, Output>({\n processSQSEvent: processSQSEventFn,\n handleExponentialBackoff: handleExponentialBackoffFn,\n handleErrors: handleErrorsFn,\n toSQSBatchResponse,\n }),\n 'processSQSEventAndHandleResults',\n )\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"results-processor.js","sourceRoot":"","sources":["../../src/results-processor.ts"],"names":[],"mappings":";;;AAEa,QAAA,mBAAmB,GAAG;IAC/B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACR,CAAA;AAmBH,MAAM,iBAAiB,GAAG,CAAC,IAEjC,EAAE,EAAE,CACD,KAAK,EAAiB,KAAY,EAAE,WAA6B,EAA0C,EAAE;IACzG,OAAO,WAAW;SACb,GAAG,CAAC,MAAM,CAAC,EAAE;QACV,MAAM,gBAAgB,GAAkC;YACpD,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,2BAAmB,CAAC,OAAO;YACnC,MAAM,EAAE,MAAgB;YACxB,KAAK,EAAE,SAAS;SACnB,CAAA;QAED,OAAO,gBAAgB,CAAA;IAC3B,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE;QACR,MAAM,QAAQ,GAAkC;YAC5C,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,2BAAmB,CAAC,IAAI;YAChC,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,SAAS;SACnB,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAC;SACD,UAAU,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,aAAa,GAAkC;gBACjD,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,2BAAmB,CAAC,OAAO;gBACnC,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,KAAK;aACf,CAAA;YAED,OAAO,aAAa,CAAA;QACxB,CAAC;QAED,MAAM,WAAW,GAAkC;YAC/C,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,2BAAmB,CAAC,KAAK;YACjC,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,SAAS;SACnB,CAAA;QACD,OAAO,WAAW,CAAA;IACtB,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;AAC3B,CAAC,CAAA;AA7CQ,QAAA,iBAAiB,qBA6CzB"}
1
+ {"version":3,"file":"results-processor.js","sourceRoot":"","sources":["../../src/results-processor.ts"],"names":[],"mappings":";;;AAEa,QAAA,mBAAmB,GAAG;IAC/B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACR,CAAA;AAmBH,MAAM,iBAAiB,GAAG,CAAC,IAEjC,EAAE,EAAE,CACD,KAAK,EAAiB,KAAY,EAAE,WAA6B,EAA0C,EAAE;IACzG,OAAO,WAAW;SACb,GAAG,CAAC,MAAM,CAAC,EAAE;QACV,MAAM,gBAAgB,GAAkC;YACpD,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,2BAAmB,CAAC,OAAO;YACnC,MAAM,EAAE,MAAgB;YACxB,KAAK,EAAE,SAAS;SACnB,CAAA;QAED,OAAO,gBAAgB,CAAA;IAC3B,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE;QACR,MAAM,QAAQ,GAAkC;YAC5C,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,2BAAmB,CAAC,IAAI;YAChC,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,SAAS;SACnB,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAC;SACD,UAAU,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,aAAa,GAAkC;gBACjD,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,2BAAmB,CAAC,OAAO;gBACnC,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,KAAK;aACf,CAAA;YAED,OAAO,aAAa,CAAA;QACxB,CAAC;QAED,MAAM,WAAW,GAAkC;YAC/C,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,2BAAmB,CAAC,KAAK;YACjC,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,SAAS;SACnB,CAAA;QACD,OAAO,WAAW,CAAA;IACtB,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;AAC3B,CAAC,CAAA;AA7CQ,QAAA,iBAAiB,qBA6CzB","sourcesContent":["import {Optional} from '@othree.io/optional'\n\nexport const ProcessResultAction = {\n success: 'success',\n failure: 'failure',\n none: 'none',\n retry: 'retry',\n} as const\n\nexport type ProcessResultAction = typeof ProcessResultAction[keyof typeof ProcessResultAction]\n\nexport type ProcessResult<Input, Output, Action extends ProcessResultAction> = Readonly<{\n request: Input\n action: Action\n result: Action extends 'success' ? Output : void\n error: Action extends 'failure' ? Error : void\n}>\n\nexport type ProcessResults<Input, Output> = ProcessResult<Input, Output, 'failure'>\n | ProcessResult<Input, Output, 'success'>\n | ProcessResult<Input, Output, 'none'>\n | ProcessResult<Input, Output, 'retry'>\n\n\nexport type GetProcessResults<Input, Output> = (input: Input, maybeResult: Optional<Output>) => Promise<ProcessResults<Input, Output>>\n\nexport const getProcessResults = (deps: {\n didItFail: (error: Error) => boolean\n}) =>\n async <Input, Output>(input: Input, maybeResult: Optional<Output>): Promise<ProcessResults<Input, Output>> => {\n return maybeResult\n .map(result => {\n const successfulResult: ProcessResults<Input, Output> = {\n request: input,\n action: ProcessResultAction.success,\n result: result as Output,\n error: undefined,\n }\n\n return successfulResult\n })\n .orMap(() => {\n const noResult: ProcessResults<Input, Output> = {\n request: input,\n action: ProcessResultAction.none,\n result: undefined,\n error: undefined,\n }\n return noResult\n })\n .catchAsync(async error => {\n if (deps.didItFail(error)) {\n const failureResult: ProcessResults<Input, Output> = {\n request: input,\n action: ProcessResultAction.failure,\n result: undefined,\n error: error,\n }\n\n return failureResult\n }\n\n const retryResult: ProcessResults<Input, Output> = {\n request: input,\n action: ProcessResultAction.retry,\n result: undefined,\n error: undefined,\n }\n return retryResult\n })\n .then(_ => _.get())\n }\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"aws.js","sourceRoot":"","sources":["../../src/aws.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aws.js","sourceRoot":"","sources":["../../src/aws.ts"],"names":[],"mappings":"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","sourcesContent":["import {SQSBatchResponse, SQSEvent, SQSRecord} from 'aws-lambda'\nimport {Optional} from '@othree.io/optional'\nimport {\n GetProcessResults,\n ProcessResult,\n ProcessResultAction,\n ProcessResults,\n} from './results-processor'\nimport {sqs} from '@othree.io/awsome'\n\nexport const NoGroupSymbol: unique symbol = Symbol('NoGroupSymbol')\n\nconst LIMIT = 10\n\nexport type RunProcess<Input, Output> = (input: Input) => Promise<Optional<Output>>\n\nexport type Key = string | symbol\n\nexport type MessageResult<Input, Output> = Readonly<{\n message: SQSRecord\n result: ProcessResults<Input, Output>\n}>\n\nexport type Results<Input, Output> = Readonly<{\n [key in ProcessResultAction]: Array<MessageResult<Input, Output>>\n}>\n\nexport type GroupResults<Input, Output> = Readonly<{\n group: Key\n results: Results<Input, Output>\n}>\n\nexport type GroupedRecords = Record<Key, Array<SQSRecord>>\n\nconst InitialValue: Record<Key, Array<SQSRecord>> = Object.freeze({})\n\nconst appendToResults = <Input, Output>(\n accumulated: Results<Input, Output>,\n action: ProcessResultAction,\n messageResult: MessageResult<Input, Output>,\n): Results<Input, Output> => {\n return {\n none: accumulated.none,\n success: accumulated.success,\n failure: accumulated.failure,\n retry: accumulated.retry,\n [action]: ([] as Array<MessageResult<Input, Output>>).concat(accumulated[action], messageResult),\n }\n}\n\nexport const groupRecords = (records: Array<SQSRecord>): GroupedRecords => {\n const groupedRecords: GroupedRecords = records.reduce(((acum, current) => {\n const key = Optional<Key>(current.attributes.MessageGroupId).orElse(NoGroupSymbol)\n const existing = Optional(acum[key])\n const updated = existing\n .map(_ => ([] as Array<SQSRecord>).concat(_, current))\n .orElse([current])\n const result: Record<Key, Array<SQSRecord>> = {}\n Reflect.ownKeys(acum).forEach(k => { result[k] = acum[k] })\n result[key] = updated\n\n return result\n }), InitialValue)\n\n return groupedRecords\n}\n\nconst processInBatches = async <T, R>(items: Array<T>, limit: number, fn: (item: T) => Promise<R>): Promise<Array<R>> => {\n const results: Array<R> = []\n for (let i = 0; i < items.length; i += limit) {\n const batch = items.slice(i, i + limit)\n const batchResults = await Promise.all(batch.map(fn))\n results.push(...batchResults)\n }\n return results\n}\n\nexport const processSQSEvent = <Input, Output>(deps: {\n process: RunProcess<Input, Output>\n groupRecords: (records: Array<SQSRecord>) => GroupedRecords\n getProcessInput: RunProcess<SQSRecord, Input>\n getProcessResults: GetProcessResults<Input, Output>\n}) =>\n async (event: SQSEvent): Promise<Array<GroupResults<Input, Output>>> => {\n\n const groupedRecords = deps.groupRecords(event.Records)\n\n const groupedResults = await processInBatches(Reflect.ownKeys(groupedRecords), LIMIT, async (key: Key) => {\n const values = groupedRecords[key]\n\n let accumulated: Results<Input, Output> = {\n [ProcessResultAction.none]: [],\n [ProcessResultAction.failure]: [],\n [ProcessResultAction.success]: [],\n [ProcessResultAction.retry]: [],\n }\n\n for (const current of values) {\n const maybeInput = await deps.getProcessInput(current)\n\n if (maybeInput.isEmpty) {\n const processResult: ProcessResult<Input, Output, 'failure'> = {\n request: undefined!,\n action: ProcessResultAction.failure,\n result: undefined,\n error: Optional(maybeInput.getError()).orElse(new Error('Failed to get input')),\n }\n\n const messageResult: MessageResult<Input, Output> = {\n message: current,\n result: processResult,\n }\n\n accumulated = appendToResults(accumulated, processResult.action, messageResult)\n continue\n }\n\n const input = maybeInput.get()\n\n /*\n if it is an actual grouped message it means it's a fifo queue and\n if there's already a message for retry (retry action) on a previous message\n then next messages need to be retried.\n Return retry so that the message is placed back into the queue\n */\n if (key !== NoGroupSymbol && accumulated.retry.length > 0) {\n const messageResult: MessageResult<Input, Output> = {\n message: current,\n result: {\n request: maybeInput.orElse(undefined!) as Input,\n action: ProcessResultAction.retry,\n result: undefined,\n error: undefined,\n },\n }\n\n accumulated = appendToResults(accumulated, messageResult.result.action, messageResult)\n continue\n }\n\n const processResult: ProcessResults<Input, Output> = await deps.process(input as Input)\n .then(maybeResult => deps.getProcessResults(input as Input, maybeResult))\n\n const messageResult: MessageResult<Input, Output> = {\n message: current,\n result: processResult,\n }\n\n accumulated = appendToResults(accumulated, processResult.action, messageResult)\n }\n\n const groupResults: GroupResults<Input, Output> = {\n group: key,\n results: accumulated,\n }\n return groupResults\n })\n\n return groupedResults\n }\n\nexport const handleExponentialBackoff = <Input, Output>(deps: {\n changeMessageVisibility: (request: sqs.ChangeMessageVisibilityTimeoutRequest) => Promise<Optional<true>>\n getQueueUrl: (input: sqs.GetQueueUrlInput) => Optional<sqs.QueueUrlOutput>\n timeouts: Array<number>\n}) =>\n async (groupResults: Array<GroupResults<Input, Output>>): Promise<Array<GroupResults<Input, Output>>> => {\n await Promise.allSettled(groupResults.map(async results => {\n for (const messageResult of results.results.retry) {\n const receiveCount = Number(messageResult.message.attributes.ApproximateReceiveCount)\n const timeoutIndex = receiveCount - 1 >= deps.timeouts.length ? deps.timeouts.length - 1 : receiveCount - 1\n\n const visibilityTimeout = deps.timeouts[timeoutIndex]\n\n await deps.getQueueUrl({\n queueArn: messageResult.message.eventSourceARN\n }).mapAsync(async queueUrlOutput => {\n await deps.changeMessageVisibility({\n receiptHandle: messageResult.message.receiptHandle,\n queue: queueUrlOutput.queueUrl,\n timeout: visibilityTimeout,\n })\n })\n }\n }))\n\n return groupResults\n }\n\nexport type ErrorMessage<Input> = Readonly<{\n request: Input\n error: Readonly<{\n name: string\n message: string\n stack?: string\n }>\n}>\n\nexport const handleErrors = <Input, Output>(deps: {\n notifyError: (payload: ErrorMessage<SQSRecord>) => Promise<Optional<boolean>>\n}) =>\n async (groupResults: Array<GroupResults<Input, Output>>): Promise<Array<GroupResults<Input, Output>>> => {\n await Promise.allSettled(groupResults.map(async results => {\n for (const messageResult of results.results.failure) {\n await deps.notifyError({\n request: messageResult.message,\n error: {\n message: messageResult.result.error!.message,\n name: messageResult.result.error!.name,\n stack: messageResult.result.error!.stack,\n },\n })\n }\n }))\n\n return groupResults\n }\n\nexport const toSQSBatchResponse = async <Input, Output>(groupResults: Array<GroupResults<Input, Output>>): Promise<SQSBatchResponse> => {\n return {\n batchItemFailures: groupResults.map(_ => _.results.retry)\n .flat()\n .map(_ => {\n return {\n itemIdentifier: _.message.messageId,\n }\n }),\n }\n}\n\nexport const processSQSEventAndHandleResults = <Input, Output>(deps: {\n processSQSEvent: (event: SQSEvent) => Promise<Array<GroupResults<Input, Output>>>\n handleExponentialBackoff: (groupResults: Array<GroupResults<Input, Output>>) => Promise<Array<GroupResults<Input, Output>>>\n handleErrors: (groupResults: Array<GroupResults<Input, Output>>) => Promise<Array<GroupResults<Input, Output>>>\n toSQSBatchResponse: (groupResults: Array<GroupResults<Input, Output>>) => Promise<SQSBatchResponse>\n}) =>\n async (event: SQSEvent): Promise<SQSBatchResponse> => {\n return deps.processSQSEvent(event)\n .then(deps.handleErrors)\n .then(deps.handleExponentialBackoff)\n .then(deps.toSQSBatchResponse)\n }\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACxB,eAAe,EACf,+BAA+B,EAE/B,kBAAkB,GACrB,MAAM,OAAO,CAAA;AAEd,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAA;AAErD,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAA;AAE5C,OAAO,EAAC,GAAG,EAAC,MAAM,mBAAmB,CAAA;AAErC,cAAc,qBAAqB,CAAA;AACnC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAA;AAW5B,MAAM,WAAW,GAAG,CAAI,QAAuB,EAAE,EAAK,EAAE,IAAY,EAAK,EAAE;IACvE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAS,CAAC,CAAC,IAAI,CAAM,CAAA;IAC/C,CAAC;IACD,OAAO,EAAE,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAgB,IAOzC,EAAE,EAAE;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEnC,MAAM,iBAAiB,GAAG,WAAW,CACjC,QAAQ,EACR,eAAe,CAAgB;QAC3B,OAAO,EAAE,IAAI,CAAC,UAAU;QACxB,YAAY;QACZ,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,iBAAiB,EAAE,iBAAiB,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC;KACpE,CAAC,EACF,iBAAiB,CACpB,CAAA;IAED,MAAM,8BAA8B,GAAG,WAAW,CAC9C,QAAQ,EACR,GAAG,CAAC,8BAA8B,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC,EAC5D,gCAAgC,CACnC,CAAA;IAED,MAAM,0BAA0B,GAAG,WAAW,CAC1C,QAAQ,EACR,wBAAwB,CAAgB;QACpC,uBAAuB,EAAE,8BAA8B;QACvD,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,mBAAmB;KACnD,CAAC,EACF,0BAA0B,CAC7B,CAAA;IAED,MAAM,cAAc,GAAG,GAAG,CAAC,IAAI,CAA0B;QACrD,MAAM,EAAE,IAAI,CAAC,SAAS;QACtB,aAAa,EAAE,EAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAC;KACvD,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,WAAW,CAC9B,QAAQ,EACR,YAAY,CAAgB;QACxB,WAAW,EAAE,cAAc;KAC9B,CAAC,EACF,cAAc,CACjB,CAAA;IAED,OAAO,WAAW,CACd,QAAQ,EACR,+BAA+B,CAAgB;QAC3C,eAAe,EAAE,iBAAiB;QAClC,wBAAwB,EAAE,0BAA0B;QACpD,YAAY,EAAE,cAAc;QAC5B,kBAAkB;KACrB,CAAC,EACF,iCAAiC,CACpC,CAAA;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACxB,eAAe,EACf,+BAA+B,EAE/B,kBAAkB,GACrB,MAAM,OAAO,CAAA;AAEd,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAA;AAErD,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAA;AAE5C,OAAO,EAAC,GAAG,EAAC,MAAM,mBAAmB,CAAA;AAErC,cAAc,qBAAqB,CAAA;AACnC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAA;AAW5B,MAAM,WAAW,GAAG,CAAI,QAAuB,EAAE,EAAK,EAAE,IAAY,EAAK,EAAE;IACvE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAS,CAAC,CAAC,IAAI,CAAM,CAAA;IAC/C,CAAC;IACD,OAAO,EAAE,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAgB,IAOzC,EAAE,EAAE;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEnC,MAAM,iBAAiB,GAAG,WAAW,CACjC,QAAQ,EACR,eAAe,CAAgB;QAC3B,OAAO,EAAE,IAAI,CAAC,UAAU;QACxB,YAAY;QACZ,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,iBAAiB,EAAE,iBAAiB,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC;KACpE,CAAC,EACF,iBAAiB,CACpB,CAAA;IAED,MAAM,8BAA8B,GAAG,WAAW,CAC9C,QAAQ,EACR,GAAG,CAAC,8BAA8B,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC,EAC5D,gCAAgC,CACnC,CAAA;IAED,MAAM,0BAA0B,GAAG,WAAW,CAC1C,QAAQ,EACR,wBAAwB,CAAgB;QACpC,uBAAuB,EAAE,8BAA8B;QACvD,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,mBAAmB;KACnD,CAAC,EACF,0BAA0B,CAC7B,CAAA;IAED,MAAM,cAAc,GAAG,GAAG,CAAC,IAAI,CAA0B;QACrD,MAAM,EAAE,IAAI,CAAC,SAAS;QACtB,aAAa,EAAE,EAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAC;KACvD,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,WAAW,CAC9B,QAAQ,EACR,YAAY,CAAgB;QACxB,WAAW,EAAE,cAAc;KAC9B,CAAC,EACF,cAAc,CACjB,CAAA;IAED,OAAO,WAAW,CACd,QAAQ,EACR,+BAA+B,CAAgB;QAC3C,eAAe,EAAE,iBAAiB;QAClC,wBAAwB,EAAE,0BAA0B;QACpD,YAAY,EAAE,cAAc;QAC5B,kBAAkB;KACrB,CAAC,EACF,iCAAiC,CACpC,CAAA;AACL,CAAC,CAAA","sourcesContent":["import {\n ErrorMessage,\n groupRecords,\n handleErrors,\n handleExponentialBackoff,\n processSQSEvent,\n processSQSEventAndHandleResults,\n RunProcess,\n toSQSBatchResponse,\n} from './aws'\nimport {SQSRecord} from 'aws-lambda'\nimport {getProcessResults} from './results-processor'\nimport {SQSClient} from '@aws-sdk/client-sqs'\nimport {Optional} from '@othree.io/optional'\nimport {LoggingProps} from '@othree.io/journal'\nimport {sqs} from '@othree.io/awsome'\n\nexport * from './results-processor'\nexport * as aws from './aws'\n\nexport type SQSProcessConfiguration = Readonly<{\n dlqUrl: string\n exponentialTimeouts: Array<number>\n}>\n\ntype Log = <Args extends ReadonlyArray<unknown>, Output>(fn: (...args: Args) => Promise<Output>) =>\n (context: string, loggingProps?: LoggingProps) =>\n (...args: Args) => Promise<Optional<Output>>\n\nconst wrapWithLog = <T>(maybeLog: Optional<Log>, fn: T, name: string): T => {\n if (maybeLog.isPresent) {\n return maybeLog.get()(fn as any)(name) as T\n }\n return fn\n}\n\nexport const processSqs = <Input, Output>(deps: {\n log?: Log\n sqsClient: SQSClient\n configuration: SQSProcessConfiguration\n didItFail: (error: Error) => boolean\n runProcess: RunProcess<Input, Output>\n getProcessInput: RunProcess<SQSRecord, Input>\n}) => {\n const maybeLog = Optional(deps.log)\n\n const processSQSEventFn = wrapWithLog(\n maybeLog,\n processSQSEvent<Input, Output>({\n process: deps.runProcess,\n groupRecords,\n getProcessInput: deps.getProcessInput,\n getProcessResults: getProcessResults({didItFail: deps.didItFail}),\n }),\n 'processSQSEvent',\n )\n\n const changeMessageVisibilityTimeout = wrapWithLog(\n maybeLog,\n sqs.changeMessageVisibilityTimeout({client: deps.sqsClient}),\n 'changeMessageVisibilityTimeout',\n )\n\n const handleExponentialBackoffFn = wrapWithLog(\n maybeLog,\n handleExponentialBackoff<Input, Output>({\n changeMessageVisibility: changeMessageVisibilityTimeout,\n getQueueUrl: sqs.getQueueUrl,\n timeouts: deps.configuration.exponentialTimeouts,\n }),\n 'handleExponentialBackoff',\n )\n\n const sendDLQMessage = sqs.send<ErrorMessage<SQSRecord>>({\n client: deps.sqsClient,\n configuration: {QueueUrl: deps.configuration.dlqUrl},\n })\n\n const handleErrorsFn = wrapWithLog(\n maybeLog,\n handleErrors<Input, Output>({\n notifyError: sendDLQMessage,\n }),\n 'handleErrors',\n )\n\n return wrapWithLog(\n maybeLog,\n processSQSEventAndHandleResults<Input, Output>({\n processSQSEvent: processSQSEventFn,\n handleExponentialBackoff: handleExponentialBackoffFn,\n handleErrors: handleErrorsFn,\n toSQSBatchResponse,\n }),\n 'processSQSEventAndHandleResults',\n )\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"results-processor.js","sourceRoot":"","sources":["../../src/results-processor.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACR,CAAA;AAmBV,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAEjC,EAAE,EAAE,CACD,KAAK,EAAiB,KAAY,EAAE,WAA6B,EAA0C,EAAE;IACzG,OAAO,WAAW;SACb,GAAG,CAAC,MAAM,CAAC,EAAE;QACV,MAAM,gBAAgB,GAAkC;YACpD,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,mBAAmB,CAAC,OAAO;YACnC,MAAM,EAAE,MAAgB;YACxB,KAAK,EAAE,SAAS;SACnB,CAAA;QAED,OAAO,gBAAgB,CAAA;IAC3B,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE;QACR,MAAM,QAAQ,GAAkC;YAC5C,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,mBAAmB,CAAC,IAAI;YAChC,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,SAAS;SACnB,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAC;SACD,UAAU,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,aAAa,GAAkC;gBACjD,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,mBAAmB,CAAC,OAAO;gBACnC,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,KAAK;aACf,CAAA;YAED,OAAO,aAAa,CAAA;QACxB,CAAC;QAED,MAAM,WAAW,GAAkC;YAC/C,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,mBAAmB,CAAC,KAAK;YACjC,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,SAAS;SACnB,CAAA;QACD,OAAO,WAAW,CAAA;IACtB,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;AAC3B,CAAC,CAAA"}
1
+ {"version":3,"file":"results-processor.js","sourceRoot":"","sources":["../../src/results-processor.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACR,CAAA;AAmBV,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAEjC,EAAE,EAAE,CACD,KAAK,EAAiB,KAAY,EAAE,WAA6B,EAA0C,EAAE;IACzG,OAAO,WAAW;SACb,GAAG,CAAC,MAAM,CAAC,EAAE;QACV,MAAM,gBAAgB,GAAkC;YACpD,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,mBAAmB,CAAC,OAAO;YACnC,MAAM,EAAE,MAAgB;YACxB,KAAK,EAAE,SAAS;SACnB,CAAA;QAED,OAAO,gBAAgB,CAAA;IAC3B,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE;QACR,MAAM,QAAQ,GAAkC;YAC5C,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,mBAAmB,CAAC,IAAI;YAChC,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,SAAS;SACnB,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAC;SACD,UAAU,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,aAAa,GAAkC;gBACjD,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,mBAAmB,CAAC,OAAO;gBACnC,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,KAAK;aACf,CAAA;YAED,OAAO,aAAa,CAAA;QACxB,CAAC;QAED,MAAM,WAAW,GAAkC;YAC/C,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,mBAAmB,CAAC,KAAK;YACjC,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,SAAS;SACnB,CAAA;QACD,OAAO,WAAW,CAAA;IACtB,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;AAC3B,CAAC,CAAA","sourcesContent":["import {Optional} from '@othree.io/optional'\n\nexport const ProcessResultAction = {\n success: 'success',\n failure: 'failure',\n none: 'none',\n retry: 'retry',\n} as const\n\nexport type ProcessResultAction = typeof ProcessResultAction[keyof typeof ProcessResultAction]\n\nexport type ProcessResult<Input, Output, Action extends ProcessResultAction> = Readonly<{\n request: Input\n action: Action\n result: Action extends 'success' ? Output : void\n error: Action extends 'failure' ? Error : void\n}>\n\nexport type ProcessResults<Input, Output> = ProcessResult<Input, Output, 'failure'>\n | ProcessResult<Input, Output, 'success'>\n | ProcessResult<Input, Output, 'none'>\n | ProcessResult<Input, Output, 'retry'>\n\n\nexport type GetProcessResults<Input, Output> = (input: Input, maybeResult: Optional<Output>) => Promise<ProcessResults<Input, Output>>\n\nexport const getProcessResults = (deps: {\n didItFail: (error: Error) => boolean\n}) =>\n async <Input, Output>(input: Input, maybeResult: Optional<Output>): Promise<ProcessResults<Input, Output>> => {\n return maybeResult\n .map(result => {\n const successfulResult: ProcessResults<Input, Output> = {\n request: input,\n action: ProcessResultAction.success,\n result: result as Output,\n error: undefined,\n }\n\n return successfulResult\n })\n .orMap(() => {\n const noResult: ProcessResults<Input, Output> = {\n request: input,\n action: ProcessResultAction.none,\n result: undefined,\n error: undefined,\n }\n return noResult\n })\n .catchAsync(async error => {\n if (deps.didItFail(error)) {\n const failureResult: ProcessResults<Input, Output> = {\n request: input,\n action: ProcessResultAction.failure,\n result: undefined,\n error: error,\n }\n\n return failureResult\n }\n\n const retryResult: ProcessResults<Input, Output> = {\n request: input,\n action: ProcessResultAction.retry,\n result: undefined,\n error: undefined,\n }\n return retryResult\n })\n .then(_ => _.get())\n }\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@othree.io/stethoscope",
3
- "version": "5.0.0",
3
+ "version": "5.0.1",
4
4
  "description": "Stethoscope",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/esm/index.js",