{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import * as path from 'path'\nimport * as fs from 'fs'\n\nconst Font = require('fonteditor-core').Font\nconst woff2 = require('fonteditor-core').woff2\n\nimport { wrapper, changeExtension, TypeOnEveryFile, TypeToolProp, TypeToolOptions } from '@asset-toolkit/core'\n\nexport interface TypeProps extends TypeToolOptions {\n  outputs: ['woff', 'woff2', 'eot', 'ttf', 'svg']\n  subset: number[]\n  hinting: boolean\n  compound2simple: boolean\n  combinePath: boolean\n}\n\n/**\n * A tool to ...\n * @param props - { pathIn, pathOut }\n * @param options - { }\n * @returns { Promise(returns) }\n */\nconst fontTransform: (_props: TypeToolProp, options?: TypeProps) => Promise<unknown> = wrapper(\n  ({ pathIn, pathOut, file, options, next }: TypeOnEveryFile) => {\n    const buffer = fs.readFileSync(path.join(pathIn || pathOut, file))\n    const url = (ext: string) => path.join(pathOut, changeExtension(file, `.${ext}`))\n\n    woff2.init().then(() => {\n      const { outputs, ...fontOptions }: TypeOnEveryFile['options'] = {\n        outputs: ['woff', 'woff2'],\n        ...options,\n      }\n      const font = Font.create(buffer, {\n        type: path.extname(file).replace('.', ''),\n      })\n\n      outputs.forEach((type: string) => {\n        fs.writeFileSync(\n          url(type),\n          font.write({\n            type,\n            ...fontOptions,\n          }),\n        )\n      })\n\n      next()\n    })\n  },\n  undefined,\n  { exts: ['ttf', 'otf', 'woff', 'woff2', 'eot'], name: 'font-transform' },\n)\n\nexport default fontTransform\n"],"names":["Font","require","woff2","fontTransform","wrapper","pathOut","file","options","next","buffer","fs","readFileSync","path","join","pathIn","init","then","outputs","fontOptions","font","create","type","extname","replace","forEach","writeFileSync","changeExtension","write","undefined","exts","name"],"mappings":"iVAGMA,EAAOC,QAAQ,mBAAmBD,KAClCE,EAAQD,QAAQ,mBAAmBC,MAkBnCC,EAAiFC,EACrF,gBAAWC,IAAAA,QAASC,IAAAA,KAAMC,IAAAA,QAASC,IAAAA,KAC3BC,EAASC,EAAGC,aAAaC,EAAKC,OADnCC,QACkDT,EAASC,IAG5DJ,EAAMa,OAAOC,KAAK,WAChB,SACEC,QAAS,CAAC,OAAQ,UACfV,GAFGU,IAAAA,QAAYC,0IAIdC,EAAOnB,EAAKoB,OAAOX,EAAQ,CAC/BY,KAAMT,EAAKU,QAAQhB,GAAMiB,QAAQ,IAAK,MAGxCN,EAAQO,QAAQ,SAACH,GACfX,EAAGe,cAZsBb,EAAKC,KAAKR,EAASqB,EAAgBpB,MAatDe,IACJF,EAAKQ,SACHN,KAAAA,GACGH,OAKTV,YAGJoB,EACA,CAAEC,KAAM,CAAC,MAAO,MAAO,OAAQ,QAAS,OAAQC,KAAM"}