0.9.2 • Published 1 year ago

node-font2base64 v0.9.2

Weekly downloads
37
License
MIT
Repository
github
Last release
1 year ago

node-font2base64

Convert font to base64 url or src, and to inject src into style files

Installation

$ npm install node-font2base64
# or
$ yarn add node-font2base64 --dev

Import

CommonJS modules

const font2base64 = require('node-font2base64');
const {
  encodeToDataUrl,
  encodeToDataSrc,
  encodeToDataUrlSync,
  encodeToDataSrcSync,
  injectBase64,
  injectBase64Sync,
} = require('node-font2base64');

ECMAScript modules

import {
  encodeToDataUrl,
  encodeToDataSrc,
  encodeToDataUrlSync,
  encodeToDataSrcSync,
  injectBase64,
  injectBase64Sync,
} from 'node-font2base64';

API

encodeToDataUrl (fontpath)

  • Convert font file(s) to font-media base64 data url asynchronously
  • fontpath: {string} | {Array{string}}
  • Returns: {Promise} containing {string} | {Array{string}}
const dataUrl = await encodeToDataUrl('fonts/myfont-regular.ttf');
// => data:font/truetype;charset=utf-8;base64,<base64>

encodeToDataUrlSync (fontpath)

  • Convert font file(s) to font-media base64 data url synchronously
  • fontpath: {string} | {Array{string}}
  • Returns: {string} | {Array{string}}
const dataUrl = encodeToDataUrlSync('fonts/myfont-regular.woff');
// => data:application/font-woff;charset=utf-8;base64,<base64>

encodeToDataSrc (fontpath)

  • Convert font file(s) to font-media base64 data src asynchronously
  • fontpath: {string} | {Array{string}}
  • Returns: {Promise} containing {string} | {Array{string}}
const dataSrc = await encodeToDataSrc('fonts/myfont-regular.ttf');
// => url(data:font/truetype;charset=utf-8;base64,<base64>) format('truetype')

encodeToDataSrcSync (fontpath)

  • Convert font file(s) to font-media base64 data src synchronously
  • fontpath: {string} | {Array{string}}
  • Returns: {string} | {Array{string}}
const dataSrc = encodeToDataSrcSync('fonts/myfont-regular.woff');
// => url(data:application/font-woff;charset=utf-8;base64,<base64>) format('woff')

injectBase64 (fontpath, stylepath, options)

  • Replace font url(s) in style file(s) with font-media base64 data src asynchronously
  • fontpath: {string} | {Array{string}}
  • stylepath: {string} | {Array{string}}
  • options: {Object}
    • validator: {Function}: (abs|base_font_url, abs|base_font_path, original_font_url, original_font_path) => boolean
      • check if font url in a style file matches to font file's basename
      • default to comparing both paths' basenames
    • fontTypes: {Array{string}}
    • cssTypes: {Array{string}}
    • resave: {boolean}
      • resave modified style files
      • default to true
    • fullpathMatch: {boolean}
      • match full url / path to validate paths
      • default to false
  • Returns: {Promise} containing {true | Error} | {Array{result} | Error}
const result = await injectBase64('./fonts', './styles');
// => true

const result = await injectBase64('./fonts', './styles', { resave: false });
// => [{ modified: true, filepath: './styles/example.css', content: '...' }]

injectBase64Sync (fontpath, stylepath, options)

  • Replace font url(s) in style file(s) with font-media base64 data src synchronously
  • fontpath: {string} | {Array{string}}
  • stylepath: {string} | {Array{string}}
  • options: {Object}
    • validator: {Function}: (abs|base_font_url, abs|base_font_path, original_font_url, original_font_path) => boolean
      • check if font url in a style file matches to font file's basename
      • default to comparing both paths' basenames
    • fontTypes: {Array{string}}
    • cssTypes: {Array{string}}
    • resave: {boolean}
      • resave modified style files
      • default to true
    • fullpathMatch: {boolean}
      • match full url / path to validate paths
      • default to false
  • Returns: {true | Error} | {Array{result} | Error}
