All files / src/ttfmeta/lib index.js

50% Statements 33/66
100% Branches 0/0
0% Functions 0/3
50% Lines 33/66

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 671x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x                                 1x 1x 1x 1x 1x 1x 1x               1x 1x 1x 1x 1x 1x                     1x 1x 1x 1x  
/**
 * ttfmeta
 * Copyright(c) 2021-2022 Khen Solomon Lethil
 * MIT Licensed
 * v1.0.9
 */
 
import * as fs from "fs";
import * as ttf from "./main.js";
 
/**
 * @namespace
 * @param {string | number | Buffer | URL} pathOrData
 * @param {{(error:string|null,meta?:typeof ttf.result):void}} callback
 */
export function ttfInfo(pathOrData, callback) {
  try {
    if (pathOrData instanceof Buffer) {
      ttf.ttfInfo(ttf.view(pathOrData), callback);
    } else {
      fs.readFile(pathOrData, function(error, data) {
        if (error) {
          callback(error.message || error.toString());
        } else {
          ttf.ttfInfo(ttf.view(data), callback);
        }
      });
    }
  } catch (/** @type {any}*/ error) {
    callback(error.message || error.toString());
  }
}
 
/**
 * @namespace
 * @param {string | number | Buffer | URL} pathOrData
 * @returns {typeof ttf.result}
 */
export function ttfInfoSync(pathOrData) {
  if (pathOrData instanceof Buffer) {
    return ttf.ttfInfoSync(ttf.view(pathOrData));
  } else {
    const data = fs.readFileSync(pathOrData);
    return ttf.ttfInfoSync(ttf.view(data));
  }
}
 
/**
 * @param {string | number | Buffer | URL} pathOrData
 * @returns {Promise<typeof ttf.result>}
 */
export function promise(pathOrData) {
  return new Promise(function(res, rej) {
    ttfInfo(pathOrData, function(e, d) {
      if (d) {
        res(d);
      } else {
        rej(e);
      }
    });
  });
}
 
/** @namespace */
export const ttfMeta = { ttfInfo, ttfInfoSync, promise };
export default ttfMeta;