Просмотр исходного кода

Fix regex matching for mime type in AssetImporter.

master
Palash Bansal 1 год назад
Родитель
Сommit
c1788c4d70
Аккаунт пользователя с таким Email не найден
1 измененных файлов: 11 добавлений и 2 удалений
  1. 11
    2
      src/assetmanager/AssetImporter.ts

+ 11
- 2
src/assetmanager/AssetImporter.ts Просмотреть файл

const loader = importer.ctor(this) const loader = importer.ctor(this)
if (!loader) return undefined if (!loader) return undefined
importer.ext.forEach(iext => { importer.ext.forEach(iext => {
const regex = new RegExp(iext.startsWith('data:') ? '^' + iext + '\\/' : '\\.' + iext + '$', 'i')
const regex = new RegExp(iext.startsWith('data:') ? '^' + escapeRegExp(iext) + '[\\/\\+\\:\\,\\;]' : '\\.' + iext + '$', 'i')
this._loadingManager.addHandler(regex, loader) this._loadingManager.addHandler(regex, loader)
}) })
importer.mime?.forEach(imime => { importer.mime?.forEach(imime => {
const regex = new RegExp('^data:' + imime + '$', 'i')
const regex = new RegExp('^data:' + escapeRegExp(imime) + '[\\/\\+\\:\\,\\;]', 'i')
this._loadingManager.addHandler(regex, loader) this._loadingManager.addHandler(regex, loader)
}) })
this._loaderCache.push({loader, ext: importer.ext, mime: importer.mime}) this._loaderCache.push({loader, ext: importer.ext, mime: importer.mime})




} }

function escapeRegExp(str: string) {
// @ts-expect-error new browser feature
return RegExp.escape ? RegExp.escape(str) :
str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') // $& means the whole matched string
}
// function escapeReplacement(str: string) {
// return str.replace(/\$/g, '$$$$')
// }

Загрузка…
Отмена
Сохранить