UNPKG

purgetss

Version:

A package that simplifies mobile app creation for Titanium developers.

50 lines (37 loc) 1.31 kB
const fs = require('fs') const _ = require('lodash') const logger = require('./logger') const readCSS = require('read-css') if (!fs.existsSync('./dist')) { fs.mkdirSync('./dist') } (function constructor() { 'use strict' readCSS('./node_modules/@fortawesome/fontawesome-free/css/all.css', (err, data) => { if (err) throw err let tssClasses = fs.readFileSync('./lib/templates/fontawesome/free-template.tss', 'utf8') + '\n' tssClasses += fs.readFileSync('./lib/templates/fontawesome/free-reset.tss', 'utf8') tssClasses += processCSS(data) fs.writeFileSync('./dist/fontawesome.tss', tssClasses, _err => { throw _err }) logger.file('./dist/fontawesome.tss') }) }()) function processCSS(data) { const rules = _.map(data.stylesheet.rules, rule => { if (rule.type === 'rule' && rule.selectors && rule.declarations[0].value.includes('"\\')) { return { selector: rule.selectors[0].replace('::before', '').replace(':before', ''), property: ('0000' + rule.declarations[0].value.replace('\"\\', '').replace('\"', '')).slice(-4) } } }) let paraTSS = '' _.each(rules, rule => { if (rule) { paraTSS += `'${rule.selector}': { text: '\\u${rule.property}', title: '\\u${rule.property}' }\n` } }) return paraTSS }