@nativescript/core
Version:
A JavaScript library providing an easy to use api for interacting with iOS and Android platform APIs.
61 lines • 1.94 kB
JavaScript
import { knownFolders } from '../file-system';
export const debug = true;
let applicationRootPath;
function ensureAppRootPath() {
if (!applicationRootPath) {
applicationRootPath = knownFolders.currentApp().path;
applicationRootPath = applicationRootPath.substring(0, applicationRootPath.length - 'app/'.length);
}
}
export class Source {
constructor(uri, line, column) {
ensureAppRootPath();
if (uri.length > applicationRootPath.length && uri.substring(0, applicationRootPath.length) === applicationRootPath) {
this._uri = 'file://' + uri.substring(applicationRootPath.length);
}
else {
this._uri = uri;
}
this._line = line;
this._column = column;
}
get uri() {
return this._uri;
}
get line() {
return this._line;
}
get column() {
return this._column;
}
toString() {
return this._uri + ':' + this._line + ':' + this._column;
}
static get(object) {
return object[Source._source];
}
static set(object, src) {
object[Source._source] = src;
}
}
Source._source = Symbol('source');
export class ScopeError extends Error {
constructor(inner, message) {
let formattedMessage;
if (message && inner.message) {
formattedMessage = message + '\n > ' + inner.message.replace('\n', '\n ');
}
else {
formattedMessage = message || inner.message || undefined;
}
super(formattedMessage);
this.stack = __ANDROID__ ? 'Error: ' + this.message + '\n' + inner.stack.substr(inner.stack.indexOf('\n') + 1) : inner.stack;
this.message = formattedMessage;
}
}
export class SourceError extends ScopeError {
constructor(child, source, message) {
super(child, message ? message + ' @' + source + '' : source + '');
}
}
//# sourceMappingURL=debug.js.map