# pnpm
pnpm i -D @archoleat/validate-font-file-name
# npm
npm i -D @archoleat/validate-font-file-name
# yarn
yarn add -D @archoleat/validate-font-file-name
import { validateFontFileName } from '@archoleat/validate-font-file-name';
const validFontFileName = 'src/fonts/OpenSans-Regular.woff2';
const invalidFontFileName = 'src/fonts/OpenSans.woff2';
// returns: true
console.log(await validateFontFileName(validFontFileName));
// returns: 'OpenSans.woff2' doesn't match with '/(^[A-Z][a-z]+([A-Z][a-z]+)?)-(Thin|Hairline|ExtraLight|UltraLight|Light|Regular|Medium|SemiBold|DemiBold|Bold|ExtraBold|UltraBold|Black|Heavy|ExtraBlack|UltraBlack)\.(otf|ttf|woff|woff2)$/'.
console.log(await validateFontFileName(invalidFontFileName));
or
import { validateFontFileName } from '@archoleat/validate-font-file-name';
const validFontFileName = 'OpenSans-Regular.woff2';
const invalidFontFileName = 'OpenSans.woff2';
// returns: true
console.log(await validateFontFileName(validFontFileName));
// returns: 'OpenSans.woff2' doesn't match with '/(^[A-Z][a-z]+([A-Z][a-z]+)?)-(Thin|Hairline|ExtraLight|UltraLight|Light|Regular|Medium|SemiBold|DemiBold|Bold|ExtraBold|UltraBold|Black|Heavy|ExtraBlack|UltraBlack)\.(otf|ttf|woff|woff2)$/'.
console.log(await validateFontFileName(invalidFontFileName));
You can also specify your pattern:
import { validateFontFileName } from '@archoleat/validate-font-file-name';
// You can also specify `new RegExp()` and a regular `string`
const yourPattern = /OpenSans-regular/;
const validFontFileName = 'OpenSans-regular';
const invalidFontFileName = 'OpenSans.woff2';
// returns: true
console.log(await validateFontFileName(validFontFileName, yourPattern));
// returns: 'OpenSans.woff2' doesn't match with '/OpenSans-regular/'.
console.log(await validateFontFileName(invalidFontFileName, yourPattern));
The font family and font weight must be in Pascal Case and separated by a hyphen.
Extensions that are allowed: otf
, ttf
, woff
, woff2
.
{FontFamily}-{FontWeight}.{ext}
Please read CONTRIBUTING to start contributing.
This project is licensed under the MIT license.