autocompleter-caba
Advanced tools
Comparing version 0.1.1 to 0.1.2
// import {Autocompleter} from './services/Autocompleter.js'; | ||
import { Autocompleter } from "./services/Autocompleter.js"; | ||
import { Autocompleter } from './services/Autocompleter.js'; | ||
const autocompleter = new Autocompleter(); | ||
let calle = prompt("Ingrese la calle:"); | ||
if (calle) { | ||
let suggestions = autocompleter.getSuggestions(calle); | ||
console.log(suggestions); | ||
// let suggestions = autocompleter.getSuggestions(calle); | ||
// console.log(suggestions) | ||
// autocompleter.getSearch(calle); | ||
// autocompleter.getSearchPlaces(calle); | ||
} |
@@ -11,3 +11,3 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
import Suggester from "./Suggester.js"; | ||
import { address_suggestions_url, address_search_url, transform_coordinates_url } from "../api/urls.js"; | ||
import { address_suggestions_url, address_search_url, transform_coordinates_url, } from "../api/urls.js"; | ||
import { getCredentials } from "./NeoAutocompleter.js"; | ||
@@ -58,3 +58,2 @@ class AddressSuggester extends Suggester { | ||
resolve(this.errorResponse); | ||
; | ||
} | ||
@@ -89,3 +88,6 @@ else { | ||
const atipicalStreets = ((_b = unsortedStreets === null || unsortedStreets === void 0 ? void 0 : unsortedStreets.data) === null || _b === void 0 ? void 0 : _b.calles_atipicas) || []; | ||
const mergedStreets = [...streets, ...atipicalStreets]; | ||
const mergedStreets = [ | ||
...streets, | ||
...atipicalStreets, | ||
]; | ||
return mergedStreets.sort((a, b) => (b.similaridad - a.similaridad)); | ||
@@ -97,5 +99,7 @@ } | ||
if (typeof street.intersecciones !== "undefined") { | ||
return (street.intersecciones.map((intersection) => ({ direccion: `${street.nombre_calle} Y ${intersection.nombre_oficial}` }) | ||
return street.intersecciones.map((intersection) => ({ | ||
direccion: `${street.nombre_calle} Y ${intersection.nombre_oficial}`, | ||
}) | ||
// return `${street.nombre_calle} Y ${intersection.nombre_oficial}`; | ||
)); | ||
); | ||
} | ||
@@ -110,3 +114,3 @@ // Alturas válidas para calle ingresada | ||
this.errorResponse = { | ||
error: { error: message, "valid_numbers": valid_street_numbers }, | ||
error: { error: message, valid_numbers: valid_street_numbers }, | ||
status_code: 400, | ||
@@ -118,2 +122,3 @@ }; | ||
if ("altura" in street) { | ||
this.errorResponse = null; | ||
return { direccion: `${street.nombre_calle} ${street.altura}` }; | ||
@@ -123,2 +128,3 @@ // return `${street.nombre_calle} ${street.altura}`; | ||
// Calle sin altura | ||
this.errorResponse = null; | ||
return { direccion: `${street.nombre_calle}` }; | ||
@@ -125,0 +131,0 @@ // return street.nombre_calle; |
@@ -10,19 +10,73 @@ import Suggester from "./Suggester.js"; | ||
constructor(); | ||
/** | ||
* Retorna el atributo clientId | ||
*/ | ||
getClientId(): string; | ||
/** | ||
* Retorna el atributo clientSecret | ||
*/ | ||
getClientSecret(): string; | ||
/** | ||
* Permite establecer los atributos clientId y clientSecret | ||
* @param clientId: string | ||
* @param clientSecret: string | ||
*/ | ||
setCredentials(clientId: string, clientSecret: string): void; | ||
private investTypesSuggesters; | ||
private findSuggesterByType; | ||
/** | ||
* Ecnuentra el suggester . | ||
* @param suggester Tipo de suggester a activar. | ||
*/ | ||
findSuggester(suggesterType: SuggestersOptions): Suggester; | ||
createSuggester(suggester: SuggestersOptions, minTextLength: number, waitingTime: number, maxSuggestions: number): void; | ||
/** | ||
* Este método permite activar un Suggester específico. | ||
* @param suggester Tipo de suggester a activar. | ||
*/ | ||
enableSuggester(suggester: SuggestersOptions): void; | ||
/** | ||
* Este método permite desactivar un Suggester específico. | ||
* @param suggester Tipo de suggester a activar. | ||
*/ | ||
disableSuggester(suggester: SuggestersOptions): void; | ||
/** | ||
* Devuelve todos los suggesters disponibles. | ||
* @returns Un objeto con los suggesters disponibles. | ||
*/ | ||
getSuggesters(): { | ||
[key: string]: Suggester; | ||
}; | ||
/** | ||
* Normaliza los distintos tipos de sugerencias según el tipo de suggester. | ||
* | ||
* @param suggesterName Nombre del suggester. | ||
* @param suggestions Sugerencias a normalizar. | ||
* @returns Sugerencias normalizadas. | ||
*/ | ||
normalizeSuggestions(suggesterName: string, suggestions: Object[] | null | any): any; | ||
getSuggestions(input: string, suggester?: string): Promise<any>; | ||
/** | ||
* Obtiene las sugerencias para el input ingresado. | ||
* @param input Input de usuario. | ||
* @param suggester (Opcional) Tipo de sugeridor a considerar("all", "address", "place"). Default = "all". | ||
* @returns Sugerencias correspondientes a la input. | ||
*/ | ||
getSuggestions(input: string, typeSuggester?: string): Promise<any>; | ||
/** | ||
* Realiza una búsqueda utilizando las sugerencias proporcionadas. | ||
* @param suggestion Estructura de sugerencia o cadena de texto. | ||
* @returns El resultado de la búsqueda. | ||
*/ | ||
getSearch(suggestion: any): Promise<any>; | ||
/** | ||
* Realiza una búsqueda de direcciones utilizando las sugerencias proporcionadas. | ||
* @param address Dirección a buscar. | ||
* @returns El resultado de la búsqueda de direcciones. | ||
*/ | ||
getSearchAddress(address: string): Promise<any>; | ||
/** | ||
* Realiza una búsqueda de lugares utilizando las sugerencias proporcionadas. | ||
* @param place Lugar a buscar. | ||
* @returns El resultado de la búsqueda de lugares. | ||
*/ | ||
getSearchPlaces(place: string): Promise<any>; | ||
} |
@@ -12,3 +12,3 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
import PlaceSuggester from "./PlacesSuggesters.js"; | ||
import { SuggestersOptions, SuggesterTypes } from "../models/options/SuggesterOptions.js"; | ||
import { SuggestersOptions, SuggesterTypes, } from "../models/options/SuggesterOptions.js"; | ||
export class Autocompleter { | ||
@@ -30,11 +30,21 @@ constructor() { | ||
} | ||
; | ||
} | ||
} | ||
/** | ||
* Retorna el atributo clientId | ||
*/ | ||
getClientId() { | ||
return this.clientId; | ||
} | ||
/** | ||
* Retorna el atributo clientSecret | ||
*/ | ||
getClientSecret() { | ||
return this.clientSecret; | ||
} | ||
/** | ||
* Permite establecer los atributos clientId y clientSecret | ||
* @param clientId: string | ||
* @param clientSecret: string | ||
*/ | ||
setCredentials(clientId, clientSecret) { | ||
@@ -65,2 +75,6 @@ this.clientId = clientId; | ||
} | ||
/** | ||
* Ecnuentra el suggester . | ||
* @param suggester Tipo de suggester a activar. | ||
*/ | ||
findSuggester(suggesterType) { | ||
@@ -74,17 +88,6 @@ let options = Object.values(SuggestersOptions); | ||
} | ||
createSuggester(suggester, minTextLength, waitingTime, maxSuggestions) { | ||
const selectedSuggester = this.findSuggester(suggester); | ||
// Validación para minTextLength | ||
if (minTextLength < 3) { | ||
console.error("El valor mínimo posible del campo minTextLength es 3. Se ajustará automáticamente."); | ||
minTextLength = 3; | ||
} | ||
// Validación para maxSuggestions | ||
if (maxSuggestions > 10) { | ||
console.error("El valor máximo del campo maxSuggestions es 10. Se ajustará automáticamente."); | ||
maxSuggestions = 10; | ||
} | ||
// Configuración del sugestor después de las validaciones | ||
selectedSuggester.setConfigurations(minTextLength, waitingTime, maxSuggestions); | ||
} | ||
/** | ||
* Este método permite activar un Suggester específico. | ||
* @param suggester Tipo de suggester a activar. | ||
*/ | ||
enableSuggester(suggester) { | ||
@@ -94,2 +97,6 @@ let selectedSuggester = this.findSuggester(suggester); | ||
} | ||
/** | ||
* Este método permite desactivar un Suggester específico. | ||
* @param suggester Tipo de suggester a activar. | ||
*/ | ||
disableSuggester(suggester) { | ||
@@ -99,14 +106,33 @@ let selectedSuggester = this.findSuggester(suggester); | ||
} | ||
/** | ||
* Devuelve todos los suggesters disponibles. | ||
* @returns Un objeto con los suggesters disponibles. | ||
*/ | ||
getSuggesters() { | ||
return this.suggesters; | ||
} | ||
/** | ||
* Normaliza los distintos tipos de sugerencias según el tipo de suggester. | ||
* | ||
* @param suggesterName Nombre del suggester. | ||
* @param suggestions Sugerencias a normalizar. | ||
* @returns Sugerencias normalizadas. | ||
*/ | ||
normalizeSuggestions(suggesterName, suggestions) { | ||
let response = []; | ||
if (suggestions === null || suggestions === undefined) { | ||
return response.push({ error: true, type: SuggesterTypes[suggesterName], value: "No se encontraron sugerencias." }); | ||
return response.push({ | ||
error: true, | ||
type: SuggesterTypes[suggesterName], | ||
value: "No se encontraron sugerencias.", | ||
}); | ||
} | ||
if ("error" in suggestions) { | ||
response.push({ error: true, type: SuggesterTypes[suggesterName], value: suggestions.error, status_code: suggestions.status_code }); | ||
response.push({ | ||
error: true, | ||
type: SuggesterTypes[suggesterName], | ||
value: suggestions.error, | ||
status_code: suggestions.status_code, | ||
}); | ||
} | ||
// if (suggesterName.toString() in Object.keys(this.suggesters)) >>> NO FUNCIONA | ||
if (suggesterName == "AddressSuggester") { | ||
@@ -116,3 +142,7 @@ if (suggestions.length > 0) { | ||
if (!("error" in suggestion)) { | ||
response.push({ error: false, type: SuggesterTypes[suggesterName], value: suggestion.direccion }); | ||
response.push({ | ||
error: false, | ||
type: SuggesterTypes[suggesterName], | ||
value: suggestion.direccion, | ||
}); | ||
} | ||
@@ -126,3 +156,8 @@ }); | ||
if (!("error" in suggestion)) { | ||
response.push({ error: false, type: SuggesterTypes[suggesterName], value: suggestion.nombre, category: suggestion.categoria }); | ||
response.push({ | ||
error: false, | ||
type: SuggesterTypes[suggesterName], | ||
value: suggestion.nombre, | ||
category: suggestion.categoria, | ||
}); | ||
} | ||
@@ -134,3 +169,9 @@ }); | ||
} | ||
getSuggestions(input, suggester = "all") { | ||
/** | ||
* Obtiene las sugerencias para el input ingresado. | ||
* @param input Input de usuario. | ||
* @param suggester (Opcional) Tipo de sugeridor a considerar("all", "address", "place"). Default = "all". | ||
* @returns Sugerencias correspondientes a la input. | ||
*/ | ||
getSuggestions(input, typeSuggester = "all") { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
@@ -152,6 +193,6 @@ let response = []; | ||
response = response.flat(); | ||
if (suggester == "address") { | ||
if (typeSuggester == "address") { | ||
response = response.filter((element) => element.type == "address"); | ||
} | ||
else if (suggester == "place") { | ||
else if (typeSuggester == "place") { | ||
response = response.filter((element) => element.type == "place"); | ||
@@ -162,2 +203,7 @@ } | ||
} | ||
/** | ||
* Realiza una búsqueda utilizando las sugerencias proporcionadas. | ||
* @param suggestion Estructura de sugerencia o cadena de texto. | ||
* @returns El resultado de la búsqueda. | ||
*/ | ||
getSearch(suggestion) { | ||
@@ -181,3 +227,2 @@ return __awaiter(this, void 0, void 0, function* () { | ||
response = { errors: response }; | ||
console.log(">>", response); | ||
return { response }; | ||
@@ -201,6 +246,11 @@ } | ||
catch (error) { | ||
return { "error": true, msg: error }; | ||
return { error: true, msg: error }; | ||
} | ||
}); | ||
} | ||
/** | ||
* Realiza una búsqueda de direcciones utilizando las sugerencias proporcionadas. | ||
* @param address Dirección a buscar. | ||
* @returns El resultado de la búsqueda de direcciones. | ||
*/ | ||
getSearchAddress(address) { | ||
@@ -238,12 +288,17 @@ return __awaiter(this, void 0, void 0, function* () { | ||
else { | ||
return { "error": true, "msg": "AddressSuggester no está activo" }; | ||
return { error: true, msg: "AddressSuggester no está activo" }; | ||
} | ||
} | ||
return { "error": true, "msg": "No se encontró Suggester" }; | ||
return { error: true, msg: "No se encontró Suggester" }; | ||
} | ||
catch (error) { | ||
return { "error": true, msg: error }; | ||
return { error: true, msg: error }; | ||
} | ||
}); | ||
} | ||
/** | ||
* Realiza una búsqueda de lugares utilizando las sugerencias proporcionadas. | ||
* @param place Lugar a buscar. | ||
* @returns El resultado de la búsqueda de lugares. | ||
*/ | ||
getSearchPlaces(place) { | ||
@@ -281,9 +336,9 @@ return __awaiter(this, void 0, void 0, function* () { | ||
else { | ||
return { "error": true, "msg": "PlaceSuggester no está activo" }; | ||
return { error: true, msg: "PlaceSuggester no está activo" }; | ||
} | ||
} | ||
return { "error": true, "msg": "No se encontró Suggester" }; | ||
return { error: true, msg: "No se encontró Suggester" }; | ||
} | ||
catch (error) { | ||
return { "error": true, msg: error }; | ||
return { error: true, msg: error }; | ||
} | ||
@@ -290,0 +345,0 @@ }); |
@@ -36,3 +36,2 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
// if (this.active && place.length >= this.minTextLength) | ||
if (this.active) { | ||
@@ -57,3 +56,2 @@ return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { | ||
getFormattedSuggestions(suggestions) { | ||
// TODOD: reemplazar any por PlaceSuggestionResponse[] | ||
var _a; | ||
@@ -71,8 +69,9 @@ if (suggestions != null && "error" in suggestions) { | ||
if (Array.isArray(places)) { | ||
// Verifica si sitios es una matriz | ||
const results = places.map((place) => { | ||
return { nombre: place.nombre, categoria: place.categoria }; | ||
}); | ||
this.errorResponse = null; | ||
return results; | ||
} | ||
this.errorResponse = null; | ||
return response; | ||
@@ -79,0 +78,0 @@ } |
{ | ||
"name": "autocompleter-caba", | ||
"version": "0.1.1", | ||
"version": "0.1.2", | ||
"private": false, | ||
@@ -5,0 +5,0 @@ "description": "Un paquete para autocompletar datos geográficos.", |
@@ -35,11 +35,2 @@ # Documentación del Paquete Autocompleter | ||
## Creación de Suggesters | ||
El paquete proporciona dos tipos de suggesters: AddressSuggester y PlaceSuggester. Se puede crear instancias de estos suggesters utilizando el método createSuggester(suggester, minTextLength, waitingTime, maxSuggestions): | ||
```javascript | ||
autocompleter.createSuggester("AddressSuggester", 3, 500, 10); | ||
autocompleter.createSuggester("PlaceSuggester", 3, 500, 10); | ||
``` | ||
## Habilitar/Desactivar Suggesters | ||
@@ -59,3 +50,3 @@ | ||
```javascript | ||
const suggestions = await autocompleter.getSuggestions("123 Main Street"); | ||
const suggestions = await autocompleter.getSuggestions("Callao 520"); | ||
``` | ||
@@ -68,3 +59,3 @@ | ||
```javascript | ||
const searchResult = await autocompleter.getSearch("123 Main Street"); | ||
const searchResult = await autocompleter.getSearch("Callao 520"); | ||
``` | ||
@@ -77,3 +68,3 @@ | ||
```javascript | ||
const searchResult = await autocompleter.getSearchPlaces("restaurantes"); | ||
const searchResult = await autocompleter.getSearchPlaces("hospital"); | ||
``` | ||
@@ -83,15 +74,14 @@ | ||
## Funciones | ||
## Métodos | ||
- getClientId(): Devuelve el ID del cliente que ha sido previamente establecido mediante el método setCredentials(clientId, clientSecret). | ||
- getClientId(): Devuelve el atributo clientId. | ||
- getClientSecret(): Similar a getClientId(), devuelve el secreto del cliente que ha sido previamente establecido mediante el método setCredentials(clientId, clientSecret). | ||
- getClientSecret(): Devuelve el atributo clientSecret. | ||
- setCredentials(clientId: string, clientSecret: string): Permite establecer las credenciales del cliente proporcionando un ID de cliente y un secreto de cliente. | ||
- setCredentials(clientId: string, clientSecret: string): Permite establecer las credenciales del cliente proporcionando los atributos clientId y clientSecret. | ||
- findSuggester(suggesterType: SuggestersOptions): Busca y devuelve el suggester correspondiente según el tipo especificado. | ||
- createSuggester(suggester: SuggestersOptions, minTextLength: number, waitingTime: number, maxSuggestions: number): Crea un suggester del tipo especificado y configura sus opciones. | ||
- enableSuggester(suggester: SuggestersOptions): Permite habilitar un suggester específico. | ||
- enableSuggester(suggester: SuggestersOptions): Permite habilitar un suggester específico. | ||
- disableSuggester(suggester: SuggestersOptions): Desactiva un suggester específico. | ||
@@ -101,8 +91,10 @@ | ||
- getSuggestions(input: string): Busca sugerencias basadas en la entrada de texto proporcionada. | ||
- getSuggestions(input: string, typeSuggester: string): Busca sugerencias basadas en la entrada de texto proporcionada. TypeSuggester pueder ser "address" o "place", por dafault es "all". | ||
- getSearch(address: string): Busca direcciones basadas en la entrada de texto proporcionada. | ||
- getSearch(input: string): Busca información sobre la dirección o sitio de interés ingresado. | ||
- getSearchPlaces(place: string): Busca lugares de interés basados en la entrada de texto proporcionada. | ||
- getSearchPlaces(place: string): Busca información del sitios de interés ingresado. | ||
- getSearchAddress(address: string): Busca información de la dirección ingresada. | ||
## Notas | ||
@@ -109,0 +101,0 @@ |
AI-detected potential security risk
Supply chain riskAI has determined that this package may contain potential security issues or vulnerabilities.
Found 1 instance in 1 package
44251
1008
5
99