Skip to content

Commit 00532f1

Browse files
Merge pull request #110 from pyscript/dummy-script
Introducing script type="dummy"
2 parents 7266d52 + d457e2f commit 00532f1

File tree

8 files changed

+69
-8
lines changed

8 files changed

+69
-8
lines changed

Diff for: docs/index.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: docs/index.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: esm/interpreter/dummy.js

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import { io, stdio } from './_io.js';
2+
3+
const registry = new Map;
4+
5+
const type = 'dummy';
6+
7+
// REQUIRES INTEGRATION TEST
8+
/* c8 ignore start */
9+
const require = name => registry.get(name);
10+
11+
const run = (interpreter, code) => {
12+
try {
13+
return Function('require', code)(require);
14+
}
15+
catch (error) {
16+
io.get(interpreter).stderr(error);
17+
}
18+
};
19+
20+
export default {
21+
type,
22+
module: () => 'data:application/javascript,',
23+
engine: module => stdio().get(module),
24+
registerJSModule(_, name, value) {
25+
registry.set(name, value);
26+
},
27+
run,
28+
runAsync: run,
29+
runEvent: async (interpreter, code, event) => {
30+
try {
31+
await Function('require', 'e', `return ${code}(e)`)(require, event);
32+
}
33+
catch (error) {
34+
io.get(interpreter).stderr(error);
35+
}
36+
},
37+
transform: (_, value) => value,
38+
writeFile() {},
39+
};

Diff for: esm/interpreter/webr.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export default {
5151
runAsync: run,
5252
async runEvent(interpreter, code, event) {
5353
// TODO: WebR cannot convert exoteric objects or any literal
54-
// to an easy to reason about data/frame ... that convertion
54+
// to an easy to reason about data/frame ... that conversion
5555
// is reserved for the future:
5656
// https://docs.r-wasm.org/webr/latest/convert-js-to-r.html#constructing-r-objects-from-javascript-objects
5757
await interpreter.evalRVoid(`${code}(event)`, {

Diff for: esm/interpreters.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,11 @@ const register = (interpreter) => {
4848
};
4949

5050
//:RUNTIMES
51+
import dummy from './interpreter/dummy.js';
5152
import micropython from './interpreter/micropython.js';
5253
import pyodide from './interpreter/pyodide.js';
5354
import ruby_wasm_wasi from './interpreter/ruby-wasm-wasi.js';
5455
import wasmoon from './interpreter/wasmoon.js';
5556
import webr from './interpreter/webr.js';
56-
for (const interpreter of [micropython, pyodide, ruby_wasm_wasi, wasmoon, webr])
57+
for (const interpreter of [dummy, micropython, pyodide, ruby_wasm_wasi, wasmoon, webr])
5758
register(interpreter);

Diff for: package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "polyscript",
3-
"version": "0.14.1",
3+
"version": "0.14.2",
44
"description": "PyScript single core to rule them all",
55
"main": "./esm/index.js",
66
"types": "./types/polyscript/esm/index.d.ts",
@@ -86,6 +86,6 @@
8686
"to-json-callback": "^0.1.1"
8787
},
8888
"worker": {
89-
"blob": "sha256-jyja7vDWOV2Fy/al1o2uc7OkyteLjKTTY6jkJhlIEAg="
89+
"blob": "sha256-1s+d/z97T1TW7Z1FKqUH9XkdwJnOr2YgB5K73a94okA="
9090
}
9191
}

Diff for: test/dummy.html

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>Polyscript dummy interpreter (JS)</title>
7+
<script type="module" src="../dist/index.js"></script>
8+
</head>
9+
<body>
10+
<script type="dummy">
11+
self.greetings = () => {
12+
console.log('Hello World');
13+
};
14+
</script>
15+
<button dummy-click="greetings">click me</button>
16+
<script type="dummy" worker>
17+
const { xworker: { window } } = require('polyscript');
18+
window.document.body.append('OK');
19+
</script>
20+
</body>
21+
</html>

0 commit comments

Comments
 (0)