piral-debug-utils 1.8.0-beta.7739 → 1.8.0-beta.7744
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/overlay.js +7 -2
- package/lib/overlay.js.map +1 -1
- package/lib/stack.d.ts +54 -0
- package/lib/stack.js +22 -0
- package/lib/stack.js.map +1 -0
- package/package.json +3 -3
- package/src/overlay.ts +9 -2
- package/src/stack.ts +92 -0
package/lib/overlay.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { convertError } from './stack';
|
|
1
2
|
// Create an element with provided attributes and optional children
|
|
2
3
|
function h(e, attrs = {}, ...children) {
|
|
3
4
|
const elem = document.createElement(e);
|
|
@@ -151,7 +152,7 @@ kbd {
|
|
|
151
152
|
`;
|
|
152
153
|
// Error Template
|
|
153
154
|
const createTemplate = () => h('div', { class: 'backdrop', part: 'backdrop' }, h('div', { class: 'window', part: 'window' }, h('pre', { class: 'message', part: 'message' }, h('span', { class: 'plugin', part: 'plugin' }), h('span', { class: 'message-body', part: 'message-body' })), h('pre', { class: 'file', part: 'file' }), h('pre', { class: 'frame', part: 'frame' }), h('pre', { class: 'stack', part: 'stack' }), h('div', { class: 'tip', part: 'tip' }, 'Click outside, press ', h('kbd', {}, 'Esc'), ' key, or fix the code to dismiss.', h('br'), 'You can also disable this overlay by setting ', h('code', { part: 'config-option-name' }, 'dbg:error-overlay'), ' to ', h('code', { part: 'config-option-value' }, '"off"'), ' in ', h('code', { part: 'config-file-name' }, 'sessionStorage'), '.')), h('style', {}, templateStyle));
|
|
154
|
-
const fileRE = /(?:[a-zA-Z]:\\|\/).*?:\d+:\d
|
|
155
|
+
const fileRE = /(?:[a-zA-Z]:\\|\/).*?:\d+:\d*/g;
|
|
155
156
|
const codeframeRE = /^(?:>?\s*\d+\s+\|.*|\s+\|\s*\^.*)\r?\n/gm;
|
|
156
157
|
export const overlayId = 'piral-error-overlay';
|
|
157
158
|
if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
@@ -178,7 +179,10 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
|
178
179
|
if (hasFrame) {
|
|
179
180
|
this.text('.frame', error.frame.trim());
|
|
180
181
|
}
|
|
181
|
-
this.text('.stack', error.stack, links);
|
|
182
|
+
this.text('.stack', error.stack.split('\n').slice(0, 15).join('\n'), links);
|
|
183
|
+
convertError(error, 0, 15).then((newStack) => {
|
|
184
|
+
this.text('.stack', newStack, links);
|
|
185
|
+
});
|
|
182
186
|
this.root.querySelector('.window').addEventListener('click', (e) => {
|
|
183
187
|
e.stopPropagation();
|
|
184
188
|
});
|
|
@@ -196,6 +200,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
|
196
200
|
}
|
|
197
201
|
text(selector, text, linkFiles = false) {
|
|
198
202
|
const el = this.root.querySelector(selector);
|
|
203
|
+
el.textContent = '';
|
|
199
204
|
if (linkFiles) {
|
|
200
205
|
let curIndex = 0;
|
|
201
206
|
let match;
|
package/lib/overlay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
|
package/lib/stack.d.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export interface StackTraceOptions {
|
|
2
|
+
filter?: (stackFrame: StackFrame) => boolean;
|
|
3
|
+
sourceCache?: SourceCache;
|
|
4
|
+
offline?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface SourceCache {
|
|
7
|
+
[key: string]: string | Promise<string>;
|
|
8
|
+
}
|
|
9
|
+
export interface StackFrame {
|
|
10
|
+
constructor(object: StackFrame): StackFrame;
|
|
11
|
+
isConstructor?: boolean;
|
|
12
|
+
getIsConstructor(): boolean;
|
|
13
|
+
setIsConstructor(): void;
|
|
14
|
+
isEval?: boolean;
|
|
15
|
+
getIsEval(): boolean;
|
|
16
|
+
setIsEval(): void;
|
|
17
|
+
isNative?: boolean;
|
|
18
|
+
getIsNative(): boolean;
|
|
19
|
+
setIsNative(): void;
|
|
20
|
+
isTopLevel?: boolean;
|
|
21
|
+
getIsTopLevel(): boolean;
|
|
22
|
+
setIsTopLevel(): void;
|
|
23
|
+
columnNumber?: number;
|
|
24
|
+
getColumnNumber(): number;
|
|
25
|
+
setColumnNumber(): void;
|
|
26
|
+
lineNumber?: number;
|
|
27
|
+
getLineNumber(): number;
|
|
28
|
+
setLineNumber(): void;
|
|
29
|
+
fileName?: string;
|
|
30
|
+
getFileName(): string;
|
|
31
|
+
setFileName(): void;
|
|
32
|
+
functionName?: string;
|
|
33
|
+
getFunctionName(): string;
|
|
34
|
+
setFunctionName(): void;
|
|
35
|
+
source?: string;
|
|
36
|
+
getSource(): string;
|
|
37
|
+
setSource(): void;
|
|
38
|
+
args?: any[];
|
|
39
|
+
getArgs(): any[];
|
|
40
|
+
setArgs(): void;
|
|
41
|
+
evalOrigin?: StackFrame;
|
|
42
|
+
getEvalOrigin(): StackFrame;
|
|
43
|
+
setEvalOrigin(): void;
|
|
44
|
+
toString(): string;
|
|
45
|
+
}
|
|
46
|
+
declare global {
|
|
47
|
+
interface Window {
|
|
48
|
+
StackTrace: {
|
|
49
|
+
fromError(error: Error, options?: StackTraceOptions): Promise<Array<StackFrame>>;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export declare function install(): Promise<void>;
|
|
54
|
+
export declare function convertError(error: any, start?: number, end?: number): Promise<string>;
|
package/lib/stack.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
let installPromise;
|
|
2
|
+
export function install() {
|
|
3
|
+
if (!installPromise) {
|
|
4
|
+
installPromise = new Promise((resolve, reject) => {
|
|
5
|
+
const sts = document.createElement('script');
|
|
6
|
+
sts.src = 'https://cdnjs.cloudflare.com/ajax/libs/stacktrace.js/2.0.2/stacktrace.min.js';
|
|
7
|
+
document.head.appendChild(sts);
|
|
8
|
+
sts.onload = () => resolve();
|
|
9
|
+
sts.onerror = () => reject();
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
return installPromise;
|
|
13
|
+
}
|
|
14
|
+
export async function convertError(error, start = 0, end = -1) {
|
|
15
|
+
await install();
|
|
16
|
+
const frames = await window.StackTrace.fromError(error);
|
|
17
|
+
return frames
|
|
18
|
+
.slice(start, end)
|
|
19
|
+
.map((sf) => sf.toString())
|
|
20
|
+
.join('\n');
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=stack.js.map
|
package/lib/stack.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack.js","sourceRoot":"","sources":["../src/stack.ts"],"names":[],"mappings":"AAoEA,IAAI,cAAyC,CAAC;AAE9C,MAAM,UAAU,OAAO;IACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC7C,GAAG,CAAC,GAAG,GAAG,8EAA8E,CAAC;YACzF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/B,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;YAC7B,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAU,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;IAChE,MAAM,OAAO,EAAE,CAAC;IAChB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,MAAM;SACV,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;SACjB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "piral-debug-utils",
|
|
3
|
-
"version": "1.8.0-beta.
|
|
3
|
+
"version": "1.8.0-beta.7744",
|
|
4
4
|
"description": "Utilities for debugging Piral instances.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"piral",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"test": "echo \"Error: run tests from root\" && exit 1"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"piral-base": "1.8.0-beta.
|
|
52
|
+
"piral-base": "1.8.0-beta.7744"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "8815cbfb9ea38d9e559e3b7745c7592daad7e99c"
|
|
55
55
|
}
|
package/src/overlay.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { convertError } from './stack';
|
|
2
|
+
|
|
1
3
|
// Create an element with provided attributes and optional children
|
|
2
4
|
function h(e: string, attrs: Record<string, string> = {}, ...children: (string | Node)[]) {
|
|
3
5
|
const elem = document.createElement(e);
|
|
@@ -189,7 +191,7 @@ const createTemplate = () =>
|
|
|
189
191
|
h('style', {}, templateStyle),
|
|
190
192
|
);
|
|
191
193
|
|
|
192
|
-
const fileRE = /(?:[a-zA-Z]:\\|\/).*?:\d+:\d
|
|
194
|
+
const fileRE = /(?:[a-zA-Z]:\\|\/).*?:\d+:\d*/g;
|
|
193
195
|
const codeframeRE = /^(?:>?\s*\d+\s+\|.*|\s+\|\s*\^.*)\r?\n/gm;
|
|
194
196
|
|
|
195
197
|
interface ExtendedError {
|
|
@@ -253,7 +255,11 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
|
253
255
|
this.text('.frame', error.frame!.trim());
|
|
254
256
|
}
|
|
255
257
|
|
|
256
|
-
this.text('.stack', error.stack, links);
|
|
258
|
+
this.text('.stack', error.stack.split('\n').slice(0, 15).join('\n'), links);
|
|
259
|
+
|
|
260
|
+
convertError(error, 0, 15).then((newStack) => {
|
|
261
|
+
this.text('.stack', newStack, links);
|
|
262
|
+
});
|
|
257
263
|
|
|
258
264
|
this.root.querySelector('.window')!.addEventListener('click', (e) => {
|
|
259
265
|
e.stopPropagation();
|
|
@@ -277,6 +283,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
|
277
283
|
|
|
278
284
|
text(selector: string, text: string, linkFiles = false) {
|
|
279
285
|
const el = this.root.querySelector(selector)!;
|
|
286
|
+
el.textContent = '';
|
|
280
287
|
|
|
281
288
|
if (linkFiles) {
|
|
282
289
|
let curIndex = 0;
|
package/src/stack.ts
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
export interface StackTraceOptions {
|
|
2
|
+
filter?: (stackFrame: StackFrame) => boolean;
|
|
3
|
+
sourceCache?: SourceCache;
|
|
4
|
+
offline?: boolean;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface SourceCache {
|
|
8
|
+
[key: string]: string | Promise<string>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface StackFrame {
|
|
12
|
+
constructor(object: StackFrame): StackFrame;
|
|
13
|
+
|
|
14
|
+
isConstructor?: boolean;
|
|
15
|
+
getIsConstructor(): boolean;
|
|
16
|
+
setIsConstructor(): void;
|
|
17
|
+
|
|
18
|
+
isEval?: boolean;
|
|
19
|
+
getIsEval(): boolean;
|
|
20
|
+
setIsEval(): void;
|
|
21
|
+
|
|
22
|
+
isNative?: boolean;
|
|
23
|
+
getIsNative(): boolean;
|
|
24
|
+
setIsNative(): void;
|
|
25
|
+
|
|
26
|
+
isTopLevel?: boolean;
|
|
27
|
+
getIsTopLevel(): boolean;
|
|
28
|
+
setIsTopLevel(): void;
|
|
29
|
+
|
|
30
|
+
columnNumber?: number;
|
|
31
|
+
getColumnNumber(): number;
|
|
32
|
+
setColumnNumber(): void;
|
|
33
|
+
|
|
34
|
+
lineNumber?: number;
|
|
35
|
+
getLineNumber(): number;
|
|
36
|
+
setLineNumber(): void;
|
|
37
|
+
|
|
38
|
+
fileName?: string;
|
|
39
|
+
getFileName(): string;
|
|
40
|
+
setFileName(): void;
|
|
41
|
+
|
|
42
|
+
functionName?: string;
|
|
43
|
+
getFunctionName(): string;
|
|
44
|
+
setFunctionName(): void;
|
|
45
|
+
|
|
46
|
+
source?: string;
|
|
47
|
+
getSource(): string;
|
|
48
|
+
setSource(): void;
|
|
49
|
+
|
|
50
|
+
args?: any[];
|
|
51
|
+
getArgs(): any[];
|
|
52
|
+
setArgs(): void;
|
|
53
|
+
|
|
54
|
+
evalOrigin?: StackFrame;
|
|
55
|
+
getEvalOrigin(): StackFrame;
|
|
56
|
+
setEvalOrigin(): void;
|
|
57
|
+
|
|
58
|
+
toString(): string;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
declare global {
|
|
62
|
+
interface Window {
|
|
63
|
+
StackTrace: {
|
|
64
|
+
fromError(error: Error, options?: StackTraceOptions): Promise<Array<StackFrame>>;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
let installPromise: Promise<void> | undefined;
|
|
70
|
+
|
|
71
|
+
export function install() {
|
|
72
|
+
if (!installPromise) {
|
|
73
|
+
installPromise = new Promise<void>((resolve, reject) => {
|
|
74
|
+
const sts = document.createElement('script');
|
|
75
|
+
sts.src = 'https://cdnjs.cloudflare.com/ajax/libs/stacktrace.js/2.0.2/stacktrace.min.js';
|
|
76
|
+
document.head.appendChild(sts);
|
|
77
|
+
sts.onload = () => resolve();
|
|
78
|
+
sts.onerror = () => reject();
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return installPromise;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export async function convertError(error: any, start = 0, end = -1) {
|
|
86
|
+
await install();
|
|
87
|
+
const frames = await window.StackTrace.fromError(error);
|
|
88
|
+
return frames
|
|
89
|
+
.slice(start, end)
|
|
90
|
+
.map((sf) => sf.toString())
|
|
91
|
+
.join('\n');
|
|
92
|
+
}
|