UNPKG

@orchestrator/ngx-testing

Version:
44 lines 5.66 kB
import { TestBed } from '@angular/core/testing'; /** * @internal */ export function getDirectiveIO(dirType) { const propMeta = dirType['__prop__metadata__']; const inputsMeta = filterPropMeta(propMeta, 'Input'); const outputsMeta = filterPropMeta(propMeta, 'Output'); return { inputs: propMetaToTemplateBindings(inputsMeta), outputs: propMetaToTemplateBindings(outputsMeta), }; } function propMetaToTemplateBindings(meta) { return Object.keys(meta).map(propName => ({ propName, templateName: meta[propName].bindingPropertyName || propName, })); } function filterPropMeta(obj, type) { return Object.keys(obj).reduce((acc, k) => { const meta = obj[k].find(m => m.ngMetadataName === type); return meta ? Object.assign(Object.assign({}, acc), { [k]: meta }) : acc; }, {}); } /** * @internal */ export function get(type) { return TestBed.get(type); } /** * @internal */ export function mergeArrays(...arrays) { return arrays.reduce((acc, arr) => [...acc, ...toArray(arr)], []); } /** * @internal */ export function toArray(arr) { return arr ? arr : []; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BvcmNoZXN0cmF0b3Ivbmd4LXRlc3RpbmcvIiwic291cmNlcyI6WyJsaWIvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUF5QmhEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBSSxPQUFnQjtJQUNoRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQWlCLENBQUM7SUFFL0QsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRXZELE9BQU87UUFDTCxNQUFNLEVBQUUsMEJBQTBCLENBQUMsVUFBVSxDQUFDO1FBQzlDLE9BQU8sRUFBRSwwQkFBMEIsQ0FBQyxXQUFXLENBQUM7S0FDakQsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLDBCQUEwQixDQUFDLElBQWdCO0lBQ2xELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQzFCLFFBQVEsQ0FBQyxFQUFFLENBQ1QsQ0FBQztRQUNDLFFBQVE7UUFDUixZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLG1CQUFtQixJQUFJLFFBQVE7S0FDekMsQ0FBQSxDQUN4QixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsY0FBYyxDQUNyQixHQUFpQixFQUNqQixJQUF3QjtJQUV4QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLENBQUMsaUNBQU0sR0FBRyxLQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFHLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDNUMsQ0FBQyxFQUFFLEVBQWdCLENBQUMsQ0FBQztBQUN2QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsR0FBRyxDQUFJLElBQWlDO0lBQ3RELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFJLEdBQUcsTUFBYTtJQUM3QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBSSxHQUFTO0lBQ2xDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlc3RCZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBEaXJlY3RpdmVJTywgVGVtcGxhdGVCaW5kaW5nLCBUZW1wbGF0ZUJpbmRpbmdzIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBEZWZpbmVkIGJ5IEFuZ3VsYXJcbiAqL1xuaW50ZXJmYWNlIFByb3BEZWNvcmF0b3JGYWN0b3J5IHtcbiAgYmluZGluZ1Byb3BlcnR5TmFtZT86IHN0cmluZztcbiAgbmdNZXRhZGF0YU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIERlZmluZWQgYnkgQW5ndWxhclxuICovXG5pbnRlcmZhY2UgUHJvcE1ldGFkYXRhIHtcbiAgW3Byb3A6IHN0cmluZ106IFByb3BEZWNvcmF0b3JGYWN0b3J5W107XG59XG5cbmludGVyZmFjZSBJT01ldGFkYXRhIHtcbiAgW3Byb3A6IHN0cmluZ106IFByb3BEZWNvcmF0b3JGYWN0b3J5O1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlyZWN0aXZlSU88VD4oZGlyVHlwZTogVHlwZTxUPik6IERpcmVjdGl2ZUlPIHtcbiAgY29uc3QgcHJvcE1ldGEgPSBkaXJUeXBlWydfX3Byb3BfX21ldGFkYXRhX18nXSBhcyBQcm9wTWV0YWRhdGE7XG5cbiAgY29uc3QgaW5wdXRzTWV0YSA9IGZpbHRlclByb3BNZXRhKHByb3BNZXRhLCAnSW5wdXQnKTtcbiAgY29uc3Qgb3V0cHV0c01ldGEgPSBmaWx0ZXJQcm9wTWV0YShwcm9wTWV0YSwgJ091dHB1dCcpO1xuXG4gIHJldHVybiB7XG4gICAgaW5wdXRzOiBwcm9wTWV0YVRvVGVtcGxhdGVCaW5kaW5ncyhpbnB1dHNNZXRhKSxcbiAgICBvdXRwdXRzOiBwcm9wTWV0YVRvVGVtcGxhdGVCaW5kaW5ncyhvdXRwdXRzTWV0YSksXG4gIH07XG59XG5cbmZ1bmN0aW9uIHByb3BNZXRhVG9UZW1wbGF0ZUJpbmRpbmdzKG1ldGE6IElPTWV0YWRhdGEpOiBUZW1wbGF0ZUJpbmRpbmdzIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG1ldGEpLm1hcChcbiAgICBwcm9wTmFtZSA9PlxuICAgICAgKHtcbiAgICAgICAgcHJvcE5hbWUsXG4gICAgICAgIHRlbXBsYXRlTmFtZTogbWV0YVtwcm9wTmFtZV0uYmluZGluZ1Byb3BlcnR5TmFtZSB8fCBwcm9wTmFtZSxcbiAgICAgIH0gYXMgVGVtcGxhdGVCaW5kaW5nKSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gZmlsdGVyUHJvcE1ldGEoXG4gIG9iajogUHJvcE1ldGFkYXRhLFxuICB0eXBlOiAnSW5wdXQnIHwgJ091dHB1dCcsXG4pOiBJT01ldGFkYXRhIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikucmVkdWNlKChhY2MsIGspID0+IHtcbiAgICBjb25zdCBtZXRhID0gb2JqW2tdLmZpbmQobSA9PiBtLm5nTWV0YWRhdGFOYW1lID09PSB0eXBlKTtcbiAgICByZXR1cm4gbWV0YSA/IHsgLi4uYWNjLCBba106IG1ldGEgfSA6IGFjYztcbiAgfSwge30gYXMgSU9NZXRhZGF0YSk7XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXQ8VD4odHlwZTogVHlwZTxUPiB8IEluamVjdGlvblRva2VuPFQ+KTogVCB7XG4gIHJldHVybiBUZXN0QmVkLmdldCh0eXBlKTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlQXJyYXlzPFQ+KC4uLmFycmF5czogVFtdW10pOiBUW10ge1xuICByZXR1cm4gYXJyYXlzLnJlZHVjZSgoYWNjLCBhcnIpID0+IFsuLi5hY2MsIC4uLnRvQXJyYXkoYXJyKV0sIFtdKTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQXJyYXk8VD4oYXJyPzogVFtdKTogVFtdIHtcbiAgcmV0dXJuIGFyciA/IGFyciA6IFtdO1xufVxuIl19