
* chore: move tns-core-modules to nativescript-core * chore: preparing compat generate script * chore: add missing definitions * chore: no need for http-request to be private * chore: packages chore * test: generate tests for tns-core-modules * chore: add anroid module for consistency * chore: add .npmignore * chore: added privateModulesWhitelist * chore(webpack): added bundle-entry-points * chore: scripts * chore: tests changed to use @ns/core * test: add scoped-packages test project * test: fix types * test: update test project * chore: build scripts * chore: update build script * chore: npm scripts cleanup * chore: make the compat pgk work with old wp config * test: generate diff friendly tests * chore: create barrel exports * chore: move files after rebase * chore: typedoc config * chore: compat mode * chore: review of barrels * chore: remove tns-core-modules import after rebase * chore: dev workflow setup * chore: update developer-workflow * docs: experiment with API extractor * chore: api-extractor and barrel exports * chore: api-extractor configs * chore: generate d.ts rollup with api-extractor * refactor: move methods inside Frame * chore: fic tests to use Frame static methods * refactor: create Builder class * refactor: use Builder class in tests * refactor: include Style in ui barrel * chore: separate compat build script * chore: fix tslint errors * chore: update NATIVESCRIPT_CORE_ARGS * chore: fix compat pack * chore: fix ui-test-app build with linked modules * chore: Application, ApplicationSettings, Connectivity and Http * chore: export Trace, Profiling and Utils * refactor: Static create methods for ImageSource * chore: fix deprecated usages of ImageSource * chore: move Span and FormattedString to ui * chore: add events-args and ImageSource to index files * chore: check for CLI >= 6.2 when building for IOS * chore: update travis build * chore: copy Pod file to compat package * chore: update error msg ui-tests-app * refactor: Apply suggestions from code review Co-Authored-By: Martin Yankov <m.i.yankov@gmail.com> * chore: typings and refs * chore: add missing d.ts files for public API * chore: adress code review FB * chore: update api-report * chore: dev-workflow for other apps * chore: api update * chore: update api-report
The trace module is used to track code execution and to receive notifications for various events. It is disabled by default and to enable it you will need to call its enable() method.
import * as trace from "trace";
trace.enable();
The module writes its output through a collection of TraceWriter objects. By default there is one ConsoleWriter instance added to the module. There is a filtering functionality which is implemented by the setCategories(string)
method. The method argument is a string containing one or more comma-delimited categories: "Layout,VisualTreeEvents"
.
How to specify category(s):
import * as trace from "trace";
// only the Layout messages are traced
trace.setCategories(traceCategories.Layout);
import * as trace from "trace";
// set Layout + VisualTreeEvents categories
trace.setCategories(traceCategories.concat(traceCategories.Layout, traceCategories.VisualTreeEvents));
import * as trace from "trace";
// trace everything
trace.setCategories(traceCategories.All);
How to trace:
import * as trace from "trace";
traceWrite("tracing message", traceCategories.Layout);
The module also supports events notifications through the EventListener interface. You may call the trace.notifyEvent
method and all registered listeners will receive a notification for the event.
How to create and register a listener:
import * as trace from "trace";
class Listener implements trace.EventListener {
public filter: string;
public receivedEvents: Array<{ sender: Object; name: string }> = [];
constructor(filter: string) {
this.filter = filter;
}
public on(object: Object, name: string) {
this.receivedEvents.push({ sender: object, name: name });
}
public reset() {
this.receivedEvents = [];
}
}
// listen only for the _onAttached event
var listener = new Listener("_onAttached");
// register the listener
trace.addEventListener(listener);
How to raise events:
import * as trace from "trace";
import * as view from "ui/core/view";
var newView = new view.View();
trace.notifyEvent(newView, "_viewCreated");