poe-api-manager 0.2.2 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/Changelog.md +4 -0
  2. package/lib/NinjaAPI.js +26 -4
  3. package/lib/WatchAPI.js +44 -0
  4. package/lib/config/poeNinja/url.js +9 -0
  5. package/lib/config/poeWatch/url.js +9 -0
  6. package/lib/modules/mainfunctions/filter/propertyFilter.js +18 -0
  7. package/lib/modules/poe.ninja/currency/CurrencyWievModule.js +39 -2
  8. package/lib/modules/poe.ninja/currency/currencyFetch/fetchCurrency.js +11 -3
  9. package/lib/modules/poe.ninja/currency/currencyFetch/merge/mergeData.js +7 -0
  10. package/lib/modules/poe.ninja/currency/currencySubmodules/functions/getData.js +23 -0
  11. package/lib/modules/poe.ninja/currency/currencySubmodules/subModules/CurrencyModule.js +45 -2
  12. package/lib/modules/poe.ninja/currency/currencySubmodules/subModules/FragmentModule.js +45 -2
  13. package/lib/modules/poe.ninja/item/ItemWievModule.js +135 -2
  14. package/lib/modules/poe.ninja/item/itemFetch/fetchItem.js +23 -2
  15. package/lib/modules/poe.ninja/item/itemSubmodules/functions/getData.js +19 -0
  16. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BaseTypeModule.js +41 -2
  17. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BeastModule.js +41 -2
  18. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BlightRavagedMapModule.js +46 -2
  19. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BlightedMapModule.js +43 -2
  20. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ClusterJewelModule.js +46 -2
  21. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/DeliriumOrbsModule.js +46 -2
  22. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/DivinationCardModule.js +46 -2
  23. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/EssenceModule.js +46 -2
  24. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/FossilModule.js +46 -2
  25. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/HelmetEnchantModule.js +46 -2
  26. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/IncubatorModule.js +46 -2
  27. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/InvitationModule.js +46 -2
  28. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/MapModule.js +46 -2
  29. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/MemoryModule.js +46 -2
  30. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/OilModule.js +46 -2
  31. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/OmenModule.js +46 -2
  32. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ResonatorModule.js +46 -2
  33. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ScarabModule.js +46 -2
  34. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/SkillGemModule.js +46 -2
  35. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueAccessoryModule.js +46 -2
  36. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueArmourModule.js +46 -2
  37. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueFlaskModule.js +46 -2
  38. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueJewelModule.js +46 -2
  39. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueMapModule.js +46 -2
  40. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueRelicModule.js +46 -2
  41. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueWeaponModule.js +46 -2
  42. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/VialsModule.js +46 -2
  43. package/lib/modules/poe.watch/WatchWievModule.js +106 -4
  44. package/lib/modules/poe.watch/allModules/fetch/fetch.js +11 -2
  45. package/lib/modules/poe.watch/allModules/functions/getData.js +20 -1
  46. package/lib/modules/poe.watch/allModules/submodules/AccessoryModule.js +47 -1
  47. package/lib/modules/poe.watch/allModules/submodules/ArmourModule.js +47 -1
  48. package/lib/modules/poe.watch/allModules/submodules/BaseModule.js +47 -1
  49. package/lib/modules/poe.watch/allModules/submodules/BeastModule.js +47 -1
  50. package/lib/modules/poe.watch/allModules/submodules/CurrencyModule.js +49 -2
  51. package/lib/modules/poe.watch/allModules/submodules/DeliriumOrbModule.js +47 -1
  52. package/lib/modules/poe.watch/allModules/submodules/DivsModule.js +47 -1
  53. package/lib/modules/poe.watch/allModules/submodules/EssenceModule.js +47 -1
  54. package/lib/modules/poe.watch/allModules/submodules/FlaskModule.js +47 -1
  55. package/lib/modules/poe.watch/allModules/submodules/FossilModule.js +47 -1
  56. package/lib/modules/poe.watch/allModules/submodules/FragmentModule.js +47 -1
  57. package/lib/modules/poe.watch/allModules/submodules/GemModule.js +47 -1
  58. package/lib/modules/poe.watch/allModules/submodules/InscribedModule.js +49 -1
  59. package/lib/modules/poe.watch/allModules/submodules/InvitationModule.js +47 -1
  60. package/lib/modules/poe.watch/allModules/submodules/JewelModule.js +47 -1
  61. package/lib/modules/poe.watch/allModules/submodules/MapModule.js +47 -1
  62. package/lib/modules/poe.watch/allModules/submodules/OilModule.js +47 -1
  63. package/lib/modules/poe.watch/allModules/submodules/ScarabModule.js +47 -1
  64. package/lib/modules/poe.watch/allModules/submodules/SextantModule.js +47 -1
  65. package/lib/modules/poe.watch/allModules/submodules/UniqueMapsModule.js +47 -1
  66. package/lib/modules/poe.watch/allModules/submodules/WeaponModule.js +47 -1
  67. package/package.json +1 -1
