Skip to content

[Bug Report]: When passing non-valid json, the component crashes #60

Closed
@mirkovancolen

Description

@mirkovancolen

Vue Code Block Version

2.3.3

Vue Version

3.5.15

Bug description

JSON.parse is attempted but crashes.
Need to show output from an api. Sometimes json, but not always. IF not valid json, it crashes

Steps to reproduce

<VCodeBlock
  code="test"
  prismjs
  lang="json"
/>

Relevant log output

AppForm.vue:320 [Vue warn]: Unhandled error during execution of mounted hook 
  at <VCodeBlock code="test" prismjs="" lang="json"  ... > 
  at <AsyncComponentWrapper code="ansibleguy" prismjs="" lang="json"  ... > 
  at <AppForm key=0 onRerender=fn onChange=fn<formChanged>  ... > 
  at <Form onVnodeUnmounted=fn<onVnodeUnmounted> ref=Ref< Proxy(Object) {__v_skip: true} > > 
  at <RouterView> 
  at <App>
warn$1 @ chunk-TF6X5W6F.js?v=991275c7:2113
logError @ chunk-TF6X5W6F.js?v=991275c7:2324
handleError @ chunk-TF6X5W6F.js?v=991275c7:2316
callWithErrorHandling @ chunk-TF6X5W6F.js?v=991275c7:2262
callWithAsyncErrorHandling @ chunk-TF6X5W6F.js?v=991275c7:2267
hook.__weh.hook.__weh @ chunk-TF6X5W6F.js?v=991275c7:4841
flushPostFlushCbs @ chunk-TF6X5W6F.js?v=991275c7:2445
flushJobs @ chunk-TF6X5W6F.js?v=991275c7:2487
Promise.then
queueFlush @ chunk-TF6X5W6F.js?v=991275c7:2382
queueJob @ chunk-TF6X5W6F.js?v=991275c7:2377
effect2.scheduler @ chunk-TF6X5W6F.js?v=991275c7:7492
trigger @ chunk-TF6X5W6F.js?v=991275c7:507
endBatch @ chunk-TF6X5W6F.js?v=991275c7:565
notify @ chunk-TF6X5W6F.js?v=991275c7:825
trigger @ chunk-TF6X5W6F.js?v=991275c7:799
set value @ chunk-TF6X5W6F.js?v=991275c7:1670
(anonymous) @ chunk-TF6X5W6F.js?v=991275c7:4542
Promise.then
setup @ chunk-TF6X5W6F.js?v=991275c7:4541
callWithErrorHandling @ chunk-TF6X5W6F.js?v=991275c7:2260
setupStatefulComponent @ chunk-TF6X5W6F.js?v=991275c7:9943
setupComponent @ chunk-TF6X5W6F.js?v=991275c7:9904
mountComponent @ chunk-TF6X5W6F.js?v=991275c7:7260
processComponent @ chunk-TF6X5W6F.js?v=991275c7:7226
patch @ chunk-TF6X5W6F.js?v=991275c7:6742
mountChildren @ chunk-TF6X5W6F.js?v=991275c7:6974
mountElement @ chunk-TF6X5W6F.js?v=991275c7:6897
processElement @ chunk-TF6X5W6F.js?v=991275c7:6862
patch @ chunk-TF6X5W6F.js?v=991275c7:6730
mountChildren @ chunk-TF6X5W6F.js?v=991275c7:6974
processFragment @ chunk-TF6X5W6F.js?v=991275c7:7156
patch @ chunk-TF6X5W6F.js?v=991275c7:6716
patchBlockChildren @ chunk-TF6X5W6F.js?v=991275c7:7096
patchElement @ chunk-TF6X5W6F.js?v=991275c7:7014
processElement @ chunk-TF6X5W6F.js?v=991275c7:6873
patch @ chunk-TF6X5W6F.js?v=991275c7:6730
patchBlockChildren @ chunk-TF6X5W6F.js?v=991275c7:7096
patchElement @ chunk-TF6X5W6F.js?v=991275c7:7014
processElement @ chunk-TF6X5W6F.js?v=991275c7:6873
patch @ chunk-TF6X5W6F.js?v=991275c7:6730
patchBlockChildren @ chunk-TF6X5W6F.js?v=991275c7:7096
processFragment @ chunk-TF6X5W6F.js?v=991275c7:7174
patch @ chunk-TF6X5W6F.js?v=991275c7:6716
patchUnkeyedChildren @ chunk-TF6X5W6F.js?v=991275c7:7597
patchChildren @ chunk-TF6X5W6F.js?v=991275c7:7531
processFragment @ chunk-TF6X5W6F.js?v=991275c7:7200
patch @ chunk-TF6X5W6F.js?v=991275c7:6716
patchBlockChildren @ chunk-TF6X5W6F.js?v=991275c7:7096
patchElement @ chunk-TF6X5W6F.js?v=991275c7:7014
processElement @ chunk-TF6X5W6F.js?v=991275c7:6873
patch @ chunk-TF6X5W6F.js?v=991275c7:6730
patchKeyedChildren @ chunk-TF6X5W6F.js?v=991275c7:7641
patchChildren @ chunk-TF6X5W6F.js?v=991275c7:7518
processFragment @ chunk-TF6X5W6F.js?v=991275c7:7200
patch @ chunk-TF6X5W6F.js?v=991275c7:6716
patchBlockChildren @ chunk-TF6X5W6F.js?v=991275c7:7096
patchElement @ chunk-TF6X5W6F.js?v=991275c7:7014
processElement @ chunk-TF6X5W6F.js?v=991275c7:6873
patch @ chunk-TF6X5W6F.js?v=991275c7:6730
patchKeyedChildren @ chunk-TF6X5W6F.js?v=991275c7:7641
patchChildren @ chunk-TF6X5W6F.js?v=991275c7:7518
processFragment @ chunk-TF6X5W6F.js?v=991275c7:7200
patch @ chunk-TF6X5W6F.js?v=991275c7:6716
patchBlockChildren @ chunk-TF6X5W6F.js?v=991275c7:7096
patchElement @ chunk-TF6X5W6F.js?v=991275c7:7014
processElement @ chunk-TF6X5W6F.js?v=991275c7:6873
patch @ chunk-TF6X5W6F.js?v=991275c7:6730
patchKeyedChildren @ chunk-TF6X5W6F.js?v=991275c7:7641
patchChildren @ chunk-TF6X5W6F.js?v=991275c7:7555
processFragment @ chunk-TF6X5W6F.js?v=991275c7:7200
patch @ chunk-TF6X5W6F.js?v=991275c7:6716
componentUpdateFn @ chunk-TF6X5W6F.js?v=991275c7:7450
run @ chunk-TF6X5W6F.js?v=991275c7:479
runIfDirty @ chunk-TF6X5W6F.js?v=991275c7:517
callWithErrorHandling @ chunk-TF6X5W6F.js?v=991275c7:2260
flushJobs @ chunk-TF6X5W6F.js?v=991275c7:2468
Promise.then
queueFlush @ chunk-TF6X5W6F.js?v=991275c7:2382
queueJob @ chunk-TF6X5W6F.js?v=991275c7:2377
effect2.scheduler @ chunk-TF6X5W6F.js?v=991275c7:7492
trigger @ chunk-TF6X5W6F.js?v=991275c7:507
endBatch @ chunk-TF6X5W6F.js?v=991275c7:565
trigger @ chunk-TF6X5W6F.js?v=991275c7:952
set @ chunk-TF6X5W6F.js?v=991275c7:1230
setExpressionFieldViewable @ AppForm.vue:320
onClick @ AppForm.vue:1396
callWithErrorHandling @ chunk-TF6X5W6F.js?v=991275c7:2260
callWithAsyncErrorHandling @ chunk-TF6X5W6F.js?v=991275c7:2267
invoker @ chunk-TF6X5W6F.js?v=991275c7:11155Understand this warningAI
VM12438:1 Uncaught (in promise) SyntaxError: Unexpected token 'a', "ansibleguy" is not valid JSON
    at JSON.parse (<anonymous>)
    at @wdns_vue-code-block.js?v=991275c7:1523:39
    at tn (@wdns_vue-code-block.js?v=991275c7:1525:7)
    at @wdns_vue-code-block.js?v=991275c7:1543:42
    at chunk-TF6X5W6F.js?v=991275c7:4861:40
    at callWithErrorHandling (chunk-TF6X5W6F.js?v=991275c7:2260:19)
    at callWithAsyncErrorHandling (chunk-TF6X5W6F.js?v=991275c7:2267:17)
    at hook.__weh.hook.__weh (chunk-TF6X5W6F.js?v=991275c7:4841:19)
    at flushPostFlushCbs (chunk-TF6X5W6F.js?v=991275c7:2445:28)
    at flushJobs (chunk-TF6X5W6F.js?v=991275c7:2487:5)

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions