UNPKG

@lotto24-angular/imports-orchestrator

Version:

Orchestrate dynamically imported components in Angular applications

14 lines 2.19 kB
export function findFn(config, key, trail = []) { const stringOrFn = config[key]; if (trail.includes(key)) { throw new Error(`circular reference found: ${[...trail, key].join(' => ')}`); } if (typeof stringOrFn === 'string') { return findFn(config, stringOrFn, [...trail, key]); } if (typeof stringOrFn === 'function') { return stringOrFn; } throw new Error(`Missing entry for key="${key}"`); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1mbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvaW1wb3J0cy1vcmNoZXN0cmF0b3Ivc3JjL2xpYi9ob3N0LWRpcmVjdGl2ZS91dGlsL2ZpbmQtZm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLE1BQU0sQ0FDcEIsTUFBdUMsRUFDdkMsR0FBVyxFQUNYLFFBQWtCLEVBQUU7SUFFcEIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRS9CLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkJBQTZCLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQzVELENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNuQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxPQUFPLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNyQyxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGZpbmRGbjxUPihcbiAgY29uZmlnOiB7IFtpbmRleDogc3RyaW5nXTogc3RyaW5nIHwgVCB9LFxuICBrZXk6IHN0cmluZyxcbiAgdHJhaWw6IHN0cmluZ1tdID0gW11cbik6IFQge1xuICBjb25zdCBzdHJpbmdPckZuID0gY29uZmlnW2tleV07XG5cbiAgaWYgKHRyYWlsLmluY2x1ZGVzKGtleSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgY2lyY3VsYXIgcmVmZXJlbmNlIGZvdW5kOiAke1suLi50cmFpbCwga2V5XS5qb2luKCcgPT4gJyl9YFxuICAgICk7XG4gIH1cblxuICBpZiAodHlwZW9mIHN0cmluZ09yRm4gPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZpbmRGbihjb25maWcsIHN0cmluZ09yRm4sIFsuLi50cmFpbCwga2V5XSk7XG4gIH1cblxuICBpZiAodHlwZW9mIHN0cmluZ09yRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gc3RyaW5nT3JGbjtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBlbnRyeSBmb3Iga2V5PVwiJHtrZXl9XCJgKTtcbn1cbiJdfQ==