Use the type definition of pyodide (#535)

* Import the type definition

* Add type annotations
This commit is contained in:
woxtu
2022-06-25 04:25:14 +09:00
committed by GitHub
parent 479348eec9
commit c7942d7d8f
6 changed files with 4115 additions and 19 deletions

View File

@@ -8,6 +8,7 @@ import {
} from '../stores';
import { addClasses, htmlDecode } from '../utils';
import { BaseEvalElement } from './base';
import type { PyodideInterface } from '../pyodide';
// Premise used to connect to the first available pyodide interpreter
let pyodideReadyPromise;
@@ -25,11 +26,6 @@ mode.subscribe(value => {
currentMode = value;
});
// TODO: use type declaractions
type PyodideInterface = {
registerJsModule(name: string, module: object): void;
};
export class PyScript extends BaseEvalElement {
constructor() {
super();
@@ -143,7 +139,7 @@ async function initHandlers() {
}
/** Initializes an element with the given pys-on* attribute and its handler */
async function createElementsWithEventListeners(pyodide: any, pysAttribute: string) {
async function createElementsWithEventListeners(pyodide: PyodideInterface, pysAttribute: string): Promise<void> {
const matches: NodeListOf<HTMLElement> = document.querySelectorAll(`[${pysAttribute}]`);
for (const el of matches) {
if (el.id.length === 0) {