CoolFace
Apppublic

AK-21/Graphite-Industrial-Intelligence

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
splitLink-BMgxggng.cjs58 linesDownload Raw Back to dist
1const require_chunk = require('./chunk-DWy1uDak.cjs');2const __trpc_server_observable = require_chunk.__toESM(require("@trpc/server/observable"));3 4//#region src/links/internals/createChain.ts5/** @internal */6function createChain(opts) {7	return (0, __trpc_server_observable.observable)((observer) => {8		function execute(index = 0, op = opts.op) {9			const next = opts.links[index];10			if (!next) throw new Error("No more links to execute - did you forget to add an ending link?");11			const subscription = next({12				op,13				next(nextOp) {14					const nextObserver = execute(index + 1, nextOp);15					return nextObserver;16				}17			});18			return subscription;19		}20		const obs$ = execute();21		return obs$.subscribe(observer);22	});23}24 25//#endregion26//#region src/links/splitLink.ts27function asArray(value) {28	return Array.isArray(value) ? value : [value];29}30function splitLink(opts) {31	return (runtime) => {32		const yes = asArray(opts.true).map((link) => link(runtime));33		const no = asArray(opts.false).map((link) => link(runtime));34		return (props) => {35			return (0, __trpc_server_observable.observable)((observer) => {36				const links = opts.condition(props.op) ? yes : no;37				return createChain({38					op: props.op,39					links40				}).subscribe(observer);41			});42		};43	};44}45 46//#endregion47Object.defineProperty(exports, 'createChain', {48  enumerable: true,49  get: function () {50    return createChain;51  }52});53Object.defineProperty(exports, 'splitLink', {54  enumerable: true,55  get: function () {56    return splitLink;57  }58});