qwc2
Version:
QGIS Web Client
7 lines • 3.05 kB
JavaScript
var _packageJson$dependen;function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]}},e:function e(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function s(){t=t.call(r)},n:function n(){var r=t.next();return a=r.done,r},e:function e(r){u=!0,o=r},f:function f(){try{a||null==t["return"]||t["return"]()}finally{if(u)throw o}}}}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}var webfontsGenerator=require("@furkot/webfonts-generator");var glob=require("glob");var mkdirp=require("mkdirp");var fs=require("fs");var path=require("path");var readJSON=function readJSON(filename){try{return JSON.parse(fs.readFileSync(process.cwd()+filename,"utf8"))}catch(e){return{}}};// Determine workspaces / dependencies
var packageJson=readJSON("/package.json");var workspaces=packageJson.workspaces||[];var qwcDeps=Object.keys((_packageJson$dependen=packageJson.dependencies)!==null&&_packageJson$dependen!==void 0?_packageJson$dependen:{qwc2:"0"}).filter(function(dep){return dep.startsWith("qwc")});var icons=[];var _iterator=_createForOfIteratorHelper(workspaces),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var workspace=_step.value;icons=icons.concat(glob.sync(workspace+"/icons/*.svg"))}}catch(err){_iterator.e(err)}finally{_iterator.f()}var _iterator2=_createForOfIteratorHelper(qwcDeps),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var qwcDep=_step2.value;icons=icons.concat(glob.sync("node_modules/"+qwcDep+"/icons/*.svg"))}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}icons=icons.concat(glob.sync("icons/*.svg"));// Filter duplicate icons (user icons can override submodule icons, hence reverse)
icons.reverse();var uniqueIcons=new Set;icons=icons.filter(function(icon){var iconName=path.basename(icon);if(uniqueIcons.has(iconName)){// eslint-disable-next-line
console.log("* "+icon+" was overriden");return false}uniqueIcons.add(iconName);return true});mkdirp.sync("icons/build");webfontsGenerator({files:icons,dest:"icons/build",fontName:"qwc2-icons",templateOptions:{classPrefix:"icon-",baseSelector:".icon"},types:["woff"],fontHeight:1000},function(error){if(error){// eslint-disable-next-line
console.log("Fail!",error)}else{// eslint-disable-next-line
console.log("Done!")}});