Reference Source Test

Function

Static Public Summary
public

LoggerMiddleware(next: *): *

public

TimerMiddleware(next: *): *

public

addImportFunction(lib: string, func: function)

Funcion que permite añadir librerias externas para cargar dinamicamente nuevos comandos y observadores la funcion recibe como parametro la ruta del fichero a cargar siguiendo el siguiente patron ${type}/${mapLib}@${version}/${action.key} y la funcion tiene que hacer el import dinamico import()

public

addMapLibrary(name: *, func: *)

public

func(type: *, mapLib: *, version: *, key: *)

public

getAllActionsName(): Array<String|action>

Recupera la lista de acciones registradas

public

getAllFuctionsName(): Array<String|action>

Recupera la lista de funciones registradas

public
public

getSrc(): *

public

async importMapLibrary(lib: *, options: {}): *

public

isPromise(value: *): *

public

loadCSS(href: *)

public

loadGoogle(key: *)

public

async loadLib(lib: *, mapLib: *, type: *, key: *, version: string): *

public
public

observerFrom(observerName: string | Array | Promise | Iterable | Observer, args: ...any): Observer

Funcion que puede recibir un string con el nombre del obsevador que se quiere recuperar de los registrados o que puede recibir un Array, una promesa o un Iterable o otro Observebable sobre el que devuelve un observable con el CommandBus aplicado para poder invocar los comandos.

public

registerAction(actionName: string, action: function, options: object)

Permite registrar las acciones que luego se podra utilizar en @link {RxMap} o desde los Observadores

  • @example // Registrar accion registerAction'test',arg=>console.log(arg));
public

registerFunction(funcitonName: string, action: function, options: object)

Permite registrar las funciones que luego se podra utilizar en @link {RxMap}

public

registerLib(name: string, options: object{actions:Array,observers:Array}, func: Function(name:string))

Funcion que permite registrar librerias de Comandos y Observadores

public

registerMiddleware(actionName: *, middlewares: ...*)

funcion que permite registar los middlewares, para realizar acciones antes y depués de ejecutar una acción, se puden pasar mas de un middlleware .

public

registerObserver(name: string, observer: function)

Funcion que permite registrar los observadores que luego se podran utilzar desde el metodo RxMap.observer({name}).

public

async rxMapFromConfig(id: *, config: *): *

public

setProxy(obj: *)

public

subscribe(func: *)

Static Public

public LoggerMiddleware(next: *): * source

import {LoggerMiddleware} from '@rxmap/rxmap/RxMap/src/map/middlewares/logger.js'

Params:

NameTypeAttributeDescription
next *

Return:

*

public TimerMiddleware(next: *): * source

import {TimerMiddleware} from '@rxmap/rxmap/RxMap/src/map/middlewares/logger.js'

Params:

NameTypeAttributeDescription
next *

Return:

*

public addImportFunction(lib: string, func: function) source

import {addImportFunction} from '@rxmap/rxmap/RxMap/src/core/importLazyLoad.js'

Funcion que permite añadir librerias externas para cargar dinamicamente nuevos comandos y observadores la funcion recibe como parametro la ruta del fichero a cargar siguiendo el siguiente patron ${type}/${mapLib}@${version}/${action.key} y la funcion tiene que hacer el import dinamico import()

Params:

NameTypeAttributeDescription
lib string

Nombre de la libreria

func function

Funcion a invocar

Example:


RxMap.addImportLib('test',arg => import(`../lib/${arg}`));

public addMapLibrary(name: *, func: *) source

Params:

NameTypeAttributeDescription
name *
func *

public func(type: *, mapLib: *, version: *, key: *) source

import {func} from '@rxmap/rxmap/RxMap/lib.js'

Params:

NameTypeAttributeDescription
type *
mapLib *
version *
key *

public getAllActionsName(): Array<String|action> source

import {getAllActionsName} from '@rxmap/rxmap/RxMap/src/core/registerAction.js'

Recupera la lista de acciones registradas

Return:

Array<String|action>

public getAllFuctionsName(): Array<String|action> source

import {getAllFuctionsName} from '@rxmap/rxmap/RxMap/src/core/resgisterFunction.js'

Recupera la lista de funciones registradas

Return:

Array<String|action>

public getGoogleMap() source

import getGoogleMap from '@rxmap/rxmap/RxMap/src/utils/google.js'

public getSrc(): * source

Return:

*

public async importMapLibrary(lib: *, options: {}): * source

import importMapLibrary from '@rxmap/rxmap/RxMap/src/map/importMapLibrary.js'

Params:

NameTypeAttributeDescription
lib *
options {}
  • optional
  • default: {}

Return:

*

public isPromise(value: *): * source

Params:

NameTypeAttributeDescription
value *

Return:

*

public loadCSS(href: *) source

Params:

NameTypeAttributeDescription
href *

public loadGoogle(key: *) source

import {loadGoogle} from '@rxmap/rxmap/RxMap/src/utils/google.js'

Params:

NameTypeAttributeDescription
key *

public async loadLib(lib: *, mapLib: *, type: *, key: *, version: string): * source

Params:

NameTypeAttributeDescription
lib *
mapLib *
type *
key *
version string
  • optional
  • default: latest

Return:

*

public observableStore(): * source

Return:

*

public observerFrom(observerName: string | Array | Promise | Iterable | Observer, args: ...any): Observer source

