UNPKG

glimmer-analyzer

Version:

Statically analyzes Handlebars templates and components for dependency trees and other information.

54 lines 4.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const project_1 = require("./project"); exports.Project = project_1.default; const handlebars_analyzer_1 = require("./handlebars-analyzer"); class Analyzer { constructor(projectDir) { this.project = new project_1.default(projectDir); } dependenciesForTemplate(componentName) { let dependencies = handlebars_analyzer_1.discoverTemplateDependencies(componentName, this.project); return transformSetsToArrays(dependencies); } recursiveDependenciesForTemplate(componentName) { let dependencies = handlebars_analyzer_1.discoverRecursiveTemplateDependencies(componentName, this.project); return transformSetsToArrays(dependencies); } resolutionMapForEntryPoint(templateName, map) { let dependencies = handlebars_analyzer_1.discoverRecursiveTemplateDependencies(templateName, this.project); let components = new Set([dependencies.path, ...dependencies.components]); let helpers = dependencies.helpers; return filterResolutionMap(map || this.project.map, specifier => { let [type, path] = specifier.split(':'); switch (type) { case 'component': case 'template': return components.has(path); case 'helper': return helpers.has(path); } return false; }); } } function filterResolutionMap(map, filter) { let filteredMap = {}; for (let specifier of Object.keys(map)) { if (filter(specifier)) { filteredMap[specifier] = map[specifier]; } } return filteredMap; } function transformSetsToArrays(dependencies) { let { path, hasComponentHelper, components, helpers } = dependencies; return { path, hasComponentHelper, components: Array.from(components), helpers: Array.from(helpers) }; } exports.default = Analyzer; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1Q0FBbUQ7QUE2RTFDLGtCQTdFRixpQkFBTyxDQTZFRTtBQTVFaEIsK0RBSStCO0FBRS9CO0lBR0UsWUFBWSxVQUFrQjtRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsdUJBQXVCLENBQUMsYUFBcUI7UUFDM0MsSUFBSSxZQUFZLEdBQUcsa0RBQTRCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3RSxNQUFNLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGdDQUFnQyxDQUFDLGFBQXFCO1FBQ3BELElBQUksWUFBWSxHQUFHLDJEQUFxQyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEYsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxZQUFvQixFQUFFLEdBQW1CO1FBQ2xFLElBQUksWUFBWSxHQUFHLDJEQUFxQyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckYsSUFBSSxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUVuQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFNBQVM7WUFDM0QsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXhDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2IsS0FBSyxXQUFXLENBQUM7Z0JBQ2pCLEtBQUssVUFBVTtvQkFDYixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUIsS0FBSyxRQUFRO29CQUNYLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLENBQUM7WUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFTRCw2QkFBNkIsR0FBa0IsRUFBRSxNQUFzQztJQUNyRixJQUFJLFdBQVcsR0FBa0IsRUFBRSxDQUFDO0lBRXBDLEdBQUcsQ0FBQyxDQUFDLElBQUksU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQUVELCtCQUErQixZQUEwQztJQUN2RSxJQUFJLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsR0FBRyxZQUFZLENBQUM7SUFFckUsTUFBTSxDQUFDO1FBQ0wsSUFBSTtRQUNKLGtCQUFrQjtRQUNsQixVQUFVLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbEMsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0tBQzdCLENBQUE7QUFDSCxDQUFDO0FBRUQsa0JBQWUsUUFBUSxDQUFDIn0=