Install using npm, yarn or pnpm:
npm install google-fonts-helper
# or
yarn add google-fonts-helper
# or
pnpm add google-fonts-helper
Import into your Node.js project:
const { constructURL, merge, isValidURL, parse, download } = require('google-fonts-helper')
// or
import { constructURL, merge, isValidURL, parse, download } from 'google-fonts-helper'
constructURL({ families: { Roboto: true } })
// https://fonts.googleapis.com/css2?family=Roboto
constructURL({ families: { Roboto: true, Lato: true } })
// https://fonts.googleapis.com/css2?family=Roboto&family=Lato
constructURL({
families: {
Roboto: true,
Lato: {
wght: 100
},
Raleway: {
wght: [400],
ital: [100, 400]
}
}
})
// https://fonts.googleapis.com/css2?family=Roboto&family=Lato:wght@100&family=Raleway:ital,wght@0,400;1,100;1,400
merge({ families: { Roboto: true } }, { families: { Lato: true } })
// { families: { Roboto: true, Lato: true } }
merge({ families: { Roboto: true } }, { families: { Roboto: [300, 400] } })
// { families: { Roboto: [300, 400] } }
isValidURL('https://fonts.googleapis.com/css2?family=Roboto')
// true
isValidURL('https://foo.bar')
// false
parse('https://fonts.googleapis.com/css2?family=Roboto')
// { families: { Roboto: true } }
parse('https://fonts.googleapis.com/css2?family=Roboto&family=Lato')
// { families: { Roboto: true, Lato: true } }
parse('https://foo.bar')
// {}
const downloader = download('https://fonts.googleapis.com/css2?family=Roboto', {
base64: false,
overwriting: false,
outputDir: './',
stylePath: 'fonts.css',
fontsDir: 'fonts',
fontsPath: './fonts'
})
downloader.hook('download-font:before', (font: FontInputOutput) {
console.log(font)
})
downloader.hook('download-font:done', (font: FontInputOutput) {
console.log(font)
})
await downloader.execute()
Copyright (c) Datalogix