For the complete documentation index, see llms.txt. This page is also available as Markdown.

Globais

O runtime da cena garante a existência de certos objetos e funções dentro do ambiente JavaScript isolado, além das utilidades padrão como Promise, Date ou Math.

Os globais descritos abaixo são conceitos típicos do JavaScript, mas são adaptados ao runtime de cena do Decentraland e podem não se comportar de forma idêntica aos seus equivalentes em ambientes de navegador ou Node.

Globais

O runtime injeta 6 definições no escopo global da cena:

  1. console: uma versão simplificada do típico console .

  2. objeto: um objeto onde a cena pode adicionar sua interface pública.

  3. module: um contêiner para os objeto .

  4. require: uma função para carregar módulos fornecidos pelo runtime por nome.

  5. fetch: uma implementação restrita do fetch function.

  6. WebSocket: uma implementação restrita do WebSocket class.

Todos estes são definidos como propriedades somente leitura, portanto não podem ser reatribuídos. Alguns lançarão exceções quando usados a menos que certas permissions sejam concedidas à cena.

Console

As cenas têm acesso a um console objeto, muito parecido com o fornecido por um ambiente de navegador ou Node, embora limitado a apenas alguns dos métodos que você normalmente encontraria.

type Console = {
  log(...args: any): void
  info(...args: any): void
  debug(...args: any): void
  warning(...args: any): void
  error(...args: any): void
}

Assim como seus equivalentes padrão, cada método aceita argumentos variáveis de qualquer tipo e os renderiza como mensagens legíveis por humanos. Por exemplo, isto é válido:

O comportamento preciso desses métodos depende do provedor, mas as mensagens devem estar acessíveis aos desenvolvedores de cena que depuram seu código.

No World Explorer baseado em navegador da Foundation, as mensagens de log aparecem no painel de ferramentas do desenvolvedor.

Imports e Exports

As cenas podem importar e exportar objetos usando a tradicional CommonJS interface de module.

O require a função permite que cenas acessem módulos fornecidos pelo runtime (tais como EngineApi ou RestrictedActions), e nada mais (ela não acessa pacotes NPM ou módulos por caminho).

Propriedades adicionadas ao objeto objeto são a interface pública da cena e serão expostas ao runtime. De fato, as cenas devem expor pelo menos um método para rodar corretamente (veja execution).

Cenas escritas em linguagens como TypeScript usam o mais moderno import e export declarações, que podem ser transpiladas para usos compatíveis com CommonJS de require e objeto.

HTTP e WebSockets

O fetch e WebSocket os globais funcionam exatamente como seus conhecidos equivalentes (veja fetch e WebSocket em MDN), mas com algumas restrições impostas pelo runtime.

Ao chamar a fetch função:

  • É lançada uma erro se a URL não começar com https://.

  • É lançada uma erro se a cena não tiver a USE_FETCH permission.

  • Um timeout definido pela implementação pode abortar a requisição.

Ao usar a WebSocket class:

  • É lançada uma erro se a URL não começar com wss:

  • É lançada uma erro se a cena não tiver a USE_WEBSOCKET permission.

Além dessas diferenças, ambos os casos seguem o comportamento padrão.

Atualizado