Files
ArtPlayer/scripts/build-ts.js
T
Harvey Zhao 7dffd99cfd Refactor code structure for improved readability and maintainability
Remove debugging border from the websr plugin's styling

Enhance canvas sizing logic in artplayer-plugin-websr

- Updated canvas positioning to center it within the player.
- Introduced a new function to calculate canvas size based on the video aspect ratio.
- Adjusted canvas dimensions during initialization and on resize events to maintain aspect ratio.
- Ensured canvas styles are updated to reflect the calculated dimensions.

feat: add comparison mode to artplayer-plugin-websr

- Updated README.md to reflect new comparison feature and simplified content.
- Modified package.json to remove unnecessary keywords.
- Enhanced index.js to implement comparison functionality, allowing users to compare original and upscaled video.
- Added new methods for enabling, disabling, and toggling comparison mode, as well as setting and getting the comparison position.
- Updated TypeScript definitions to include new comparison options and methods.
2026-02-10 23:02:31 +08:00

70 lines
2.2 KiB
JavaScript

import fs from 'node:fs'
import path from 'node:path'
import { glob } from 'glob'
function ensureDirExists(filePath) {
const dir = path.dirname(filePath)
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true })
}
}
function parsePluginInfo(path) {
const file = path.split('/').pop() || ''
const baseName = file.replace('.d.ts', '')
const name = baseName
.split('-')
.map((word, index) =>
index === 0 ? word : word[0].toUpperCase() + word.slice(1),
)
.join('')
return { name, file }
}
const reg = /^import.*$/gim
const artplayerTS = glob.sync('packages/artplayer/types/*.d.ts')
const artplayerTSoutput = path.join('docs/assets/ts/artplayer.d.ts')
let code = ''
for (let index = 0; index < artplayerTS.length; index++) {
const type = artplayerTS[index]
code += `${String(fs.readFileSync(type)).replace(reg, '')}\n`
}
code.replace('export default ', '')
code += `export = Artplayer;\nexport as namespace Artplayer;\n`
ensureDirExists(artplayerTSoutput)
fs.writeFileSync(artplayerTSoutput, code.trim())
console.log(`✨ Built ${artplayerTSoutput}`);
(async function () {
const pluginsTS = glob.sync('packages/artplayer-*-*/types/*.d.ts')
const pluginFiles = []
for (let index = 0; index < pluginsTS.length; index++) {
const type = pluginsTS[index]
const { name, file } = parsePluginInfo(type)
const code = `${String(fs.readFileSync(type)).replace(reg, '')}\nexport = ${name};\nexport as namespace ${name};\n`
const output = path.join('docs/assets/ts', file)
ensureDirExists(output)
fs.writeFileSync(output, code.trim())
console.log(`✨ Built ${output}`)
pluginFiles.push(file)
}
pluginFiles.sort()
const allFiles = [...pluginFiles, 'artplayer.d.ts']
const commonJsPath = path.join('docs/assets/js/common.js')
const commonJsContent = fs.readFileSync(commonJsPath, 'utf-8')
const newLibUris = allFiles.map(file => `'./assets/ts/${file}'`).join(',\n ')
const newContent = commonJsContent.replace(
/let libUris = \[([\s\S]*?)\]/,
`let libUris = [\n ${newLibUris},\n ]`,
)
ensureDirExists(commonJsPath)
fs.writeFileSync(commonJsPath, newContent)
console.log(`✨ Updated libUris in ${commonJsPath}`)
})()