mirror of
https://github.com/NeteaseCloudMusicApiEnhanced/api-enhanced.git
synced 2025-10-21 21:43:09 +00:00

Refactored main.js to optimize module and server loading, improving code clarity and lazy loading. Updated several dependencies in package.json to their latest versions for better security and compatibility. Updated documentation cover page and home page to reflect project branding changes. Co-Authored-By: binaryify <binaryify@gmail.com>
64 lines
1.3 KiB
JavaScript
64 lines
1.3 KiB
JavaScript
const fs = require('fs')
|
|
const path = require('path')
|
|
const tmpPath = require('os').tmpdir()
|
|
const { cookieToJson } = require('./util')
|
|
|
|
const anonymousTokenPath = path.resolve(tmpPath, 'anonymous_token')
|
|
if (!fs.existsSync(anonymousTokenPath)) {
|
|
fs.writeFileSync(anonymousTokenPath, '', 'utf-8')
|
|
}
|
|
|
|
/** @type {Record<string, any>} */
|
|
let obj = {}
|
|
|
|
const modulePath = path.join(__dirname, 'module')
|
|
const moduleFiles = fs.readdirSync(modulePath).reverse()
|
|
|
|
let requestModule = null
|
|
|
|
moduleFiles.forEach((file) => {
|
|
if (!file.endsWith('.js')) return
|
|
|
|
const filePath = path.join(modulePath, file)
|
|
let fileModule = require(filePath)
|
|
let fn = file.split('.').shift() || ''
|
|
|
|
obj[fn] = function (data = {}) {
|
|
const cookie =
|
|
typeof data.cookie === 'string'
|
|
? cookieToJson(data.cookie)
|
|
: data.cookie || {}
|
|
|
|
return fileModule(
|
|
{
|
|
...data,
|
|
cookie,
|
|
},
|
|
async (...args) => {
|
|
if (!requestModule) {
|
|
requestModule = require('./util/request')
|
|
}
|
|
|
|
return requestModule(...args)
|
|
},
|
|
)
|
|
}
|
|
})
|
|
|
|
let serverModule = null
|
|
|
|
/**
|
|
* @type {Record<string, any> & import("./server")}
|
|
*/
|
|
module.exports = {
|
|
get server() {
|
|
if (!serverModule) {
|
|
serverModule = require('./server')
|
|
}
|
|
return serverModule
|
|
},
|
|
...obj,
|
|
}
|
|
|
|
Object.assign(module.exports, require('./server'))
|