-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Bitmapfont add cachebuster & compress #116
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 8 out of 11 changed files in this pull request and generated 1 comment.
Files not reviewed (3)
- packages/assetpack/package.json: Language not supported
- packages/assetpack/test/resources/font/custom.json: Language not supported
- packages/docs/docs/guide/pipes/webfont.mdx: Language not supported
Comments suppressed due to low confidence (4)
packages/assetpack/test/webfont/SDFCustomConfig.test.ts:87
- [nitpick] The test could be more comprehensive by adding more edge cases to ensure robustness.
checkChars(json.font.chars.char, 'abcABC');
packages/assetpack/src/webfont/sdf.ts:215
- [nitpick] The function name 'createName' is ambiguous. It should be renamed to 'generateScaledName' for better clarity.
export function createName(
packages/assetpack/src/webfont/sdf.ts:203
- The 'resolve' call is nested inside the 'generateBMFont' callback. If 'generateBMFont' throws an error synchronously, it will not be caught by the 'reject' call. Consider adding a try-catch block around 'generateBMFont' to handle synchronous errors.
resolve({ textures, font });
packages/assetpack/src/webfont/sdf.ts:215
- The new behavior introduced by 'createName' and 'mergeCharset' functions should be covered by tests to ensure they work as expected.
export function createName(
|
||
const json: jsonType = JSON.parse(fntJsonStr); | ||
const extname = path.extname(asset.filename); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The function transform uses formats.map to create new assets but does not handle the case where formats might be empty. Add a check to ensure formats is not empty before proceeding.
if (formats.length === 0) { | |
return []; | |
} |
Copilot is powered by AI, so mistakes are possible. Review output carefully before use.
BitmapFont (sdf/msdf)
cachebuster
compress
mipmap
split
replace the file of all pages in fnt
![image](https://private-user-images.githubusercontent.com/15968437/409056913-7450d595-0f4e-4f94-9d5e-45ef1c74c171.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMTkwNTIsIm5iZiI6MTczOTAxODc1MiwicGF0aCI6Ii8xNTk2ODQzNy80MDkwNTY5MTMtNzQ1MGQ1OTUtMGY0ZS00Zjk0LTlkNWUtNDVlZjFjNzRjMTcxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDEyNDU1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTAyYmFlNjAzMzY0YzM1NGY3ZDIxNzc5MzZmNTM5ZjE5YTkwNjNkZTZmZDk2ZDc3ZTViZGQ3MGY5MzUxOWY3MjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.EpvbO4UwQ423zzdC-0oZyxg2x9oQ99WaiPqXAUdNtvI)
BMFont file
support .xml | .fnt
![image](https://private-user-images.githubusercontent.com/15968437/409057557-819829a9-2c28-4650-94ca-72578c34b534.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMTkwNTIsIm5iZiI6MTczOTAxODc1MiwicGF0aCI6Ii8xNTk2ODQzNy80MDkwNTc1NTctODE5ODI5YTktMmMyOC00NjUwLTk0Y2EtNzI1NzhjMzRiNTM0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDEyNDU1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY0NmVmNjkyNDc1ZDcyNzQzMzBhNDA3Nzg3Nzg2NjVjZDRjMzIyMjAzOTIyODUxZTUzMWU3Y2I3OWY1MWNmNGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.XGXvKy733WD0YNrB7rd827ipWgKr7f3OCkpZpl78yKg)
mipmap is not supported
custom config
The font.charset in the JSON will be merged with the global font.charset, while other fields will be replaced by the JSON.
.json :
![image](https://private-user-images.githubusercontent.com/15968437/409895503-943c7ac1-8b32-4f11-86f5-378e86563b05.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMTkwNTIsIm5iZiI6MTczOTAxODc1MiwicGF0aCI6Ii8xNTk2ODQzNy80MDk4OTU1MDMtOTQzYzdhYzEtOGIzMi00ZjExLTg2ZjUtMzc4ZTg2NTYzYjA1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDEyNDU1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEwYzM2ZWExZWYyNDdmOTBlMmRjYzBhM2IyNTUyMjA2ZGY4MWZmMjgwOWIyOWRhYzg0YTlhNzdiOTA0MDBiYzkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.da29lw4Wk1GIYXOtDVOIo7wWfe7PK8E1kcBg-VjTV7s)
pipes :
![image](https://private-user-images.githubusercontent.com/15968437/409895853-1748a7ca-09f3-4743-b549-f373dc53cae4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMTkwNTIsIm5iZiI6MTczOTAxODc1MiwicGF0aCI6Ii8xNTk2ODQzNy80MDk4OTU4NTMtMTc0OGE3Y2EtMDlmMy00NzQzLWI1NDktZjM3M2RjNTNjYWU0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDEyNDU1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM0NTgyMjg1OTM1NGZkMThjMDY3MjM3MGRmNTI2YTQ3YWMyYjI5YzcyZWIxMTBkN2JkNmQ4NTE5YjZiOWE4YzcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.MaU3jfz9Vgc1PG0NYpM2qQBhZfCMHqZE7eKeew0S05I)
output (fnt):
![image](https://private-user-images.githubusercontent.com/15968437/409896457-3c364c63-23b7-40bc-bf70-dd6ebb0b5735.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMTkwNTIsIm5iZiI6MTczOTAxODc1MiwicGF0aCI6Ii8xNTk2ODQzNy80MDk4OTY0NTctM2MzNjRjNjMtMjNiNy00MGJjLWJmNzAtZGQ2ZWJiMGI1NzM1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDEyNDU1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE5YTZmNTE0MmFkY2YyMDdkNGQ5YzhhYjZiMDQ0NWEzMzEyNmEwNzlkNDc2N2FmYTQ2NGY2ZDFhYmM0ZGM0MjAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.eIdPbjUBowYRyoC78p3_7yUKsemKRSUShcFjsv8E9_k)
output (image):
![image](https://private-user-images.githubusercontent.com/15968437/409896725-40df4fde-cd33-486c-8d5e-20558626327a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMTkwNTIsIm5iZiI6MTczOTAxODc1MiwicGF0aCI6Ii8xNTk2ODQzNy80MDk4OTY3MjUtNDBkZjRmZGUtY2QzMy00ODZjLThkNWUtMjA1NTg2MjYzMjdhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDEyNDU1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZkYmJjMjhiYTdmY2M2ODIzMjc1ZGU3YTFmZTMwNjdhNjhiNmQ3NzIyZmQ2NTkyNjU1OWUzNDZhYjM0NmY0OTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.GpkGDxjSshHXn9QRdOX5AusPQGyupz6NBWsuSmSJjEw)