poe-api-manager 0.1.0 → 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.
- package/Changelog.md +11 -2
- package/README.md +78 -17
- package/index.js +5 -1
- package/lib/NinjaAPI.js +27 -5
- package/lib/WatchAPI.js +56 -0
- package/lib/config/poeNinja/url.js +9 -0
- package/lib/config/poeWatch/url.js +12 -0
- package/lib/modules/mainfunctions/filter/propertyFilter.js +36 -0
- package/lib/modules/poe.ninja/currency/CurrencyWievModule.js +44 -5
- package/lib/modules/poe.ninja/currency/currencyFetch/fetchCurrency.js +11 -3
- package/lib/modules/poe.ninja/currency/currencyFetch/merge/mergeData.js +7 -0
- package/lib/modules/poe.ninja/currency/currencySubmodules/functions/getData.js +24 -1
- package/lib/modules/poe.ninja/currency/currencySubmodules/subModules/CurrencyModule.js +50 -4
- package/lib/modules/poe.ninja/currency/currencySubmodules/subModules/FragmentModule.js +50 -4
- package/lib/modules/poe.ninja/item/ItemWievModule.js +140 -5
- package/lib/modules/poe.ninja/item/itemFetch/fetchItem.js +23 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/functions/getData.js +20 -1
- package/lib/modules/poe.ninja/item/itemSubmodules/itemSubModules.js +0 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BaseTypeModule.js +45 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BeastModule.js +45 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BlightRavagedMapModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BlightedMapModule.js +47 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ClusterJewelModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/DeliriumOrbsModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/DivinationCardModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/EssenceModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/FossilModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/HelmetEnchantModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/IncubatorModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/InvitationModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/MapModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/MemoryModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/OilModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/OmenModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ResonatorModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ScarabModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/SkillGemModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueAccessoryModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueArmourModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueFlaskModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueJewelModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueMapModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueRelicModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueWeaponModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/VialsModule.js +50 -4
- package/lib/modules/poe.watch/WatchWievModule.js +130 -0
- package/lib/modules/poe.watch/allModules/Modules.js +23 -0
- package/lib/modules/poe.watch/allModules/fetch/fetch.js +28 -0
- package/lib/modules/poe.watch/allModules/functions/getData.js +39 -0
- package/lib/modules/poe.watch/allModules/submodules/AccessoryModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/ArmourModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/BaseModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/BeastModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/CurrencyModule.js +60 -0
- package/lib/modules/poe.watch/allModules/submodules/DeliriumOrbModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/DivsModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/EssenceModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/FlaskModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/FossilModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/FragmentModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/GemModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/InscribedModule.js +61 -0
- package/lib/modules/poe.watch/allModules/submodules/InvitationModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/JewelModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/MapModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/OilModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/ScarabModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/SextantModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/UniqueMapsModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/WeaponModule.js +59 -0
- package/package.json +13 -5
- package/lib/modules/filter/propertyFilter.js +0 -18
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const getData = require("../functions/getData");
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Represents a module for fetching data related to Scarabs.
|
|
5
|
+
*
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
8
|
+
class ScarabModule {
|
|
9
|
+
/**
|
|
10
|
+
* The query URL for fetching Scarab data.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
15
|
+
#queryUrl;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Creates an instance of ScarabModule.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} leagueUrl - The league URL to fetch data from.
|
|
21
|
+
*/
|
|
22
|
+
constructor(leagueUrl) {
|
|
23
|
+
/**
|
|
24
|
+
* The constructed query URL for fetching Scarab data.
|
|
25
|
+
*
|
|
26
|
+
* @private
|
|
27
|
+
* @type {string}
|
|
28
|
+
*/
|
|
29
|
+
this.#queryUrl = `scarab${leagueUrl}`;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Asynchronously retrieves Scarab data based on the specified properties.
|
|
34
|
+
*
|
|
35
|
+
* @async
|
|
36
|
+
* @param {Array<string>} requestedProperties - An array of properties to retrieve.
|
|
37
|
+
* @returns {Promise<Object>} A promise that resolves to the retrieved data.
|
|
38
|
+
*/
|
|
39
|
+
async getData(requestedProperties) {
|
|
40
|
+
try {
|
|
41
|
+
/**
|
|
42
|
+
* Calls the getData function to fetch Scarab data.
|
|
43
|
+
*
|
|
44
|
+
* @type {Promise<Array<Object>>}
|
|
45
|
+
*/
|
|
46
|
+
return getData(this.#queryUrl, requestedProperties);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
/**
|
|
49
|
+
* Throws an error if there's an issue fetching or processing the Scarab data.
|
|
50
|
+
*
|
|
51
|
+
* @throws {Error}
|
|
52
|
+
*/
|
|
53
|
+
throw new Error(`Error fetching Scarab data: ${error.message}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Export the ScarabModule class
|
|
59
|
+
module.exports = ScarabModule;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const getData = require("../functions/getData");
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Represents a module for fetching data related to Sextants.
|
|
5
|
+
*
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
8
|
+
class SextantModule {
|
|
9
|
+
/**
|
|
10
|
+
* The query URL for fetching Sextant data.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
15
|
+
#queryUrl;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Creates an instance of SextantModule.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} leagueUrl - The league URL to fetch data from.
|
|
21
|
+
*/
|
|
22
|
+
constructor(leagueUrl) {
|
|
23
|
+
/**
|
|
24
|
+
* The constructed query URL for fetching Sextant data.
|
|
25
|
+
*
|
|
26
|
+
* @private
|
|
27
|
+
* @type {string}
|
|
28
|
+
*/
|
|
29
|
+
this.#queryUrl = `sextants${leagueUrl}`;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Asynchronously retrieves Sextant data based on the specified properties.
|
|
34
|
+
*
|
|
35
|
+
* @async
|
|
36
|
+
* @param {Array<string>} requestedProperties - An array of properties to retrieve.
|
|
37
|
+
* @returns {Promise<Object>} A promise that resolves to the retrieved data.
|
|
38
|
+
*/
|
|
39
|
+
async getData(requestedProperties) {
|
|
40
|
+
try {
|
|
41
|
+
/**
|
|
42
|
+
* Calls the getData function to fetch Sextant data.
|
|
43
|
+
*
|
|
44
|
+
* @type {Promise<Array<Object>>}
|
|
45
|
+
*/
|
|
46
|
+
return getData(this.#queryUrl, requestedProperties);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
/**
|
|
49
|
+
* Throws an error if there's an issue fetching or processing the Sextant data.
|
|
50
|
+
*
|
|
51
|
+
* @throws {Error}
|
|
52
|
+
*/
|
|
53
|
+
throw new Error(`Error fetching Sextant data: ${error.message}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Export the SextantModule class
|
|
59
|
+
module.exports = SextantModule;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const getData = require("../functions/getData");
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Represents a module for fetching data related to Unique Maps.
|
|
5
|
+
*
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
8
|
+
class UniqueMapsModule {
|
|
9
|
+
/**
|
|
10
|
+
* The query URL for fetching Unique Maps data.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
15
|
+
#queryUrl;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Creates an instance of UniqueMapsModule.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} leagueUrl - The league URL to fetch data from.
|
|
21
|
+
*/
|
|
22
|
+
constructor(leagueUrl) {
|
|
23
|
+
/**
|
|
24
|
+
* The constructed query URL for fetching Unique Maps data.
|
|
25
|
+
*
|
|
26
|
+
* @private
|
|
27
|
+
* @type {string}
|
|
28
|
+
*/
|
|
29
|
+
this.#queryUrl = `currency${leagueUrl}`;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Asynchronously retrieves Unique Maps data based on the specified properties.
|
|
34
|
+
*
|
|
35
|
+
* @async
|
|
36
|
+
* @param {Array<string>} requestedProperties - An array of properties to retrieve.
|
|
37
|
+
* @returns {Promise<Object>} A promise that resolves to the retrieved data.
|
|
38
|
+
*/
|
|
39
|
+
async getData(requestedProperties) {
|
|
40
|
+
try {
|
|
41
|
+
/**
|
|
42
|
+
* Calls the getData function to fetch Unique Maps data.
|
|
43
|
+
*
|
|
44
|
+
* @type {Promise<Array<Object>>}
|
|
45
|
+
*/
|
|
46
|
+
return getData(this.#queryUrl, requestedProperties);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
/**
|
|
49
|
+
* Throws an error if there's an issue fetching or processing the Unique Maps data.
|
|
50
|
+
*
|
|
51
|
+
* @throws {Error}
|
|
52
|
+
*/
|
|
53
|
+
throw new Error(`Error fetching Unique Maps data: ${error.message}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Export the UniqueMapsModule class
|
|
59
|
+
module.exports = UniqueMapsModule;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const getData = require("../functions/getData");
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Represents a module for fetching data related to Weapons.
|
|
5
|
+
*
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
8
|
+
class WeaponModule {
|
|
9
|
+
/**
|
|
10
|
+
* The query URL for fetching Weapon data.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
15
|
+
#queryUrl;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Creates an instance of WeaponModule.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} leagueUrl - The league URL to fetch data from.
|
|
21
|
+
*/
|
|
22
|
+
constructor(leagueUrl) {
|
|
23
|
+
/**
|
|
24
|
+
* The constructed query URL for fetching Weapon data.
|
|
25
|
+
*
|
|
26
|
+
* @private
|
|
27
|
+
* @type {string}
|
|
28
|
+
*/
|
|
29
|
+
this.#queryUrl = `weapon${leagueUrl}`;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Asynchronously retrieves Weapon data based on the specified properties.
|
|
34
|
+
*
|
|
35
|
+
* @async
|
|
36
|
+
* @param {Array<string>} requestedProperties - An array of properties to retrieve.
|
|
37
|
+
* @returns {Promise<Object>} A promise that resolves to the retrieved data.
|
|
38
|
+
*/
|
|
39
|
+
async getData(requestedProperties) {
|
|
40
|
+
try {
|
|
41
|
+
/**
|
|
42
|
+
* Calls the getData function to fetch Weapon data.
|
|
43
|
+
*
|
|
44
|
+
* @type {Promise<Array<Object>>}
|
|
45
|
+
*/
|
|
46
|
+
return getData(this.#queryUrl, requestedProperties);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
/**
|
|
49
|
+
* Throws an error if there's an issue fetching or processing the Weapon data.
|
|
50
|
+
*
|
|
51
|
+
* @throws {Error}
|
|
52
|
+
*/
|
|
53
|
+
throw new Error(`Error fetching Weapon data: ${error.message}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Export the WeaponModule class
|
|
59
|
+
module.exports = WeaponModule;
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "poe-api-manager",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "API management for
|
|
3
|
+
"version": "0.2.6",
|
|
4
|
+
"description": "API management for poe.ninja and poe.watch",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"test": "
|
|
7
|
+
"test": "mocha --require esm --recursive test/**/*.js"
|
|
8
8
|
},
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
@@ -20,8 +20,10 @@
|
|
|
20
20
|
"path of exile economy",
|
|
21
21
|
"path of exile ninja",
|
|
22
22
|
"api",
|
|
23
|
-
"poe api",
|
|
24
|
-
"
|
|
23
|
+
"poe economy api",
|
|
24
|
+
"path of exile api",
|
|
25
|
+
"poe.watch api",
|
|
26
|
+
"poe.ninja api"
|
|
25
27
|
],
|
|
26
28
|
"author": "Ayberk Gezer",
|
|
27
29
|
"license": "MIT",
|
|
@@ -31,5 +33,11 @@
|
|
|
31
33
|
"homepage": "https://github.com/ayberkgezer/poe-api-manager#readme",
|
|
32
34
|
"dependencies": {
|
|
33
35
|
"axios": "^1.6.7"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"chai": "^4.3.4",
|
|
39
|
+
"esm": "^3.2.25",
|
|
40
|
+
"mocha": "^10.3.0",
|
|
41
|
+
"sinon": "^17.0.1"
|
|
34
42
|
}
|
|
35
43
|
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
module.exports = function filterProperties(data, requestedProperties) {
|
|
2
|
-
const result = [];
|
|
3
|
-
|
|
4
|
-
data.forEach((item) => {
|
|
5
|
-
const itemResult = {};
|
|
6
|
-
requestedProperties.forEach((prop) => {
|
|
7
|
-
if (item.hasOwnProperty(prop)) {
|
|
8
|
-
itemResult[prop] = item[prop];
|
|
9
|
-
} else {
|
|
10
|
-
console.warn(`Property not found: ${prop}`);
|
|
11
|
-
}
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
result.push(itemResult);
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
return result;
|
|
18
|
-
};
|