Skip to content

Commit 8df333e

Browse files
committed
feat: add no trace example
1 parent 99e3650 commit 8df333e

File tree

5 files changed

+52
-23
lines changed

5 files changed

+52
-23
lines changed

examples/console.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { run as pg } from './pg.js'
1313
import { Youch } from '../src/youch.js'
1414
import { run as axios } from './axios.js'
1515
import { run as drive } from './flydrive.js'
16+
import { run as noTrace } from './no_trace.ts'
1617

1718
const argv = process.argv.splice(2)
1819
const fn = argv[0] ?? 'axios'
@@ -30,6 +31,9 @@ try {
3031
case 'pg':
3132
await pg()
3233
break
34+
case 'no_trace':
35+
await noTrace()
36+
break
3337
default:
3438
throw new E_COMMAND_NOT_FOUND()
3539
}

examples/no_trace.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/*
2+
* youch
3+
*
4+
* (c) Poppinss
5+
*
6+
* For the full copyright and license information, please view the LICENSE
7+
* file that was distributed with this source code.
8+
*/
9+
10+
export async function run() {
11+
try {
12+
throw new Error('No trace')
13+
} catch (error) {
14+
delete error.stack
15+
throw error
16+
}
17+
}

examples/web.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@ import { run as pg } from './pg.js'
1414
import { Youch } from '../src/youch.js'
1515
import { run as axios } from './axios.js'
1616
import { run as drive } from './flydrive.js'
17+
import { run as noTrace } from './no_trace.ts'
1718
import { HTTP_STATUSES } from './http_statuses.js'
1819

1920
const E_ROUTE_NOT_FOUND = createError('Route not found', 'E_ROUTE_NOT_FOUND', 404)
20-
const AVAILABLE_ROUTES = ['/axios', '/drive', '/pg']
21+
const AVAILABLE_ROUTES = ['/axios', '/drive', '/pg', '/no-trace']
2122

2223
createServer(async (req, res) => {
2324
try {
@@ -28,6 +29,9 @@ createServer(async (req, res) => {
2829
case '/drive':
2930
await drive()
3031
break
32+
case '/no-trace':
33+
await noTrace()
34+
break
3135
case '/pg':
3236
await pg()
3337
break

src/public/error_stack/script.js

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -44,29 +44,29 @@ function toggleAllFrames() {
4444
}
4545
}
4646

47-
document.querySelector('#formatted-frames-toggle')?.addEventListener('click', function () {
48-
showFormattedFrames(this)
47+
document.querySelector('#formatted-frames-toggle').addEventListener('click', function () {
48+
showFormattedFrames(this)
49+
})
50+
document.querySelector('#raw-frames-toggle').addEventListener('click', function () {
51+
showRawFrames(this)
52+
})
53+
document
54+
.querySelector('#all-frames-toggle input[type="checkbox"]')
55+
.addEventListener('change', function () {
56+
toggleAllFrames()
4957
})
50-
document.querySelector('#raw-frames-toggle')?.addEventListener('click', function () {
51-
showRawFrames(this)
52-
})
53-
document
54-
.querySelector('#all-frames-toggle input[type="checkbox"]')
55-
?.addEventListener('change', function () {
56-
toggleAllFrames()
57-
})
5858

59-
document.querySelectorAll('button[class="stack-frame-location"]').forEach((sfl) => {
60-
sfl.addEventListener('click', function (e) {
61-
if (e.target.tagName === 'A') {
62-
return
63-
}
64-
toggleFrameSource(e.target.closest('li'))
65-
})
59+
document.querySelectorAll('button[class="stack-frame-location"]').forEach((sfl) => {
60+
sfl.addEventListener('click', function (e) {
61+
if (e.target.tagName === 'A') {
62+
return
63+
}
64+
toggleFrameSource(e.target.closest('li'))
6665
})
66+
})
6767

68-
document.querySelectorAll('button[class="stack-frame-toggle-indicator"]').forEach((sfl) => {
69-
sfl.addEventListener('click', function (e) {
70-
toggleFrameSource(e.target.closest('li'))
71-
})
68+
document.querySelectorAll('button[class="stack-frame-toggle-indicator"]').forEach((sfl) => {
69+
sfl.addEventListener('click', function (e) {
70+
toggleFrameSource(e.target.closest('li'))
7271
})
72+
})

src/templates/error_stack/main.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,10 @@ export class ErrorStack extends BaseComponent<ErrorStackProps> {
267267
})
268268
)
269269

270-
return `\n\n${frames.join('\n')}`
270+
if (frames.length) {
271+
return `\n\n${frames.join('\n')}`
272+
}
273+
274+
return ''
271275
}
272276
}

0 commit comments

Comments
 (0)