Change yarn to pnpm, add id conflict resolution by slugifying the filename and using...
authorNick Downing <nick.downing@lifx.co>
Mon, 3 Feb 2020 16:00:35 +0000 (03:00 +1100)
committerNick Downing <nick.downing@lifx.co>
Mon, 3 Feb 2020 16:00:35 +0000 (03:00 +1100)
.gitignore
MinSVGCache.js
package.json

index 96632b3..dbfe37b 100644 (file)
@@ -1,5 +1,3 @@
 /ndcode-less_css_cache-*.tgz
 /node_modules
-/package-lock.json
-/yarn.lock
-/yarn-error.log
+/pnpm-lock.yaml
index ac8d2a6..67a7677 100644 (file)
@@ -27,50 +27,11 @@ let assert = require('assert')
 let disk_build = require('@ndcode/disk_build')
 let fs = require('fs')
 let path = require('path')
+let slugify = require('slugify')
 let util = require('util')
 
 let fs_readFile = util.promisify(fs.readFile)
 let fs_writeFile = util.promisify(fs.writeFile)
-let svgo = new SVGO(
-  {
-    plugins: [
-      {cleanupAttrs: true},
-      {removeDoctype: true},
-      {removeXMLProcInst: true},
-      {removeComments: true},
-      {removeMetadata: true},
-      {removeTitle: true},
-      {removeDesc: true},
-      {removeUselessDefs: true},
-      {removeEditorsNSData: true},
-      {removeEmptyAttrs: true},
-      {removeHiddenElems: true},
-      {removeEmptyText: true},
-      {removeEmptyContainers: true},
-      {removeViewBox: false},
-      {cleanupEnableBackground: true},
-      {convertStyleToAttrs: true},
-      {convertColors: true},
-      {convertPathData: true},
-      {convertTransform: true},
-      {removeUnknownsAndDefaults: true},
-      {removeNonInheritableGroupAttrs: true},
-      {removeUselessStrokeAndFill: true},
-      {removeUnusedNS: true},
-      {cleanupIDs: true},
-      {cleanupNumericValues: true},
-      {moveElemsAttrsToGroup: true},
-      {moveGroupAttrsToElems: true},
-      {collapseGroups: true},
-      {removeRasterImages: false},
-      {mergePaths: true},
-      {convertShapeToPath: true},
-      {sortAttrs: true},
-      {removeDimensions: true}//,
-      //{removeAttrs: {attrs: '(stroke|fill)'}}
-    ]
-  }
-)
 
 let MinSVGCache = function(diag1, diag) {
   if (!this instanceof MinSVGCache)
@@ -82,6 +43,46 @@ let MinSVGCache = function(diag1, diag) {
 MinSVGCache.prototype = Object.create(BuildCache.prototype)
 
 MinSVGCache.prototype.build = async function(key, result) {
+  let svgo = new SVGO(
+    {
+      plugins: [
+        {cleanupAttrs: true},
+        {removeDoctype: true},
+        {removeXMLProcInst: true},
+        {removeComments: true},
+        {removeMetadata: true},
+        {removeTitle: true},
+        {removeDesc: true},
+        {removeUselessDefs: true},
+        {removeEditorsNSData: true},
+        {removeEmptyAttrs: true},
+        {removeHiddenElems: true},
+        {removeEmptyText: true},
+        {removeEmptyContainers: true},
+        {removeViewBox: false},
+        {cleanupEnableBackground: true},
+        {convertStyleToAttrs: true},
+        {convertColors: true},
+        {convertPathData: true},
+        {convertTransform: true},
+        {removeUnknownsAndDefaults: true},
+        {removeNonInheritableGroupAttrs: true},
+        {removeUselessStrokeAndFill: true},
+        {removeUnusedNS: true},
+        {cleanupIDs: {prefix: slugify(key) + '_'}},
+        {cleanupNumericValues: true},
+        {moveElemsAttrsToGroup: true},
+        {moveGroupAttrsToElems: true},
+        {collapseGroups: true},
+        {removeRasterImages: false},
+        {mergePaths: true},
+        {convertShapeToPath: true},
+        {sortAttrs: true} //,
+        //{removeDimensions: true}//,
+        //{removeAttrs: {attrs: '(stroke|fill)'}}
+      ]
+    }
+  )
   let render = await disk_build(
     key,
     async temp_pathname => {
index bdde8ef..86bc314 100644 (file)
@@ -28,8 +28,9 @@
   "directories": {},
   "dependencies": {
     "@ndcode/build_cache": "^0.1.0",
-    "@ndcode/disk_build": "^0.1.0",
+    "@ndcode/disk_build": "^0.1.1",
     "assert": "^1.4.1",
+    "slugify": "^1.0.0",
     "svgo": "^1.1.1"
   },
   "devDependencies": {}