(() => { pipe( timelines, everyCommitTimestamps, A.sort(ordDate), A.head ); pipe( serviceEventFromMessage(msg), TE.chain( flow( publishServiceEvent(analytics), TE.mapLeft(nackFromError) ) ) )() .then(messageResponse(logger, msg)) .catch((err) => { logger.error( pipe( O.fromNullable(err.stack), O.getOrElse(constant(err.message)) ) ); process.exit(1); }); pipe( Changelog.timestampOfFirstCommit([[commit]]), O.toUndefined ); chain( flow( getUploadUrl, E.mapLeft(Errors.unknownError), TE.fromEither ) ); })();