File tree 1 file changed +18
-2
lines changed 1 file changed +18
-2
lines changed Original file line number Diff line number Diff line change @@ -13,10 +13,11 @@ const hooks = {
13
13
toBeWarned = false ;
14
14
console . warn ( "⚠️ EXPERIMENTAL `py-game` FEATURE" ) ;
15
15
}
16
+
17
+ let config = { } ;
16
18
if ( script . hasAttribute ( "config" ) ) {
17
19
const value = script . getAttribute ( "config" ) ;
18
20
const { json, toml, text } = configDetails ( value ) ;
19
- let config = { } ;
20
21
if ( json ) config = JSON . parse ( text ) ;
21
22
else if ( toml ) {
22
23
const { parse } = await import (
@@ -54,7 +55,22 @@ const hooks = {
54
55
const target = script . getAttribute ( "target" ) || "canvas" ;
55
56
const canvas = document . getElementById ( target ) ;
56
57
wrap . interpreter . canvas . setCanvas2D ( canvas ) ;
57
- await wrap . interpreter . runPythonAsync ( code ) ;
58
+
59
+ // allow 3rd party to hook themselves right before
60
+ // the code gets executed
61
+ const event = new CustomEvent ( "py-game" , {
62
+ bubbles : true ,
63
+ cancelable : true ,
64
+ detail : {
65
+ canvas,
66
+ config,
67
+ wrap,
68
+ } ,
69
+ } ) ;
70
+ script . dispatchEvent ( event ) ;
71
+ // run only if the default was not prevented
72
+ if ( ! event . defaultPrevented )
73
+ await wrap . interpreter . runPythonAsync ( code ) ;
58
74
} ,
59
75
} ,
60
76
} ;
You can’t perform that action at this time.
0 commit comments