@altostra/core
Version:
Core library for shared types and logic
1 lines • 1.49 kB
JavaScript
;function getFileStoreTriggerUtilsBase(e){return{getOverlappingFilesFilters:()=>checkFilesFilterValidity(e.connection.filesFilter)}}function getFileStoreTriggerUtils(e){return getFileStoreTriggerUtilsBase(e)}function getFileStoreContainerTriggerUtils(e){return getFileStoreTriggerUtilsBase(e)}function checkFilesFilterValidity(e){var t,i;if(!e||!(null===(t=e.prefix)||void 0===t?void 0:t.length)&&!(null===(i=e.suffix)||void 0===i?void 0:i.length))return{filtersValid:!0,overlaps:{prefix:[],suffix:[]}};let r=!0;const l={},s={};if(e.prefix)for(const t of e.prefix){let e=!1;for(const i of Object.keys(l)){const r=(n=i,(o=t).startsWith(n)||n.startsWith(o));e||(e=r),r&&g(t,i,l)}e?r=!1:l[t]=[t]}var o,n;if(e.suffix)for(const t of e.suffix){let e=!1;for(const i of Object.keys(s)){const r=f(t,i);e||(e=r),r&&g(t,i,s)}e?r=!1:s[t]=[t]}return{filtersValid:r,overlaps:{prefix:Object.values(l).filter(c),suffix:Object.values(s).filter(c)}};function f(e,t){return e.endsWith(t)||t.endsWith(e)}function g(e,t,i){if(e.length>t.length)i[t].push(e);else{const r=i[t];r.push(e),delete i[t],i[e]=r}}function c(e){return e.length>1}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.checkFilesFilterValidity=exports.getFileStoreContainerTriggerUtils=exports.getFileStoreTriggerUtils=void 0,exports.getFileStoreTriggerUtils=getFileStoreTriggerUtils,exports.getFileStoreContainerTriggerUtils=getFileStoreContainerTriggerUtils,exports.checkFilesFilterValidity=checkFilesFilterValidity;