angular-odata
Version:
Client side OData typescript library for Angular
22 lines • 3.92 kB
JavaScript
import { CALLABLE_BINDING_PARAMETER } from '../constants';
import { Objects } from './objects';
export const OData = {
// Merge callables parameters
mergeCallableParameters(callables) {
const areEqual = (a, b) => a.name === b.name &&
Objects.equal((a.parameters || {})[CALLABLE_BINDING_PARAMETER] || {}, (b.parameters || {})[CALLABLE_BINDING_PARAMETER] || {});
return callables.reduce((acc, config) => {
if (acc.every((c) => !areEqual(c, config))) {
config = callables
.filter((c) => areEqual(c, config))
.reduce((acc, c) => {
acc.parameters = Object.assign(acc.parameters || {}, c.parameters || {});
return acc;
}, config);
return [...acc, config];
}
return acc;
}, []);
},
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2RhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvdXRpbHMvb2RhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTFELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ25CLDZCQUE2QjtJQUM3Qix1QkFBdUIsQ0FBQyxTQUEyQjtRQUNqRCxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQWlCLEVBQUUsQ0FBaUIsRUFBRSxFQUFFLENBQ3hELENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUk7WUFDakIsT0FBTyxDQUFDLEtBQUssQ0FDWCxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsMEJBQTBCLENBQUMsSUFBSSxFQUFFLEVBQ3RELENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsQ0FDdkQsQ0FBQztRQUNKLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQXFCLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDeEQsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxNQUFNLEdBQUcsU0FBUztxQkFDZixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7cUJBQ2xDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDakIsR0FBRyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUM1QixHQUFHLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFDcEIsQ0FBQyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQ25CLENBQUM7b0JBQ0YsT0FBTyxHQUFHLENBQUM7Z0JBQ2IsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNiLE9BQU8sQ0FBQyxHQUFHLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMxQixDQUFDO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBc0IsQ0FBQyxDQUFDO0lBQzdCLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ0FMTEFCTEVfQklORElOR19QQVJBTUVURVIgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ2FsbGFibGVDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBPYmplY3RzIH0gZnJvbSAnLi9vYmplY3RzJztcblxuZXhwb3J0IGNvbnN0IE9EYXRhID0ge1xuICAvLyBNZXJnZSBjYWxsYWJsZXMgcGFyYW1ldGVyc1xuICBtZXJnZUNhbGxhYmxlUGFyYW1ldGVycyhjYWxsYWJsZXM6IENhbGxhYmxlQ29uZmlnW10pOiBDYWxsYWJsZUNvbmZpZ1tdIHtcbiAgICBjb25zdCBhcmVFcXVhbCA9IChhOiBDYWxsYWJsZUNvbmZpZywgYjogQ2FsbGFibGVDb25maWcpID0+XG4gICAgICBhLm5hbWUgPT09IGIubmFtZSAmJlxuICAgICAgT2JqZWN0cy5lcXVhbChcbiAgICAgICAgKGEucGFyYW1ldGVycyB8fCB7fSlbQ0FMTEFCTEVfQklORElOR19QQVJBTUVURVJdIHx8IHt9LFxuICAgICAgICAoYi5wYXJhbWV0ZXJzIHx8IHt9KVtDQUxMQUJMRV9CSU5ESU5HX1BBUkFNRVRFUl0gfHwge30sXG4gICAgICApO1xuICAgIHJldHVybiBjYWxsYWJsZXMucmVkdWNlKChhY2M6IENhbGxhYmxlQ29uZmlnW10sIGNvbmZpZykgPT4ge1xuICAgICAgaWYgKGFjYy5ldmVyeSgoYykgPT4gIWFyZUVxdWFsKGMsIGNvbmZpZykpKSB7XG4gICAgICAgIGNvbmZpZyA9IGNhbGxhYmxlc1xuICAgICAgICAgIC5maWx0ZXIoKGMpID0+IGFyZUVxdWFsKGMsIGNvbmZpZykpXG4gICAgICAgICAgLnJlZHVjZSgoYWNjLCBjKSA9PiB7XG4gICAgICAgICAgICBhY2MucGFyYW1ldGVycyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgIGFjYy5wYXJhbWV0ZXJzIHx8IHt9LFxuICAgICAgICAgICAgICBjLnBhcmFtZXRlcnMgfHwge30sXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICB9LCBjb25maWcpO1xuICAgICAgICByZXR1cm4gWy4uLmFjYywgY29uZmlnXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10gYXMgQ2FsbGFibGVDb25maWdbXSk7XG4gIH0sXG59O1xuIl19