UNPKG

@yaagoub/decorators

Version:

Angular decorators

34 lines 5.97 kB
import { environment } from '../environments/environment'; import { getMetadata } from './metadata'; function getFromInstanceByArgsHeaderMetadata(instance, methodName, args) { const headerMetadata = getMetadata(environment.METADATA_KEYS.METHOD.PARAMS.HEADER.PARAM, instance, methodName) || []; if (!headerMetadata || headerMetadata.length === 0) { return undefined; } const headers = {}; headerMetadata.forEach(header => { if (header.key && header.index !== undefined) { headers[header.key] = args[header.index]; } }); return headers; } function getFromTargetDefaultHeadersMetadata(target) { return getMetadata(environment.METADATA_KEYS.CLASS.DEFAULT.HEADERS, target); } function getFromInstanceHeaderMetadata(instance, methodName) { return getMetadata(environment.METADATA_KEYS.METHOD.PARAMS.HEADER.METHOD, instance, methodName); } export function getHeadersMetadata(instance, target, methodName, args, headers) { const instanceHeaders = getFromInstanceByArgsHeaderMetadata(instance, methodName, args) || {}; const targetHeaders = getFromTargetDefaultHeadersMetadata(target) || {}; const methodHeaders = getFromInstanceHeaderMetadata(instance, methodName) || {}; const methodArgsHeaders = headers || {}; return { ...targetHeaders, ...methodHeaders, ...methodArgsHeaders, ...instanceHeaders }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWZyb20tbWV0YWRhdGEtaGVhZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVjb3JhdG9ycy9zcmMvaHR0cC9tZXRhZGF0YS9nZXQtZnJvbS1tZXRhZGF0YS1oZWFkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBUXpDLFNBQVMsbUNBQW1DLENBQUMsUUFBYSxFQUFFLFVBQWtCLEVBQUUsSUFBVztJQUN6RixNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBcUIsSUFBSSxFQUFFLENBQUM7SUFDekksSUFBSSxDQUFDLGNBQWMsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ25ELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBMkIsRUFBRSxDQUFDO0lBQzNDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDOUIsSUFBSSxNQUFNLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0MsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLG1DQUFtQyxDQUFDLE1BQVc7SUFDdEQsT0FBTyxXQUFXLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQXVDLENBQUM7QUFDcEgsQ0FBQztBQUVELFNBQVMsNkJBQTZCLENBQUMsUUFBYSxFQUFFLFVBQWtCO0lBQ3RFLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQXVDLENBQUM7QUFDeEksQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxRQUFhLEVBQUUsTUFBVyxFQUFFLFVBQWtCLEVBQUUsSUFBVyxFQUFFLE9BQWdDO0lBQzlILE1BQU0sZUFBZSxHQUFHLG1DQUFtQyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlGLE1BQU0sYUFBYSxHQUFHLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4RSxNQUFNLGFBQWEsR0FBRyw2QkFBNkIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hGLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUV4QyxPQUFPO1FBQ0wsR0FBRyxhQUFhO1FBQ2hCLEdBQUcsYUFBYTtRQUNoQixHQUFHLGlCQUFpQjtRQUNwQixHQUFHLGVBQWU7S0FDbkIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBnZXRNZXRhZGF0YSB9IGZyb20gJy4vbWV0YWRhdGEnO1xuXG5leHBvcnQgdHlwZSBIZWFkZXJNZXRhZGF0YSA9IHtcbiAgdHlwZTogJ2hlYWRlcic7XG4gIGtleTogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xufVxuXG5mdW5jdGlvbiBnZXRGcm9tSW5zdGFuY2VCeUFyZ3NIZWFkZXJNZXRhZGF0YShpbnN0YW5jZTogYW55LCBtZXRob2ROYW1lOiBzdHJpbmcsIGFyZ3M6IGFueVtdKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGhlYWRlck1ldGFkYXRhID0gZ2V0TWV0YWRhdGEoZW52aXJvbm1lbnQuTUVUQURBVEFfS0VZUy5NRVRIT0QuUEFSQU1TLkhFQURFUi5QQVJBTSwgaW5zdGFuY2UsIG1ldGhvZE5hbWUpIGFzIEhlYWRlck1ldGFkYXRhW10gfHwgW107XG4gIGlmICghaGVhZGVyTWV0YWRhdGEgfHwgaGVhZGVyTWV0YWRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGhlYWRlck1ldGFkYXRhLmZvckVhY2goaGVhZGVyID0+IHtcbiAgICBpZiAoaGVhZGVyLmtleSAmJiBoZWFkZXIuaW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgaGVhZGVyc1toZWFkZXIua2V5XSA9IGFyZ3NbaGVhZGVyLmluZGV4XTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBoZWFkZXJzO1xufVxuXG5mdW5jdGlvbiBnZXRGcm9tVGFyZ2V0RGVmYXVsdEhlYWRlcnNNZXRhZGF0YSh0YXJnZXQ6IGFueSk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQge1xuICByZXR1cm4gZ2V0TWV0YWRhdGEoZW52aXJvbm1lbnQuTUVUQURBVEFfS0VZUy5DTEFTUy5ERUZBVUxULkhFQURFUlMsIHRhcmdldCkgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ2V0RnJvbUluc3RhbmNlSGVhZGVyTWV0YWRhdGEoaW5zdGFuY2U6IGFueSwgbWV0aG9kTmFtZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRNZXRhZGF0YShlbnZpcm9ubWVudC5NRVRBREFUQV9LRVlTLk1FVEhPRC5QQVJBTVMuSEVBREVSLk1FVEhPRCwgaW5zdGFuY2UsIG1ldGhvZE5hbWUpIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWFkZXJzTWV0YWRhdGEoaW5zdGFuY2U6IGFueSwgdGFyZ2V0OiBhbnksIG1ldGhvZE5hbWU6IHN0cmluZywgYXJnczogYW55W10sIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IGluc3RhbmNlSGVhZGVycyA9IGdldEZyb21JbnN0YW5jZUJ5QXJnc0hlYWRlck1ldGFkYXRhKGluc3RhbmNlLCBtZXRob2ROYW1lLCBhcmdzKSB8fCB7fTtcbiAgY29uc3QgdGFyZ2V0SGVhZGVycyA9IGdldEZyb21UYXJnZXREZWZhdWx0SGVhZGVyc01ldGFkYXRhKHRhcmdldCkgfHwge307XG4gIGNvbnN0IG1ldGhvZEhlYWRlcnMgPSBnZXRGcm9tSW5zdGFuY2VIZWFkZXJNZXRhZGF0YShpbnN0YW5jZSwgbWV0aG9kTmFtZSkgfHwge307XG4gIGNvbnN0IG1ldGhvZEFyZ3NIZWFkZXJzID0gaGVhZGVycyB8fCB7fTtcblxuICByZXR1cm4ge1xuICAgIC4uLnRhcmdldEhlYWRlcnMsXG4gICAgLi4ubWV0aG9kSGVhZGVycyxcbiAgICAuLi5tZXRob2RBcmdzSGVhZGVycyxcbiAgICAuLi5pbnN0YW5jZUhlYWRlcnNcbiAgfTtcbn1cblxuXG4iXX0=