const result = injectBase64Sync('./fonts', './styles');
// => true

const result = injectBase64Sync('./fonts', './styles', { resave: false });
// => [{ modified: true, filepath: './styles/example.css', content: '...' }]

injectBase64.fromContent (fontpath, content, options)

  • Replace font url(s) in style content with font-media base64 data src asynchronously
  • fontpath: {string} | {Array{string}}
  • content: {string}
  • options: {Object}
    • validator: {Function}: (abs|base_font_url, abs|base_font_path, original_font_url, original_font_path) => boolean
      • check if font url in a style file matches to font file's basename
      • default to comparing both paths' basenames
    • fontTypes: {Array{string}}
    • fullpathMatch: {boolean}
      • match full url / path to validate paths
      • default to false
    • root: {string}
      • directory path which the content originated from
      • use basenames to compare font urls in style files if omitted
  • Returns: {Promise} containing {result | Error}
const result = await injectBase64.fromContent('./fonts', '...@font-face {...');
// => [{ modified: true, content: '...' }]

injectBase64Sync.fromContent (fontpath, content, options)

  • Replace font url(s) in style content with font-media base64 data src synchronously
  • fontpath: {string} | {Array{string}}
  • content: {string}
  • options: {Object}
    • validator: {Function}: (abs|base_font_url, abs|base_font_path, original_font_url, original_font_path) => boolean
      • check if font url in a style file matches to font file's basename
      • default to comparing both paths' basenames
    • fontTypes: {Array{string}}
    • fullpathMatch: {boolean}
      • match full url / path to validate paths
      • default to false
    • root: {string}
      • directory path which the content originated from
      • use basenames to compare font urls in style files if omitted
  • Returns: {result | Error}
const result = injectBase64Sync.fromContent('./fonts', '...@font-face {...');
// => [{ modified: true, content: '...' }]

injectBase64.fromBuffer (fontpath, buffer, options)

  • Replace font url(s) in style buffer with font-media base64 data src asynchronously
  • fontpath: {string} | {Array{string}}
  • buffer: {Buffer}
  • options: {Object}
    • validator: {Function}: (abs|base_font_url, abs|base_font_path, original_font_url, original_font_path) => boolean
      • check if font url in a style file matches to font file's basename
      • default to comparing both paths' basenames
    • fontTypes: {Array{string}}
    • fullpathMatch: {boolean}
      • match full url / path to validate paths
      • default to false
    • root: {string}
      • directory path which the buffer originated from
      • use basenames to compare font urls in style files if omitted
  • Returns: {Promise} containing {result | Error}
const result = await injectBase64.fromBuffer('./fonts', Buffer 54 65 73 74...)
// => [{ modified: true, content: '...' }]

injectBase64Sync.fromBuffer (fontpath, content, options)

  • Replace font url(s) in style buffer with font-media base64 data src synchronously
  • fontpath: {string} | {Array{string}}
  • buffer: {Buffer}
  • options: {Object}
    • validator: {Function}: (abs|base_font_url, abs|base_font_path, original_font_url, original_font_path) => boolean
      • check if font url in a style file matches to font file's basename
      • default to comparing both paths' basenames
    • fontTypes: {Array{string}}
    • fullpathMatch: {boolean}
      • match full url / path to validate paths
      • default to false
    • root: {string}
      • directory path which the buffer originated from
      • use basenames to compare font urls in style files if omitted
  • Returns: {result | Error}
const result = injectBase64Sync.fromBuffer('./fonts', Buffer 54 65 73 74...)
// => [{ modified: true, content: '...' }]

MIT Licensed

0.8.2-alpha.3

1 year ago

0.8.2-alpha.1

1 year ago

0.9.0

1 year ago

0.9.2

1 year ago

0.9.1

1 year ago

0.8.1

2 years ago

0.8.0

2 years ago

0.7.1

4 years ago

0.7.0

4 years ago

0.6.0

4 years ago

0.5.1

4 years ago

0.5.0

4 years ago