wasm

package module
v0.0.0-...-0e115c3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 11, 2020 License: MIT Imports: 7 Imported by: 0

README

WASM

A go package for WebAssembly. This package contains some functions to be simple WebAssembly applications developed with go language. Allows to access and manipulate the LocalStorage, IndexeDB and DOM.

For now the code documentation in only available in Spanish language.

Warning: this package only has been tried with go version 1.15.2 or high.

Tests

If you want run tests, only go to test directory and execute ./run_tests.sh. Then, open your browser in direction http://localhost:8080 .

For wasm compilations you can't use the default tests package. For this, I was built a simple bash script to execute custom tests functions. Essentially, this script copy the wasm_exec.js file (from go instalation files), build the file test.go and run a server in :8080 port.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ImportToStorage

func ImportToStorage(storageType, nameItem string, v interface{}) error

@Experimental

ImportToStorage construir un objeto a partir de un item del storage.

func LocalStorage

func LocalStorage(action string, args ...interface{}) js.Value

LocalStorage llama a las funciones nativas del objeto javascript sessionStorage

Example. La siguiente función

LocalStorage("setItem", "myItem", "itemValue")

es equivalente a la función js

localStorage.setItem('myItem', 'itemValue')

func ObjectToStorage

func ObjectToStorage(storageType, nameItem string, object interface{})

ObjectToStorage es capaz de guardar distintos valores en el storage del navegador. Está comprobada su eficacia con structs.

El parámetro storageType selecciona el tipo de storage y solo recibe los valores "localStorage" o "sessionStorage". El parámetro nameItem nombra al item en el storage elegido y puede ser cualquier string. El parámetro object es el valor que será introducido en el storage como un string.

WARNING: valores distintos a "localStorage" o a "sessionStorage" invocarán un panic()

func SessionStorage

func SessionStorage(action string, args ...interface{}) js.Value

SessionStorage llama a las funciones nativas del objeto javascript sessionStorage

Example. La siguiente función

SessionStorage("setItem", "myItem", "itemValue")

es equivalente a la función js

sessionStorage.setItem('myItem', 'itemValue')

Types

type Iterator

type Iterator js.Value

Iterator permite iterar sobre un js.Value cuando se sabe de antemano que este equivale a un array/slice

func (Iterator) Float

func (e Iterator) Float() []float64

El método String obtiene un slice de float64 de un js.Value

func (Iterator) Int

func (e Iterator) Int() []int64

El método String obtiene un slice de int64 de un js.Value

func (Iterator) String

func (e Iterator) String() []string

El método String obtiene un slice de strings de un js.Value

type Log

type Log struct {
	// contains filtered or unexported fields
}

Log es un objeto que permite crear archivos de registro para las aplicaciones web, utiliza el localStorage. También es utilizado en este paquete para recoger errores en ciertas funciones. Cada Log tiene dos items del localStorage, uno que se guarda los registros y otro que guarda la autorización de enviar estos datos; los nombres de cada item son guardados en los atributos nameItem y authItem respectivamente. Se asume que los usuarios de la app serán notificados y consultados sobre la recolección de datos.

Debido a que el localStorage tiene un límite de almacenamiento, se exige que cada Log tenga un número máximo de registros. Este número es guardado en el atributo maxLength.

WARNING: Se recuerda a los desarrolladores consultar las leyes vigentes en los países de sus usuarios sobre el almacenar y enviar datos sensibles o que pudieran vulnerar la privacidad de los mismos usuarios. Así mismo, se les recuerda que en algunos países podría ser ilegal no informar de manera transparente sobre el uso de la telemetría.

func NewLog

func NewLog(nameItem, auth string, maxLength int, sendFunc func(data string) error) Log

Constructor del objeto Log.

func (Log) Add

func (l Log) Add(msj string) error

Agregar un registro al log si no se ha alcanzado el tamaño máximo. Cada registro sigue el esquema:

<mensaje>-<fecha hora>

func (*Log) NameItem

func (l *Log) NameItem() string

Obtiene el nombre del item del localStorage donde se alojan los registros.

func (Log) SendToServer

func (l Log) SendToServer() error

Obtiene todos los registros y los borra; si hay autorización de parte del usuario se envían con la el parámetro sendFunc.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL