mirror of
https://github.com/pyscript/pyscript.git
synced 2025-12-19 10:17:23 -05:00
* Remove duplicate LICENSE. * Remove un-userd pyscript.sw directory and its content. * Remove ReadTheDocs settings (unused). * Remove un-used pyproject.toml * Remove now unused CHANGELOG. Changes now tracked via release notes on GitHub. * Updated / cleaned release page template and associated GH actions. * Update prettierignore to remove un-needed refs. * Move troubleshooting into correct README. * Add reason for the index.html * Rename the "pyscript.core" directory to "core". * Update PR template because CHANGELOG is no longer used. * Codespell configuration in pyproject.toml. * Update pyscript.core -> core in .githubignore * Remove test-results/.last-run.json. This should be ignored by git. * Pin nodejs version. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
27 lines
791 B
JavaScript
27 lines
791 B
JavaScript
import { defineProperty } from "polyscript/exports";
|
|
|
|
// helper for all script[type="py"] out there
|
|
const before = (script) => {
|
|
defineProperty(document, "currentScript", {
|
|
configurable: true,
|
|
get: () => script,
|
|
});
|
|
};
|
|
|
|
const after = () => {
|
|
delete document.currentScript;
|
|
};
|
|
|
|
// common life-cycle handlers for any node
|
|
export default async (main, wrap, element, hook) => {
|
|
const isAsync = hook.endsWith("Async");
|
|
const isBefore = hook.startsWith("onBefore");
|
|
// make it possible to reach the current target node via Python
|
|
// or clean up for other scripts executing around this one
|
|
(isBefore ? before : after)(element);
|
|
for (const fn of main(hook)) {
|
|
if (isAsync) await fn(wrap, element);
|
|
else fn(wrap, element);
|
|
}
|
|
};
|