Files
bruno 803cf51cea 🐳 优化Docker部署流程,支持3001端口和registry:5003
- 修复Dockerfile构建问题,暂时禁用ideal-image插件
- 更新所有配置文件中的registry端口为5003
- 添加.dockerignore文件优化构建性能
- 创建docker-compose.yml文件支持本地部署
- 添加部署脚本scripts/deploy-docker.sh
- 更新Gitea Actions工作流,添加Docker部署步骤
- 创建DOCKER_DEPLOYMENT.md部署文档
- 支持通过3001端口提供lingjingwanxiang web portal服务
2025-07-21 21:51:15 +08:00

65 lines
1.3 KiB
JavaScript

const PassThroughDecoder = require('./lib/pass-through-decoder')
const UTF8Decoder = require('./lib/utf8-decoder')
module.exports = class TextDecoder {
constructor (encoding = 'utf8') {
this.encoding = normalizeEncoding(encoding)
switch (this.encoding) {
case 'utf8':
this.decoder = new UTF8Decoder()
break
case 'utf16le':
case 'base64':
throw new Error('Unsupported encoding: ' + this.encoding)
default:
this.decoder = new PassThroughDecoder(this.encoding)
}
}
get remaining () {
return this.decoder.remaining
}
push (data) {
if (typeof data === 'string') return data
return this.decoder.decode(data)
}
// For Node.js compatibility
write (data) {
return this.push(data)
}
end (data) {
let result = ''
if (data) result = this.push(data)
result += this.decoder.flush()
return result
}
}
function normalizeEncoding (encoding) {
encoding = encoding.toLowerCase()
switch (encoding) {
case 'utf8':
case 'utf-8':
return 'utf8'
case 'ucs2':
case 'ucs-2':
case 'utf16le':
case 'utf-16le':
return 'utf16le'
case 'latin1':
case 'binary':
return 'latin1'
case 'base64':
case 'ascii':
case 'hex':
return encoding
default:
throw new Error('Unknown encoding: ' + encoding)
}
};