Skip to content

Commit

Permalink
Merge 85c78f1 into d66017a
Browse files Browse the repository at this point in the history
  • Loading branch information
vrubinat authored Sep 14, 2018
2 parents d66017a + 85c78f1 commit e37da21
Show file tree
Hide file tree
Showing 185 changed files with 234,430 additions and 54,186 deletions.
53 changes: 47 additions & 6 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"presets": [
[
"env",
"@babel/preset-env",
{
"targets": {
"browsers": [
Expand All @@ -11,18 +11,59 @@
},
"modules": false
}
],
"stage-1"
]
],
"plugins": [
"transform-runtime",
"syntax-dynamic-import"
"@babel/plugin-transform-runtime",
// Stage 1
"@babel/plugin-proposal-export-default-from",
"@babel/plugin-proposal-logical-assignment-operators",
[
"@babel/plugin-proposal-optional-chaining",
{
"loose": false
}
],
[
"@babel/plugin-proposal-pipeline-operator",
{
"proposal": "minimal"
}
],
[
"@babel/plugin-proposal-nullish-coalescing-operator",
{
"loose": false
}
],
"@babel/plugin-proposal-do-expressions",
// Stage 2
[
"@babel/plugin-proposal-decorators",
{
"legacy": true
}
],
"@babel/plugin-proposal-function-sent",
"@babel/plugin-proposal-export-namespace-from",
"@babel/plugin-proposal-numeric-separator",
"@babel/plugin-proposal-throw-expressions",
// Stage 3
"@babel/plugin-syntax-dynamic-import",
"@babel/plugin-syntax-import-meta",
[
"@babel/plugin-proposal-class-properties",
{
"loose": false
}
],
"@babel/plugin-proposal-json-strings"
],
"env": {
"test": {
"presets": [
[
"env",
"@babel/preset-env",
{
"modules": "commonjs"
}
Expand Down
1 change: 1 addition & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
end_of_line = lf

[*.md]
max_line_length = off
Expand Down
9 changes: 7 additions & 2 deletions .esdoc.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,17 @@
"image": "https://avatars0.githubusercontent.com/u/37194013?s=400&u=692377e91a2dab11006abb01d0db33cdb211c9b8&v=4"
},
"manual": {
"index": "./manual/index.md",
"index": "./README.md",
"globalIndex": true,
"asset": "./manual/asset",
"files": [
"./manual/overview.md",
"./manual/overview2.md"
"./manual/install.md",
"./manual/howItWorks.md",
"./manual/make.md",
"./manual/build.md",
"./manual/examples.md",
"./manual/libs.md"
]
},
"accessor": {
Expand Down
21 changes: 21 additions & 0 deletions .nycrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"extension": [
".js"
],
"include": [
"src/**/*.js"
],
"exclude": [
"**/*.spec.js",
"dist/**/*.*",
"docs/**/*.*",
"coverage/**/*.*",
"examples/**/*.*"
],
"reporter": [
"html"
],
"require": [],
"sourceMap": false,
"all": false
}
28 changes: 28 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,34 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Run ES6 Tests",
"type": "node",
"request": "launch",
"env": {
"BABEL_ENV": "test",
},
"cwd": "${workspaceRoot}",
"program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
"args": [
"./test/unit/**/*.spec.js",
"-r",
"@babel/polyfill",
"--require",
"@babel/register",
"--require",
"jsdom-global/register",
"-u",
"tdd",
"--timeout",
"999999",
"--colors"
],
"runtimeArgs": [
"--nolazy"
],
"sourceMaps": true
},
{
"type": "node",
"request": "attach",
Expand Down
14 changes: 14 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"mocha.env": {
"BABEL_ENV": "test"
},
"mocha.files.glob": "./test/unit/**/*.spec.js",
"mocha.requires": [
"jsdom-global/register",
"@babel/register",
"@babel/polyfill"

],
"mocha.options": {
},
}
104 changes: 101 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@

# RxMap
![](https://avatars0.githubusercontent.com/u/37194013?s=400&u=692377e91a2dab11006abb01d0db33cdb211c9b8&v=4|width=64)
[![Build Status](https://travis-ci.org/xlab-tech/RxMap.svg?branch=master)](https://travis-ci.org/xlab-tech/RxMap)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/fe06b87e1b6b4e279c8507c82d8ba73f)](https://www.codacy.com/project/xlab/RxMap/dashboard?utm_source=github.com&utm_medium=referral&utm_content=xlab-tech/RxMap&utm_campaign=Badge_Grade_Dashboard)
[![Coverage Status](https://coveralls.io/repos/github/xlab-tech/RxMap/badge.svg?branch=master)](https://coveralls.io/github/xlab-tech/RxMap?branch=master)
Expand All @@ -7,6 +8,103 @@
[![Code style: airbnb](https://img.shields.io/badge/code%20style-airbnb-blue.svg?style=flat-square)](https://github.com/airbnb/javascript)
[![AUR](https://img.shields.io/aur/license/yaourt.svg)](https://github.com/xlab-tech/RxMap/blob/master/LICENSE)

# ![](https://avatars0.githubusercontent.com/u/37194013?s=400&u=692377e91a2dab11006abb01d0db33cdb211c9b8&v=4|width=64) RxMap
[![Slack Status](https://xlab-tech.slack.com/badge.svg)](https://join.slack.com/t/xlab-tech/shared_invite/enQtNDIwMzg1MTA2NjA5LTljZWNkZjliNjhhNTc4MTQ0OWVkNTAwMTE0NmU2YTllYTE5YzllZjM2NTQ1ZmNkMDRmMGI0NWE0NGRiZGIxNmE)

RxMap es una librería de mapas para programación funcional y reactiva usando observables([RxJs](https://github.com/ReactiveX/rxjs)) Y que permite fácilmente anidar llamadas asyncronas.

RxMap se basa en dos conceptos acciones y observadores para organizar tu código en pequeños bloques. Y también te permite escribir middlewares para desacoplar mejor tu código.

De facto incluye observables sobre las acciones y un store obsevable, para poder observar los cambios sobre datos que guardes.

RxMap añade una capa de abstracción sobre las librerías de mapas, esta diseñada para desacoplarte i evitarte tener que actualizar tu código con cada cambio de librerías o utilizar una mapa diferente según el entorno. Podrás
centrarte en desarrollar tus funcionalidades.

RxMap te permite cargar el código en diferido cuando la utilizas para mejorar los tiempos de carga, es recomendable desplegarlo en http2.

## Ventajas
* Cargar en diferido de las acciones y los observadores (Lazy Loader).
* Trabajar con observadores. (RxJs).
* Trabajar de manara asyncrona.
* Programación funcional.
* Store Observable.
* Trabaja con multiples mapas, sin cambiar tu código.
* Reutilización de código entre diferentes proyectos.

## Instalación

### NPM
```
Npm install @rxmap\rxmap —save
```

### CDN
```
<head>
<script type=‘application/javascript’ src=‘https://unpkg.com/@rxmap/rxmap@0.0.2’ defer/>
</head>
```

## Como utilizarla
Lo ideal es tener las acciones y los observadores en librerías externas, lo primero seria registrar estas librerías para poder utilizarlas

```
import rxLib from '@rxmap/rxmap/lib';
registerLib(...rxLib);
```

Una vez registradas las librerías o las acciones a utilizar. Lo primero es cargar el mapa que se quiera utilizar
Y después ya se pueden invocar las acciones o observadores a utilizar.

```
import { RxMap } from ‘@rxmap/rxmap’;
await RxMap.load(‘leaflet’);
RxMap.create(‘mapId’,2.45,41.56,10);
RxMap.marker(2.45,41.56).popup(‘hello’);
```

O para versión de CDN.

```
R.RxMap.load(‘leaflet’);
R.RxMap.create(‘mapId’,2.45,41.56,10);
R.RxMap.marker(2.45,41.56).popup(‘hello’);
```

La primera acción que se tiene que invocar debe devolver el mapa inicial inicializado, normalmente esta acción se llama ‘create’ y debe ser sincrona, es decir no devolver una promesa. Es recomendable no anidar las llamadas a create, sino volver a hacer llamadas sobre RxMap, como se observa en los ejemplos anteriores.

## Documentación

Puedes encontrar más Documentación aquí:
* [Overview](https://xlab-tech.github.io/RxMap/manual/overview.html)
* [Instalar](https://xlab-tech.github.io/RxMap/manual/install.html)
* [Como Utilizar](https://xlab-tech.github.io/RxMap/manual/howItWorks.html)
* [Acciones](https://xlab-tech.github.io/RxMap/manual/howItWorks.html#acciones)
* [Observadores](https://xlab-tech.github.io/RxMap/manual/howItWorks.html#observadores)
* [Librerías](https://xlab-tech.github.io/RxMap/manual/howItWorks.html#librerías)
* [Middlewares](https://xlab-tech.github.io/RxMap/manual/howItWorks.html#middlewares)
* [Observar acciones](https://xlab-tech.github.io/RxMap/manual/howItWorks.html#observar-acciones)
* [Store](https://xlab-tech.github.io/RxMap/manual/howItWorks.html#store-observable)
* [Como crear](https://xlab-tech.github.io/RxMap/manual/make.html)
* [Acciones](https://xlab-tech.github.io/RxMap/manual/make.html#como-crear-acciones)
* [Observadores](https://xlab-tech.github.io/RxMap/manual/make.html#como-crear-observadores)
* [Middlewares](https://xlab-tech.github.io/RxMap/manual/make.html#como-crear-un-middleware)
* [Librería](https://xlab-tech.github.io/RxMap/manual/make.html#como-crear-una-libreria)
* [Build](https://xlab-tech.github.io/RxMap/manual/build.html)


# Examples

# Librerias
Librerías para añadir acciones y observadores:
* RxMapLib
* ..

[![Slack Status](https://xlab-tech.slack.com/badge.svg)](https://join.slack.com/t/xlab-tech/shared_invite/enQtNDIwMzg1MTA2NjA5LTljZWNkZjliNjhhNTc4MTQ0OWVkNTAwMTE0NmU2YTllYTE5YzllZjM2NTQ1ZmNkMDRmMGI0NWE0NGRiZGIxNmE)
Para añadir una nueva librería enviar un mail a rxmap@xlab-tech.com o realiza un pullRequest de la documentación con la libreria añadida.
Para hacer un PullRequest:
* Haz un fork del repositorio.
* Haz commit y push de los cambios en tu reposition.
* Crear un PullRequest .
Loading

0 comments on commit e37da21

Please sign in to comment.