Pubblicato un nuovo aggiornamento per nx.js, la piattaforma utilizza JavaScript e TypeScript per lo sviluppo di applicazioni homebrew della console Nintendo Switch.
Questo strumento è basato sul motore QuickJS e consente di eseguire script direttamente sulla console Nintendo Switch.
Molte delle API web comuni, come fetch
, setTimeout
, Audio
e Canvas
, sono supportate su questa piattaforma, il che rende più agevole il lavoro per gli sviluppatori web che desiderano creare software per la Switch.
Inoltre, nx.js offre API speciali specifiche per la console Switch, fornendo un ambiente di sviluppo completo per la creazione di programmi homebrew. Gli sviluppatori possono trovare ispirazione e esempi su GitHub per iniziare rapidamente con il loro progetto.
Una caratteristica interessante di nx.js è la possibilità di creare applicazioni più complesse utilizzando npm (Node Package Manager) e quindi impacchettarle come file NRO.
Questo processo coinvolge l’utilizzo di esbuild per raggruppare il codice JavaScript, consentendo anche l’uso di TypeScript per lo sviluppo. Inoltre, i file nella directory “romfs” vengono compressi nell’NRO, semplificando la distribuzione delle applicazioni.
L’aggiornamento ha apportato diverse migliorie e correzioni, come la decodifica degli indirizzi URL dei percorsi dei file nelle operazioni del filesystem e il supporto per il protocollo https: in fetch()
.
Va notato che, tecnicamente, si tratta di un cambiamento che potrebbe comportare incompatibilità, poiché gli eventi “frame” e “exit” della Switch non vengono più dispacciati come in passato.
Gli sviluppatori sono incoraggiati a migrare verso l’utilizzo di un ciclo requestAnimationFrame()
per l’evento “frame” e un evento “unload” globale per sostituire l’evento “exit” della Switch.
Changelog
nxjs-runtime@0.0.22
Modifiche alle patch
- Aggiunto il getter
CanvasRenderingContext2D#font
(e81ae48). - Registra gli errori non gestiti/i rifiuti di promesse nel file di log di debug (2055162).
- Aggiunto
Switch.version.mbedtls
(6c18661). - Utilizzato mbedtls per supportare Socket TLS
secureTransport: 'on'
(#58). - Corretto
resolve()
aggiunto inavvertitamente come funzione globale (275602f). - Fatto in modo che
Event#preventDefault()
funzioni solo quandocancelable: true
(28addd4).- Fatto in modo che
screen
implementi l’API Canvas (#63). - Aggiunto
OffscreenCanvas
eOffscreenCanvasRenderingContext2D
. - Rimosso
Switch.screen
.
- Fatto in modo che
- Aggiunto Canvas
imageSmoothingQuality
(885de44). - Aggiunto Canvas
imageSmoothingEnabled
(a55fcf2). - Aggiunto Canvas
globalCompositeOperation
(50e4168) - Aggiunto Canvas
clearRect()
e correttostrokeRect()
(94697da). - Aggiunto l’oggetto
screen
globale iniziale (057c5bf). - Corretto il bug per cui
inspect()
stampava “[Circular]” per le sottoproprietà degli oggetti (a197c84) - Aggiunto
navigator.platform
(79b5f00). - Implementazione di
EventTarget
del fornitore (56189ae). - Aggiunto il supporto per il protocollo
https:
infetch()
(cd8557b). - Abilitati i font a colori (emoji) (412adc1).
- Aggiunto
window
come alias aglobalThis
(06bdc88). - Aggiunto
requestAnimationFrame()
,cancelAnimationFrame()
e l’evento globale “unload” (4e4f6ec).- Questa è tecnicamente una modifica di rottura, poiché gli eventi
Switch
“frame” e “exit” non vengono più inviati. - Per migrare dall’evento “frame”, utilizzare un ciclo
requestAnimationFrame
. - Per migrare dall’evento Switch “exit”, utilizzare un evento globale “unload”.
- Questa è tecnicamente una modifica di rottura, poiché gli eventi
- Decodifica dell’URL del percorso del file nelle operazioni sul filesystem (9fa8051).
Download: nx.js v0.0.23
Download: Source code nx.js v0.0.23
Fonte: github.com