Kooditoiminnot
Kun graafi ei riitä, lohko Koodi suorittaa skriptin.
Käytettävissä on seitsemän kieltä, jotka kaikki suoritetaan sisäänrakennetussa WebAssembly-hiekkalaatikossa: koneellesi ei tarvita mitään tulkkia, eikä skriptillä ole pääsyä tiedostojärjestelmääsi.
| Kieli | Moottori |
|---|---|
| TypeScript | QuickJS (tyypit poistetaan käännöksessä) |
| JavaScript | QuickJS |
| Python | Pyodide (WebAssemblyksi käännetty CPython) |
| Lua | Lua 5.4 WebAssemblyssä |
| Ruby | CRuby WebAssemblyssä |
| R | WebR |
| C# | .NET WebAssemblyssä Roslynin kanssa |
Oletuskieli on TypeScript.
Yhteinen sopimus
Section titled “Yhteinen sopimus”Kielestä riippumatta lohko tarjoaa saman:
| Tulot | value (nimeltään input), code (merkkijono) |
| Lähdöt | result |
| Kokoonpano | language, code, timeout, packages |
input— tuloportissa vastaanotettu arvo.vars— suoritusmuuttujat.- Kielen vakiotuloste (
console.log,print,puts,cat,Console.WriteLine) syöttää suorituslokia. - Palautettu arvo lähtee portista
result. Virhe tai aikakatkaisu lähtee portistaerror.
Aikakatkaisu
Section titled “Aikakatkaisu”timeout sekunteina: oletuksena 5, enintään 60. Rajan ylittävä skripti
keskeytetään ja suoritus jatkuu portista error.
Ulkoiset paketit
Section titled “Ulkoiset paketit”Kenttä packages hyväksyy luettelon muodossa { nom, version }. Tarkat versiot
toimivat välimuistin avaimena: riippuvuudet ratkaistaan ensimmäisellä
suorituskerralla, tallennetaan välimuistiin ja liitetään sitten
offline-tilassa jokaisella seuraavalla suorituksella — myös CI:ssä.
| Kieli | Lähde |
|---|---|
| TypeScript / JavaScript | npm (kokonaisuus paketoidaan) |
| Python | Puhtaat Python-wheelit PyPI:stä |
| Lua | LuaRocks (puhtaat Lua-lähteet) |
| Ruby | Puhtaat Ruby-gemit |
| R | CRAN, WebR:n WebAssembly-repositorion kautta |
| C# | Ei mitään — vain .NETin vakiokirjasto |
Milloin koodia ei kannata kirjoittaa
Section titled “Milloin koodia ei kannata kirjoittaa”Moni tarve on jo katettu lohkoilla, jotka ovat luettavampia ja nopeampia:
| Tarve | Lohko |
|---|---|
| Arvon poimiminen vastauksesta | Kytkennän valitsin |
| Merkkijonon muotoilu | Transform template |
| Luettelon suodatus, lajittelu ja koostaminen | Luettelot |
| Tiivistäminen, koodaus ja allekirjoitus | Koodaus |
| Rakenteen tarkistaminen | Schema validate |
Säästä lohko Koodi aidosti erikoiselle logiikalle.