Funcion que puede recibir un string con el nombre del obsevador que se quiere recuperar de los registrados o que puede recibir un Array, una promesa o un Iterable o otro Observebable sobre el que devuelve un observable con el CommandBus aplicado para poder invocar los comandos.

Al observador se le pueden pasar los argumentos que necesite.

Params:

NameTypeAttributeDescription
observerName string | Array | Promise | Iterable | Observer
args ...any

Return:

Observer

Example:

 // String

RxMap.observer('test')
 .example('test')
 .subscribe(console.log);
 // Array
RxMap.observer([1,2,3,4,5])
 .example('test')
 .subscribe(console.log);

const $stream = from(['a','b','c']);
RxMap.observer($stream)
 .example('test')
 .subscribe(console.log);

public registerAction(actionName: string, action: function, options: object) source

import {registerAction} from '@rxmap/rxmap/RxMap/src/core/registerAction.js'

Permite registrar las acciones que luego se podra utilizar en @link {RxMap} o desde los Observadores

  • @example // Registrar accion registerAction'test',arg=>console.log(arg));

    // Utilizar el comando RxMap.test('asasfasdf'); RxMap.fromObserver(from(5)).test('asfadf').subscribe(console.log)

Params:

NameTypeAttributeDescription
actionName string

Nombre de la accion a regitrar

action function

Action a ejecutar

options object
  • optional

Opciones para la accion

public registerFunction(funcitonName: string, action: function, options: object) source

import {registerFunction} from '@rxmap/rxmap/RxMap/src/core/resgisterFunction.js'

Permite registrar las funciones que luego se podra utilizar en @link {RxMap}

  • @example // Registrar accion registerFunction'test',arg=>console.log(arg));

    // Utilizar el comando RxMap.test('asasfasdf');

Params:

NameTypeAttributeDescription
funcitonName string

Nombre de la accion a regitrar

action function

Action a ejecutar

options object
  • optional

Opciones para la accion

public registerLib(name: string, options: object{actions:Array,observers:Array}, func: Function(name:string)) source

Funcion que permite registrar librerias de Comandos y Observadores

Solo se registran los comamdos y los observadores que se pasen en los parametros, si ya existiera un comando o observador con el mismo nombre lo sobreescribiria.

La funcion recibira los parametros ( type, mapLib, version, key ) para indicar lo que se quiere recuperar. Y tiene que devolver de manera asyncrona( async, promise ) un objeto con la funcion del comando o el observador el valor "default" o en el valor del nombre del comando o observador. Esta funcion tiene que cargar el codigo en la aplicación la manera más aconsejado es con un import dynamico

Params:

NameTypeAttributeDescription
name string

Nombre de la libreria a registrar

options object{actions:Array,observers:Array}

Lista de comandos y Observadores de la lirberia

func Function(name:string)

Funcion que se utilizara para cargar dynamicamente los comados y los Observadores

Example:

Ejemplo de Funcion import dinamico
(type, mapLib, version, key) => import( `../lib/${type}/${mapLib}@${version}/${key}`));

public registerMiddleware(actionName: *, middlewares: ...*) source

import {registerMiddleware} from '@rxmap/rxmap/RxMap/src/core/middlewares.js'

funcion que permite registar los middlewares, para realizar acciones antes y depués de ejecutar una acción, se puden pasar mas de un middlleware . El primer parametro es opcional y es el nombre de la acción sobre la que se va a aplicar el middleware, si no se pasa ningun nombre se aplicará sobre todas las acciones.

Params:

NameTypeAttributeDescription
actionName *
middlewares ...*

Example:

registerMiddleware('test',middleware1,middleware2);
registerMiddleware(middleware1,middleware2);

Las funciones del midleware son funciones que revien la accion a ejecutar y devuelve una
función async que recibe como parametro el CommandBus y un array con los argumentos
La función tiene que hacer lo que quiera, ejecutar la acción, volver a ejecutar el código
que desee y devolver el resultado de la acción ejecutada.
const LoggerMiddleware = next => async (Map, args) => {
 const actionName = Map.getActionName();
 const now = new Date().getTime();
 const name = `Command ${actionName} [${now}]: `;
 console.log(`Pre ${name}`, args);
 const res = await next(Map, args);
 console.log(`Post ${name}`, res);
 return res;
};
registerMiddleware(LoggerMiddleware);

public registerObserver(name: string, observer: function) source

import {registerObserver} from '@rxmap/rxmap/RxMap/src/core/registerObserver.js'

Funcion que permite registrar los observadores que luego se podran utilzar desde el metodo RxMap.observer({name}). La funcion tiene que devolver un objeto observable de RxJs

Params:

NameTypeAttributeDescription
name string

nombre del observador a registrar

observer function

observador a implementar

Example:

 // Registrar observador
 registerObserver('gps',()=>from('5'));

 // Utilizar observador
 RxMap.observer('gps').subscribe(cosole.log);

public async rxMapFromConfig(id: *, config: *): * source

import rxMapFromConfig from '@rxmap/rxmap/RxMap/src/map/config.js'

Params:

NameTypeAttributeDescription
id *
config *

Return:

*

public setProxy(obj: *) source

Params:

NameTypeAttributeDescription
obj *

public subscribe(func: *) source

Params:

NameTypeAttributeDescription
func *