1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.trace = exports.Trace = exports.Category = void 0;
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 | var hof_1 = require("../common/hof");
|
39 | var predicates_1 = require("../common/predicates");
|
40 | var strings_1 = require("./strings");
|
41 | var safeConsole_1 = require("./safeConsole");
|
42 | function uiViewString(uiview) {
|
43 | if (!uiview)
|
44 | return 'ui-view (defunct)';
|
45 | var state = uiview.creationContext ? uiview.creationContext.name || '(root)' : '(none)';
|
46 | return "[ui-view#" + uiview.id + " " + uiview.$type + ":" + uiview.fqn + " (" + uiview.name + "@" + state + ")]";
|
47 | }
|
48 | var viewConfigString = function (viewConfig) {
|
49 | var view = viewConfig.viewDecl;
|
50 | var state = view.$context.name || '(root)';
|
51 | return "[View#" + viewConfig.$id + " from '" + state + "' state]: target ui-view: '" + view.$uiViewName + "@" + view.$uiViewContextAnchor + "'";
|
52 | };
|
53 | function normalizedCat(input) {
|
54 | return predicates_1.isNumber(input) ? Category[input] : Category[Category[input]];
|
55 | }
|
56 |
|
57 |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 |
|
63 |
|
64 |
|
65 |
|
66 |
|
67 |
|
68 |
|
69 | var Category;
|
70 | (function (Category) {
|
71 | Category[Category["RESOLVE"] = 0] = "RESOLVE";
|
72 | Category[Category["TRANSITION"] = 1] = "TRANSITION";
|
73 | Category[Category["HOOK"] = 2] = "HOOK";
|
74 | Category[Category["UIVIEW"] = 3] = "UIVIEW";
|
75 | Category[Category["VIEWCONFIG"] = 4] = "VIEWCONFIG";
|
76 | })(Category || (Category = {}));
|
77 | exports.Category = Category;
|
78 | var _tid = hof_1.parse('$id');
|
79 | var _rid = hof_1.parse('router.$id');
|
80 | var transLbl = function (trans) { return "Transition #" + _tid(trans) + "-" + _rid(trans); };
|
81 |
|
82 |
|
83 |
|
84 | var Trace = (function () {
|
85 |
|
86 | function Trace() {
|
87 |
|
88 | this._enabled = {};
|
89 | this.approximateDigests = 0;
|
90 | }
|
91 |
|
92 | Trace.prototype._set = function (enabled, categories) {
|
93 | var _this = this;
|
94 | if (!categories.length) {
|
95 | categories = Object.keys(Category)
|
96 | .map(function (k) { return parseInt(k, 10); })
|
97 | .filter(function (k) { return !isNaN(k); })
|
98 | .map(function (key) { return Category[key]; });
|
99 | }
|
100 | categories.map(normalizedCat).forEach(function (category) { return (_this._enabled[category] = enabled); });
|
101 | };
|
102 | Trace.prototype.enable = function () {
|
103 | var categories = [];
|
104 | for (var _i = 0; _i < arguments.length; _i++) {
|
105 | categories[_i] = arguments[_i];
|
106 | }
|
107 | this._set(true, categories);
|
108 | };
|
109 | Trace.prototype.disable = function () {
|
110 | var categories = [];
|
111 | for (var _i = 0; _i < arguments.length; _i++) {
|
112 | categories[_i] = arguments[_i];
|
113 | }
|
114 | this._set(false, categories);
|
115 | };
|
116 | |
117 |
|
118 |
|
119 |
|
120 |
|
121 |
|
122 |
|
123 |
|
124 |
|
125 | Trace.prototype.enabled = function (category) {
|
126 | return !!this._enabled[normalizedCat(category)];
|
127 | };
|
128 |
|
129 | Trace.prototype.traceTransitionStart = function (trans) {
|
130 | if (!this.enabled(Category.TRANSITION))
|
131 | return;
|
132 | safeConsole_1.safeConsole.log(transLbl(trans) + ": Started -> " + strings_1.stringify(trans));
|
133 | };
|
134 |
|
135 | Trace.prototype.traceTransitionIgnored = function (trans) {
|
136 | if (!this.enabled(Category.TRANSITION))
|
137 | return;
|
138 | safeConsole_1.safeConsole.log(transLbl(trans) + ": Ignored <> " + strings_1.stringify(trans));
|
139 | };
|
140 |
|
141 | Trace.prototype.traceHookInvocation = function (step, trans, options) {
|
142 | if (!this.enabled(Category.HOOK))
|
143 | return;
|
144 | var event = hof_1.parse('traceData.hookType')(options) || 'internal', context = hof_1.parse('traceData.context.state.name')(options) || hof_1.parse('traceData.context')(options) || 'unknown', name = strings_1.functionToString(step.registeredHook.callback);
|
145 | safeConsole_1.safeConsole.log(transLbl(trans) + ": Hook -> " + event + " context: " + context + ", " + strings_1.maxLength(200, name));
|
146 | };
|
147 |
|
148 | Trace.prototype.traceHookResult = function (hookResult, trans, transitionOptions) {
|
149 | if (!this.enabled(Category.HOOK))
|
150 | return;
|
151 | safeConsole_1.safeConsole.log(transLbl(trans) + ": <- Hook returned: " + strings_1.maxLength(200, strings_1.stringify(hookResult)));
|
152 | };
|
153 |
|
154 | Trace.prototype.traceResolvePath = function (path, when, trans) {
|
155 | if (!this.enabled(Category.RESOLVE))
|
156 | return;
|
157 | safeConsole_1.safeConsole.log(transLbl(trans) + ": Resolving " + path + " (" + when + ")");
|
158 | };
|
159 |
|
160 | Trace.prototype.traceResolvableResolved = function (resolvable, trans) {
|
161 | if (!this.enabled(Category.RESOLVE))
|
162 | return;
|
163 | safeConsole_1.safeConsole.log(transLbl(trans) + ": <- Resolved " + resolvable + " to: " + strings_1.maxLength(200, strings_1.stringify(resolvable.data)));
|
164 | };
|
165 |
|
166 | Trace.prototype.traceError = function (reason, trans) {
|
167 | if (!this.enabled(Category.TRANSITION))
|
168 | return;
|
169 | safeConsole_1.safeConsole.log(transLbl(trans) + ": <- Rejected " + strings_1.stringify(trans) + ", reason: " + reason);
|
170 | };
|
171 |
|
172 | Trace.prototype.traceSuccess = function (finalState, trans) {
|
173 | if (!this.enabled(Category.TRANSITION))
|
174 | return;
|
175 | safeConsole_1.safeConsole.log(transLbl(trans) + ": <- Success " + strings_1.stringify(trans) + ", final state: " + finalState.name);
|
176 | };
|
177 |
|
178 | Trace.prototype.traceUIViewEvent = function (event, viewData, extra) {
|
179 | if (extra === void 0) { extra = ''; }
|
180 | if (!this.enabled(Category.UIVIEW))
|
181 | return;
|
182 | safeConsole_1.safeConsole.log("ui-view: " + strings_1.padString(30, event) + " " + uiViewString(viewData) + extra);
|
183 | };
|
184 |
|
185 | Trace.prototype.traceUIViewConfigUpdated = function (viewData, context) {
|
186 | if (!this.enabled(Category.UIVIEW))
|
187 | return;
|
188 | this.traceUIViewEvent('Updating', viewData, " with ViewConfig from context='" + context + "'");
|
189 | };
|
190 |
|
191 | Trace.prototype.traceUIViewFill = function (viewData, html) {
|
192 | if (!this.enabled(Category.UIVIEW))
|
193 | return;
|
194 | this.traceUIViewEvent('Fill', viewData, " with: " + strings_1.maxLength(200, html));
|
195 | };
|
196 |
|
197 | Trace.prototype.traceViewSync = function (pairs) {
|
198 | if (!this.enabled(Category.VIEWCONFIG))
|
199 | return;
|
200 | var uivheader = 'uiview component fqn';
|
201 | var cfgheader = 'view config state (view name)';
|
202 | var mapping = pairs
|
203 | .map(function (_a) {
|
204 | var _b;
|
205 | var uiView = _a.uiView, viewConfig = _a.viewConfig;
|
206 | var uiv = uiView && uiView.fqn;
|
207 | var cfg = viewConfig && viewConfig.viewDecl.$context.name + ": (" + viewConfig.viewDecl.$name + ")";
|
208 | return _b = {}, _b[uivheader] = uiv, _b[cfgheader] = cfg, _b;
|
209 | })
|
210 | .sort(function (a, b) { return (a[uivheader] || '').localeCompare(b[uivheader] || ''); });
|
211 | safeConsole_1.safeConsole.table(mapping);
|
212 | };
|
213 |
|
214 | Trace.prototype.traceViewServiceEvent = function (event, viewConfig) {
|
215 | if (!this.enabled(Category.VIEWCONFIG))
|
216 | return;
|
217 | safeConsole_1.safeConsole.log("VIEWCONFIG: " + event + " " + viewConfigString(viewConfig));
|
218 | };
|
219 |
|
220 | Trace.prototype.traceViewServiceUIViewEvent = function (event, viewData) {
|
221 | if (!this.enabled(Category.VIEWCONFIG))
|
222 | return;
|
223 | safeConsole_1.safeConsole.log("VIEWCONFIG: " + event + " " + uiViewString(viewData));
|
224 | };
|
225 | return Trace;
|
226 | }());
|
227 | exports.Trace = Trace;
|
228 |
|
229 |
|
230 |
|
231 |
|
232 |
|
233 |
|
234 |
|
235 |
|
236 |
|
237 | var trace = new Trace();
|
238 | exports.trace = trace;
|
239 |
|
\ | No newline at end of file |