// ╔═══════╗╔═══════╗╔═══════╗╔═══════╗╔═══════╗╔═══════╗╔═══════╗ // ╚══╗ ╔══╝║ ╔╗ ╔╗ ║║ ╔═══╗ ║║ ╔═══╗ ║║ ╔═══╗ ║╚══╗ ╔══╝║ ╔═════╝ // ║ ║ ║ ║║ ║║ ║║ ╚═══╝ ║║ ║ ║ ║║ ╚═══╝ ║ ║ ║ ║ ╚═════╗ // ║ ║ ║ ║║ ║║ ║║ ╔═════╝║ ║ ║ ║║ ╔═╗ ╔═╝ ║ ║ ╚═════╗ ║ // ╔══╝ ╚══╗║ ║║ ║║ ║║ ║ ║ ╚═══╝ ║║ ║ ║ ╚═╗ ║ ║ ╔═════╝ ║ // ╚═══════╝╚═╝╚═╝╚═╝╚═╝ ╚═══════╝╚═╝ ╚═══╝ ╚═╝ ╚═══════╝ import * as connectionClasses from '../../classes/connection-classes.js'; import * as connectionErrors from '../../errors/connection-errors.js'; import * as utilityEngine from '@xyz.warpmatter.com/utility-engine'; // ╔═══════╗╔════╗╔═╗╔═══════╗╔═══════╗╔═══════╗╔════╗╔═╗╔═══════╗╔═══════╗ // ╚══╗ ╔══╝║ ╔╗ ║║ ║║ ╔═════╝╚══╗ ╔══╝║ ╔═══╗ ║║ ╔╗ ║║ ║║ ╔═════╝║ ╔═════╝ // ║ ║ ║ ║║ ║║ ║║ ╚═════╗ ║ ║ ║ ╚═══╝ ║║ ║║ ║║ ║║ ║ ║ ╚═════╗ // ║ ║ ║ ║║ ║║ ║╚═════╗ ║ ║ ║ ║ ╔═══╗ ║║ ║║ ║║ ║║ ║ ║ ╔═════╝ // ╔══╝ ╚══╗║ ║║ ╚╝ ║╔═════╝ ║ ║ ║ ║ ║ ║ ║║ ║║ ╚╝ ║║ ╚═════╗║ ╚═════╗ // ╚═══════╝╚═╝╚════╝╚═══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝╚════╝╚═══════╝╚═══════╝ export function validateConnections( values: any[], minimumCount?: number, maximumCount?: number, ) { if (!areValidConnections(values, minimumCount, maximumCount)) { connectionErrors.throwInvalidAbsorbLmsConnectionInstanceError(); } } export function validateConnection( value: any, ) { if (!isValidConnection(value)) { connectionErrors.throwInvalidAbsorbLmsConnectionInstanceError(); } } export function areValidConnections( values: any[], minimumCount?: number, maximumCount?: number, ): values is connectionClasses.Connection[] { return utilityEngine.isArray(values, minimumCount, maximumCount) && values.every(isValidConnection); } export function isValidConnection( value: any, ): value is connectionClasses.Connection { return value instanceof connectionClasses.Connection; }