@@ -1,13 +1,28 @@
1
1
  const fetchData = require("../../itemFetch/fetchItem");
2
2
  const filterProperties = require("../../../../mainfunctions/filter/propertyFilter");
3
3
 
4
+ /**
5
+ * Asynchronously fetches and filters item-related data from a specified URL.
6
+ *
7
+ * @param {string} url - The URL to fetch item-related data from.
8
+ * @param {string} type - The type of item data to fetch.
9
+ * @param {Array<string>} [requestedProperties] - (Optional) An array of property names to include in the filtered result.
10
+ * @returns {Promise<Array<Object>|Object>} - A promise that resolves to the fetched or filtered item data.
11
+ * @throws {Error} - Throws an error if there's an issue fetching or processing the data.
12
+ */
4
13
  async function getData(url, type, requestedProperties) {
5
14
  try {
6
15
  // Fetch data using the fetchData function
16
+ /**
17
+ * @type {Array<Object>|Object} fetchedData - The fetched item data.
18
+ */
7
19
  const fetchedData = await fetchData(url, type);
8
20
 
9
21
  // If requestedProperties are specified, filter the data based on those properties
10
22
  if (requestedProperties) {
23
+ /**
24
+ * @type {Array<Object>|Object} result - The filtered item data based on requested properties.
25
+ */
11
26
  const result = filterProperties(fetchedData, requestedProperties);
12
27
  return result;
13
28
  } else {
@@ -15,6 +30,10 @@ async function getData(url, type, requestedProperties) {
15
30
  return fetchedData;
16
31
  }
17
32
  } catch (error) {
33
+ /**
34
+ * Throws an error if there's an issue fetching or processing the item data.
35
+ * @throws {Error}
36
+ */
18
37
  throw new Error(`Error fetching data: ${error.message}`);
19
38
  }
20
39
  }
@@ -1,17 +1,56 @@
1
1
  const getData = require("../functions/getData");
2
2
 
3
+ /**
4
+ * Module for retrieving base type item information.
5
+ * @class
6
+ */
3
7
  class BaseTypeModule {
4
8
  #url;
5
9
  #type;
10
+ /**
11
+ * Creates a new instance of BaseTypeModule.
12
+ * @constructor
13
+ * @param {string} url - The URL for fetching base type item information.
14
+ */
6
15
  constructor(url) {
16
+ /**
17
+ * @type {string} #url - The URL for fetching base type item information.
18
+ * @private
19
+ */
7
20
  this.#url = url;
21
+
22
+ /**
23
+ * @type {string} #type - The type of item data (BaseType).
24
+ * @private
25
+ */
8
26
  this.#type = "BaseType";
9
27
  }
10
28
 
29
+ /**
30
+ * Asynchronously retrieves base type item information.
31
+ *
32
+ * @async
33
+ * @method
34
+ * @param {Array<string>} requestedProperties - An array of property names to include in the result.
35
+ * @returns {Promise<Array<Object>>} A promise that resolves to the fetched item data.
36
+ * @throws {Error} Throws an error if there's an issue with the data fetching process.
37
+ *
38
+ */
11
39
  async getData(requestedProperties) {
12
- return getData(this.#url, this.#type, requestedProperties);
40
+ try {
41
+ /**
42
+ * Calls the getData function to fetch Base Type data.
43
+ * @type {Promise<Array<Object>>}
44
+ */
45
+ return getData(this.#url, this.#type, requestedProperties);
46
+ } catch (error) {
47
+ /**
48
+ * Throws an error if there's an issue fetching or processing the Base Type data.
49
+ * @throws {Error}
50
+ */
51
+ throw new Error(`Error fetching Base Type data: ${error.message}`);
52
+ }
13
53
  }
14
54
  }
15
55
 
16
- //export BaseTypeModule;
17
56
  module.exports = BaseTypeModule;
@@ -1,17 +1,56 @@
1
1
  const getData = require("../functions/getData");
2
2
 
3
+ /**
4
+ * Module for retrieving information about beasts.
5
+ * @class
6
+ */
3
7
  class BeastModule {
4
8
  #url;
5
9
  #type;
10
+ /**
11
+ * Creates a new instance of BeastModule.
12
+ * @constructor
13
+ * @param {string} url - The URL for fetching beast information.
14
+ */
6
15
  constructor(url) {
16
+ /**
17
+ * @type {string} #url - The URL for fetching beast information.
18
+ * @private
19
+ */
7
20
  this.#url = url;
21
+
22
+ /**
23
+ * @type {string} #type - The type of data (Beast).
24
+ * @private
25
+ */
8
26
  this.#type = "Beast";
9
27
  }
10
28
 
29
+ /**
30
+ * Asynchronously retrieves beast information.
31
+ *
32
+ * @async
33
+ * @method
34
+ * @param {Array<string>} requestedProperties - An array of property names to include in the result.
35
+ * @returns {Promise<Array<Object>>} A promise that resolves to the fetched beast data.
36
+ * @throws {Error} Throws an error if there's an issue with the data fetching process.
37
+ *
38
+ */
11
39
  async getData(requestedProperties) {
12
- return getData(this.#url, this.#type, requestedProperties);
40
+ try {
41
+ /**
42
+ * Calls the getData function to fetch Beast data.
43
+ * @type {Promise<Array<Object>>}
44
+ */
45
+ return getData(this.#url, this.#type, requestedProperties);
46
+ } catch (error) {
47
+ /**
48
+ * Throws an error if there's an issue fetching or processing the Beast data.
49
+ * @throws {Error}
50
+ */
51
+ throw new Error(`Error fetching Beast data: ${error.message}`);
52
+ }
13
53
  }
14
54
  }
15
55
 
16
- //export BeastModule;
17
56
  module.exports = BeastModule;
@@ -1,17 +1,61 @@
1
1
  const getData = require("../functions/getData");
2
2
 
3
+ /**
4
+ * Represents a module for fetching data related to Blight Ravaged Maps.
5
+ *
6
+ * @class
7
+ */
3
8
  class BlightRavagedMapModule {
9
+ /**
10
+ * The URL for fetching data.
11
+ *
12
+ * @private
13
+ * @type {string}
14
+ */
4
15
  #url;
16
+
17
+ /**
18
+ * The type of data (BlightRavagedMap in this case).
19
+ *
20
+ * @private
21
+ * @type {string}
22
+ */
5
23
  #type;
24
+
25
+ /**
26
+ * Creates an instance of BlightRavagedMapModule.
27
+ *
28
+ * @param {string} url - The URL to fetch data from.
29
+ */
6
30
  constructor(url) {
7
31
  this.#url = url;
8
32
  this.#type = "BlightRavagedMap";
9
33
  }
10
34
 
35
+ /**
36
+ * Asynchronously retrieves data based on the specified properties.
37
+ *
38
+ * @async
39
+ * @param {Array<string>} requestedProperties - An array of properties to retrieve.
40
+ * @returns {Promise<Object>} A promise that resolves to the retrieved data.
41
+ */
11
42
  async getData(requestedProperties) {
12
- return getData(this.#url, this.#type, requestedProperties);
43
+ try {
44
+ /**
45
+ * Calls the getData function to fetch BlightRavagedMap data.
46
+ *
47
+ * @type {Promise<Array<Object>>}
48
+ */
49
+ return getData(this.#url, this.#type, requestedProperties);
50
+ } catch (error) {
51
+ /**
52
+ * Throws an error if there's an issue fetching or processing the BlightRavagedMap data.
53
+ *
54
+ * @throws {Error}
55
+ */
56
+ throw new Error(`Error fetching BlightRavagedMap data: ${error.message}`);
57
+ }
13
58
  }
14
59
  }
15
60
 
16
- //export BlightRavagedMapModule;
17
61
  module.exports = BlightRavagedMapModule;
@@ -1,17 +1,58 @@
1
1
  const getData = require("../functions/getData");
2
2
 
3
+ /**
4
+ * Represents a module for fetching data related to Blighted Maps.
5
+ *
6
+ * @class
7
+ */
3
8
  class BlightedMapModule {
9
+ /**
10
+ * The URL for fetching data.
11
+ *
12
+ * @private
13
+ * @type {string}
14
+ */
4
15
  #url;
16
+
17
+ /**
18
+ * The type of data (BlightedMap in this case).
19
+ *
20
+ * @private
21
+ * @type {string}
22
+ */
5
23
  #type;
24
+ /**
25
+ * Creates an instance of BlightedMapModule.
26
+ *
27
+ * @param {string} url - The URL to fetch data from.
28
+ */
6
29
  constructor(url) {
7
30
  this.#url = url;
8
31
  this.#type = "BlightedMap";
9
32
  }
10
33
 
34
+ /**
35
+ * Asynchronously retrieves data based on the specified properties.
36
+ *
37
+ * @async
38
+ * @param {Array<string>} requestedProperties - An array of properties to retrieve.
39
+ * @returns {Promise<Object>} A promise that resolves to the retrieved data.
40
+ */
11
41
  async getData(requestedProperties) {
12
- return getData(this.#url, this.#type, requestedProperties);
42
+ try {
43
+ /**
44
+ * Calls the getData function to fetch BlightedMap data.
45
+ * @type {Promise<Array<Object>>}
46
+ */
47
+ return getData(this.#url, this.#type, requestedProperties);
48
+ } catch (error) {
49
+ /**
50
+ * Throws an error if there's an issue fetching or processing the BlightedMap data.
51
+ * @throws {Error}
52
+ */
53
+ throw new Error(`Error fetching BlightedMap data: ${error.message}`);
54
+ }
13
55
  }
14
56
  }
15
57
 
16
- //export BlightedMapModule;
17
58
  module.exports = BlightedMapModule;
@@ -1,17 +1,61 @@
1
1
  const getData = require("../functions/getData");
2
2
 
3
+ /**
4
+ * Represents a module for fetching data related to Cluster Jewels.
5
+ *
6
+ * @class
7
+ */
3
8
  class ClusterJewelModule {
9
+ /**
10
+ * The URL for fetching data.
11
+ *
12
+ * @private
13
+ * @type {string}
14
+ */
4
15
  #url;
16
+
17
+ /**
18
+ * The type of data (ClusterJewel in this case).
19
+ *
20
+ * @private
21
+ * @type {string}
22
+ */
5
23
  #type;
24
+
25
+ /**
26
+ * Creates an instance of ClusterJewelModule.
27
+ *
28
+ * @param {string} url - The URL to fetch data from.
29
+ */
6
30
  constructor(url) {
7
31
  this.#url = url;
8
32
  this.#type = "ClusterJewel";
9
33
  }
10
34
 
35
+ /**
36
+ * Asynchronously retrieves data based on the specified properties.
37
+ *
38
+ * @async
39
+ * @param {Array<string>} requestedProperties - An array of properties to retrieve.
40
+ * @returns {Promise<Object>} A promise that resolves to the retrieved data.
41
+ */
11
42
  async getData(requestedProperties) {
12
- return getData(this.#url, this.#type, requestedProperties);
43
+ try {
44
+ /**
45
+ * Calls the getData function to fetch ClusterJewel data.
46
+ *
47
+ * @type {Promise<Array<Object>>}
48
+ */
49
+ return getData(this.#url, this.#type, requestedProperties);
50
+ } catch (error) {
51
+ /**
52
+ * Throws an error if there's an issue fetching or processing the ClusterJewel data.
53
+ *
54
+ * @throws {Error}
55
+ */
56
+ throw new Error(`Error fetching ClusterJewel data: ${error.message}`);
57
+ }
13
58
  }
14
59
  }
15
60
 
16
- //export ClusterJewelModule;
17
61
  module.exports = ClusterJewelModule;
@@ -1,17 +1,61 @@
1
1
  const getData = require("../functions/getData");
2
2
 
3
+ /**
4
+ * Represents a module for fetching data related to Delirium Orbs.
5
+ *
6
+ * @class
7
+ */
3
8
  class DeliriumOrbsModule {
9
+ /**
10
+ * The URL for fetching data.
11
+ *
12
+ * @private
13
+ * @type {string}
14
+ */
4
15
  #url;
16
+
17
+ /**
18
+ * The type of data (DeliriumOrb in this case).
19
+ *
20
+ * @private
21
+ * @type {string}
22
+ */
5
23
  #type;
24
+
25
+ /**
26
+ * Creates an instance of DeliriumOrbsModule.
27
+ *
28
+ * @param {string} url - The URL to fetch data from.
29
+ */
6
30
  constructor(url) {
7
31
  this.#url = url;
8
32
  this.#type = "DeliriumOrb";
9
33
  }
10
34
 
35
+ /**
36
+ * Asynchronously retrieves data based on the specified properties.
37
+ *
38
+ * @async
39
+ * @param {Array<string>} requestedProperties - An array of properties to retrieve.
40
+ * @returns {Promise<Object>} A promise that resolves to the retrieved data.
41
+ */
11
42
  async getData(requestedProperties) {
12
- return getData(this.#url, this.#type, requestedProperties);
43
+ try {
44
+ /**
45
+ * Calls the getData function to fetch DeliriumOrb data.
46
+ *
47
+ * @type {Promise<Array<Object>>}
48
+ */
49
+ return getData(this.#url, this.#type, requestedProperties);
50
+ } catch (error) {
51
+ /**
52
+ * Throws an error if there's an issue fetching or processing the DeliriumOrb data.
53
+ *
54
+ * @throws {Error}
55
+ */
56
+ throw new Error(`Error fetching DeliriumOrb data: ${error.message}`);
57
+ }
13
58
  }
14
59
  }
15
60
 
16
- //export DeliriumOrbsModule;
17
61
  module.exports = DeliriumOrbsModule;
@@ -1,17 +1,61 @@
1
1
  const getData = require("../functions/getData");
2
2
 
3
+ /**
4
+ * Represents a module for fetching data related to Divination Cards.
5
+ *
6
+ * @class
7
+ */
3
8
  class DivinationCardModule {
9
+ /**
10
+ * The URL for fetching data.
11
+ *
12
+ * @private
13
+ * @type {string}
14
+ */
4
15
  #url;
16
+
17
+ /**
18
+ * The type of data (DivinationCard in this case).
19
+ *
20
+ * @private
21
+ * @type {string}
22
+ */
5
23
  #type;
24
+
25
+ /**
26
+ * Creates an instance of DivinationCardModule.
27
+ *
28
+ * @param {string} url - The URL to fetch data from.
29
+ */
6
30
  constructor(url) {
7
31
  this.#url = url;
8
32
  this.#type = "DivinationCard";
9
33
  }
10
34
 
35
+ /**
36
+ * Asynchronously retrieves data based on the specified properties.
37
+ *
38
+ * @async
39
+ * @param {Array<string>} requestedProperties - An array of properties to retrieve.
40
+ * @returns {Promise<Object>} A promise that resolves to the retrieved data.
41
+ */
11
42
  async getData(requestedProperties) {
12
- return getData(this.#url, this.#type, requestedProperties);
43
+ try {
44
+ /**
45
+ * Calls the getData function to fetch DivinationCard data.
46
+ *
47
+ * @type {Promise<Array<Object>>}
48
+ */
49
+ return getData(this.#url, this.#type, requestedProperties);
50
+ } catch (error) {
51
+ /**
52
+ * Throws an error if there's an issue fetching or processing the DivinationCard data.
53
+ *
54
+ * @throws {Error}
55
+ */
56
+ throw new Error(`Error fetching DivinationCard data: ${error.message}`);
57
+ }
13
58
  }
14
59
  }
15
60
 
16
- //export DivinationCardModule;
17
61
  module.exports = DivinationCardModule;
@@ -1,17 +1,61 @@
1
1
  const getData = require("../functions/getData");
2
2
 
3
+ /**
4
+ * Represents a module for fetching data related to Essences.
5
+ *
6
+ * @class
7
+ */
3
8
  class EssenceModule {
9
+ /**
10
+ * The URL for fetching data.
11
+ *
12
+ * @private
13
+ * @type {string}
14
+ */
4
15
  #url;
16
+
17
+ /**
18
+ * The type of data (Essence in this case).
19
+ *
20
+ * @private
21
+ * @type {string}
22
+ */
5
23
  #type;
24
+
25
+ /**
26
+ * Creates an instance of EssenceModule.
27
+ *
28
+ * @param {string} url - The URL to fetch data from.
29
+ */
6
30
  constructor(url) {
7
31
  this.#url = url;
8
32
  this.#type = "Essence";
9
33
  }
10
34
 
35
+ /**
36
+ * Asynchronously retrieves data based on the specified properties.
37
+ *
38
+ * @async
39
+ * @param {Array<string>} requestedProperties - An array of properties to retrieve.
40
+ * @returns {Promise<Object>} A promise that resolves to the retrieved data.
41
+ */
11
42
  async getData(requestedProperties) {
12
- return getData(this.#url, this.#type, requestedProperties);
43
+ try {
44
+ /**
45
+ * Calls the getData function to fetch Essence data.
46
+ *
47
+ * @type {Promise<Array<Object>>}
48
+ */
49
+ return getData(this.#url, this.#type, requestedProperties);
50
+ } catch (error) {
51
+ /**
52
+ * Throws an error if there's an issue fetching or processing the Essence data.
53
+ *
54
+ * @throws {Error}
55
+ */
56
+ throw new Error(`Error fetching Essence data: ${error.message}`);
57
+ }
13
58
  }
14
59
  }
15
60
 
16
- //export EssenceModule;
17
61
  module.exports = EssenceModule;
@@ -1,17 +1,61 @@
1
1
  const getData = require("../functions/getData");
2
2
 
3
+ /**
4
+ * Represents a module for fetching data related to Fossils.
5
+ *
6
+ * @class
7
+ */
3
8
  class FossilModule {
9
+ /**
10
+ * The URL for fetching data.
11
+ *
12
+ * @private
13
+ * @type {string}
14
+ */
4
15
  #url;
16
+
17
+ /**
18
+ * The type of data (Fossil in this case).
19
+ *
20
+ * @private
21
+ * @type {string}
22
+ */
5
23
  #type;
24
+
25
+ /**
26
+ * Creates an instance of FossilModule.
27
+ *
28
+ * @param {string} url - The URL to fetch data from.
29
+ */
6
30
  constructor(url) {
7
31
  this.#url = url;
8
32
  this.#type = "Fossil";
9
33
  }
10
34
 
35
+ /**
36
+ * Asynchronously retrieves data based on the specified properties.
37
+ *
38
+ * @async
39
+ * @param {Array<string>} requestedProperties - An array of properties to retrieve.
40
+ * @returns {Promise<Object>} A promise that resolves to the retrieved data.
41
+ */
11
42
  async getData(requestedProperties) {
12
- return getData(this.#url, this.#type, requestedProperties);
43
+ try {
44
+ /**
45
+ * Calls the getData function to fetch Fossil data.
46
+ *
47
+ * @type {Promise<Array<Object>>}
48
+ */
49
+ return getData(this.#url, this.#type, requestedProperties);
50
+ } catch (error) {
51
+ /**
52
+ * Throws an error if there's an issue fetching or processing the Fossil data.
53
+ *
54
+ * @throws {Error}
55
+ */
56
+ throw new Error(`Error fetching Fossil data: ${error.message}`);
57
+ }
13
58
  }
14
59
  }
15
60
 
16
- //export FossilModule;
17
61
  module.exports = FossilModule;
@@ -1,17 +1,61 @@
1
1
  const getData = require("../functions/getData");
2
2
 
3
+ /**
4
+ * Represents a module for fetching data related to Helmet Enchants.
5
+ *
6
+ * @class
7
+ */
3
8
  class HelmetEnchantModule {
9
+ /**
10
+ * The URL for fetching data.
11
+ *
12
+ * @private
13
+ * @type {string}
14
+ */
4
15
  #url;
16
+
17
+ /**
18
+ * The type of data (HelmetEnchant in this case).
19
+ *
20
+ * @private
21
+ * @type {string}
22
+ */
5
23
  #type;
24
+
25
+ /**
26
+ * Creates an instance of HelmetEnchantModule.
27
+ *
28
+ * @param {string} url - The URL to fetch data from.
29
+ */
6
30
  constructor(url) {
7
31
  this.#url = url;
8
32
  this.#type = "HelmetEnchant";
9
33
  }
10
34
 
35
+ /**
36
+ * Asynchronously retrieves data based on the specified properties.
37
+ *
38
+ * @async
39
+ * @param {Array<string>} requestedProperties - An array of properties to retrieve.
40
+ * @returns {Promise<Object>} A promise that resolves to the retrieved data.
41
+ */
11
42
  async getData(requestedProperties) {
12
- return getData(this.#url, this.#type, requestedProperties);
43
+ try {
44
+ /**
45
+ * Calls the getData function to fetch HelmetEnchant data.
46
+ *
47
+ * @type {Promise<Array<Object>>}
48
+ */
49
+ return getData(this.#url, this.#type, requestedProperties);
50
+ } catch (error) {
51
+ /**
52
+ * Throws an error if there's an issue fetching or processing the HelmetEnchant data.
53
+ *
54
+ * @throws {Error}
55
+ */
56
+ throw new Error(`Error fetching HelmetEnchant data: ${error.message}`);
57
+ }
13
58
  }
14
59
  }
15
60
 
16
- //export HelmetEnchantModule;
17
61
  module.exports = HelmetEnchantModule;