A Node.js Enka.network and Genshin Data wrapper for Genshin Impact
This is NOT the source code of Enka.Network or its API.
Node.js 18 or newer is required.
Install genshin-manager including genshin cache data.(download EN TextMap by default.)
npm install genshin-manager
You can specify which TextMap to download during installation.('ALL' can also be specified).
npm install genshin-manager --download-language="JP"
If you have already moved the cache to another folder, you can also install without downloading the cache.
npm install genshin-manager --nocache=true
Genshin cache data is from Dimbreath/AnimeGameData.
This data contains data of characters, weapons, materials, and more structure information of Genshin Impact.
You can change your cache directory.
const { Client } = require('genshin-manager')
// Change the directory to store cache data.
// Default directory is node_modules/genshin-manager/cache.
const client = new Client({ assetCacheFolderPath: './cache' })
await client.deploy()
You can update your genshin cache data.
const { Client } = require('genshin-manager')
// showFetchCacheLog is true by default
const client = new Client({ showFetchCacheLog: true })
await client.deploy()
Also, you can activate auto cache updater.
const { Client } = require('genshin-manager')
// autoFetchLatestAssetsByCron is "0 0 0 * * 3" by default
// By default, it runs every Wednesday at 00:00:00
// downloadLanguages is All TextMap by default
const client = new Client({
downloadLanguages: ['EN', 'JP'],
autoFetchLatestAssetsByCron: '0 0 0 * * 3',
})
await client.deploy()
// deactivate
const client = new Client({ autoFetchLatestAssetsByCron: undefined })
await client.deploy()
Images can be cached.
const { Client } = require('genshin-manager')
// autoCacheImage is true by default
const client = new Client({ autoCacheImage: true })
await client.deploy()
Automatically fixes defects in TextMap & ExcelBinOutput when they occur.
const { Client } = require('genshin-manager')
// autoFixTextMap and autoFixExcelBin is true by default
// but, if autoFetchLatestAssetsByCron is undefined, it is forced to false.
const client = new Client({ autoFixTextMap: true, autoFixExcelBin: true })
await client.deploy()
const { Client, EnkaManager } = require('genshin-manager')
// Loading cache
const client = new Client()
await client.deploy()
const enkaManager = new EnkaManager()
const enkaData = await enkaManager.fetchAll(800802278)
console.log(enkaData.uid)
console.log(enkaData.playerDetail)
console.log(enkaData.characterDetails)
console.log(enkaData.nextShowCaseDate)
const { Client, CharacterInfo } = require('genshin-manager')
// Loading cache
const client = new Client({ defaultLanguage: 'JP' })
await client.deploy()
const character = new CharacterInfo(10000002)
// print character name in language "jp"
console.log(character.name) // output: 神里綾華
const { Client, Weapon } = require('genshin-manager')
// Loading cache
const client = new Client({ defaultLanguage: 'JP' })
await client.deploy()
const weapon = new Weapon(13501)
// print weapon name in language "jp"
console.log(weapon.name) // output: 護摩の杖
You can see the examples, please check Examples
For more information, please check Documentation.
You can see the changelog here.