@altostra/core
Version:
Core library for shared types and logic
1 lines • 1.24 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.printSelection=exports.appendUrlQuery=exports.selectionValue=exports.selectionQueryParam=exports.queryByParamName=exports.isItemSelection=exports.isItemByName=exports.isItemById=void 0;const EntityId_1=require("../../common/CustomTypes/EntityId"),Name_1=require("../../common/Models/Name"),type_validations_1=require("@altostra/type-validations");function selectionQueryParam(e){return{[exports.queryByParamName]:"id"in e?"id":"name"}}function selectionValue(e){const t=e;return"id"in t?t.id:t.name}function appendUrlQuery(e,t){if(!t)return e;const r=new URL(e);for(const[e,i]of Object.entries(t))r.searchParams.append(e,i);return r.toString()}function printSelection(e){return"id"in e?"Id: "+e.id:"Name: "+e.name}exports.isItemById=(0,type_validations_1.objectOf)({id:EntityId_1.isEntityId}),exports.isItemByName=(0,type_validations_1.objectOf)({name:Name_1.isName}),exports.isItemSelection=(0,type_validations_1.anyOf)(exports.isItemById,exports.isItemByName),exports.queryByParamName="query-by",exports.selectionQueryParam=selectionQueryParam,exports.selectionValue=selectionValue,exports.appendUrlQuery=appendUrlQuery,exports.printSelection=printSelection;