whatsapp-web.js/src/structures/Location.js
alechkos ecf19eb9a5
fix: sending locations (#2339)
* added function to to modify module functions

* fix for locations to be sent

* changes for class Location

- description property was splited into name and address
- added url property
- added ability to pass name, address and url as options while creating an instance

* docs updated

* usage example updated

* added url checking

* fixed url

* updated location property in Message class

* fixed url when http prefix is provided

* injectToFunction updated to be more flexible

* docs clarification

* ESLint fix

* fix: injectToFunction fixed to work properly

* minor fix in injectToFunction

* refactor: added usage of url validator

* small change to improve performance for findImpl fix

* window.compareWwebVersions fixed
2023-09-20 23:11:52 +03:00

61 lines
No EOL
1.4 KiB
JavaScript

'use strict';
/**
* Location send options
* @typedef {Object} LocationSendOptions
* @property {string} [name] Location name
* @property {string} [address] Location address
* @property {string} [url] URL address to be shown within a location message
*/
/**
* Location information
*/
class Location {
/**
* @param {number} latitude
* @param {number} longitude
* @param {LocationSendOptions} [options] Location send options
*/
constructor(latitude, longitude, options = {}) {
/**
* Location latitude
* @type {number}
*/
this.latitude = latitude;
/**
* Location longitude
* @type {number}
*/
this.longitude = longitude;
/**
* Name for the location
* @type {string|undefined}
*/
this.name = options.name;
/**
* Location address
* @type {string|undefined}
*/
this.address = options.address;
/**
* URL address to be shown within a location message
* @type {string|undefined}
*/
this.url = options.url;
/**
* Location full description
* @type {string|undefined}
*/
this.description = this.name && this.address
? `${this.name}\n${this.address}`
: this.name || this.address || '';
}
}
module.exports = Location;