18 · Módulos
JavaScript / TypeScript · Node
Use JavaScript e TypeScript pelo Node embutido, incluindo módulos nativos e Promises. Shim, runtime e ABI de addons precisam coincidir. int da Zolo usa bigint em assinaturas inline.
Nesta página
Execute localmente com o plugin e runtime correspondentes. Estes exemplos não rodam no playground do navegador.
JavaScript / TypeScript / Node.
// JavaScript and TypeScript use the same embedded Node runtime.
use plugin node::{javascript as js, typescript as ts}
extern js fn add(a: int, b: int) -> int {
return a + b;
}
extern ts {
fn normalize(text: str) -> str {
return text.trim().toLowerCase();
}
fn root(value: float) -> float {
return Math.sqrt(value);
}
}
let original = " Zolo "
let greeting: str = extern js {
return `Hi ${`${original.trim()}`}`;
}
let lexical: bool = extern js {
// Braces and slashes in native literals remain inside this body.
return /[{}\/]/.test("}") && `literal } ${original.trim()}`.endsWith("Zolo");
}
extern ts fn native_import() -> str {
import { createHash } from "node:crypto";
return createHash("sha256").update("Zolo").digest("hex").slice(0, 8);
}
print(add(20, 22))
print(normalize(original))
print(root(81.0))
print(greeting)
print(lexical)
print(native_import().len())
// expected:
// 42
// zolo
// 9
// Hi Zolo
// true
// 8
Requer a CLI/host do Zolo — abra no playground ou rode localmente.
Preparação e distribuição
O empacotamento sem fontes pode preservar artefatos estrangeiros preparados, mas não remove dependências de runtime ou plataforma. Hospedagem na VM, native e LLVM está coberta; bindings estrangeiros rejeitam alvos WebAssembly não suportados. A aceitação recente dos providers cobre Windows x64. Python está verificado especificamente com CPython 3.12; outras plataformas precisam de validação própria.