@hyrious/esbuild-plugin-svgo
Advanced tools
+44
-2
@@ -1,2 +0,44 @@ | ||
| var l=Object.create;var s=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var p=t=>s(t,"__esModule",{value:!0});var h=(t,o)=>{p(t);for(var e in o)s(t,e,{get:o[e],enumerable:!0})},w=(t,o,e)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of v(o))!g.call(t,r)&&r!=="default"&&s(t,r,{get:()=>o[r],enumerable:!(e=u(o,r))||e.enumerable});return t},n=t=>w(p(s(t!=null?l(d(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);h(exports,{svgo:()=>O});var m=n(require("fs")),a=n(require("path")),c=n(require("svgo"));function O(t){return{name:"svgo",setup({onResolve:o,onLoad:e}){let r=process.cwd();o({filter:/\.svg$/},i=>({path:a.default.relative(r,a.default.join(i.resolveDir,i.path)),namespace:"svgo"})),e({filter:/.*/,namespace:"svgo"},async i=>{let f=await m.default.promises.readFile(i.path,"utf-8");return{contents:(0,c.optimize)(f,t).data,loader:"dataurl"}})}}}0&&(module.exports={svgo}); | ||
| //# sourceMappingURL=index.js.map | ||
| var __defProp = Object.defineProperty; | ||
| var __getOwnPropDesc = Object.getOwnPropertyDescriptor; | ||
| var __getOwnPropNames = Object.getOwnPropertyNames; | ||
| var __hasOwnProp = Object.prototype.hasOwnProperty; | ||
| var __export = (target, all) => { | ||
| for (var name in all) | ||
| __defProp(target, name, { get: all[name], enumerable: true }); | ||
| }; | ||
| var __copyProps = (to, from, except, desc) => { | ||
| if (from && typeof from === "object" || typeof from === "function") { | ||
| for (let key of __getOwnPropNames(from)) | ||
| if (!__hasOwnProp.call(to, key) && key !== except) | ||
| __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); | ||
| } | ||
| return to; | ||
| }; | ||
| var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); | ||
| // index.ts | ||
| var esbuild_plugin_svgo_exports = {}; | ||
| __export(esbuild_plugin_svgo_exports, { | ||
| default: () => esbuild_plugin_svgo_default, | ||
| svgo: () => svgo | ||
| }); | ||
| module.exports = __toCommonJS(esbuild_plugin_svgo_exports); | ||
| var import_promises = require("fs/promises"); | ||
| var import_svgo = require("svgo"); | ||
| function svgo(config) { | ||
| return { | ||
| name: "svgo", | ||
| setup({ onLoad }) { | ||
| onLoad({ filter: /\.svg$/ }, async (args) => { | ||
| const raw = await (0, import_promises.readFile)(args.path, "utf-8"); | ||
| const contents = (0, import_svgo.optimize)(raw, config).data; | ||
| return { contents, loader: "default" }; | ||
| }); | ||
| } | ||
| }; | ||
| } | ||
| var esbuild_plugin_svgo_default = svgo; | ||
| // Annotate the CommonJS export names for ESM import in node: | ||
| 0 && (module.exports = { | ||
| svgo | ||
| }); |
+17
-16
| import { Plugin } from "esbuild"; | ||
| import fs from "fs"; | ||
| import path from "path"; | ||
| import { optimize, OptimizeOptions } from "svgo"; | ||
| import { readFile } from "fs/promises"; | ||
| import { Config, optimize } from "svgo"; | ||
| /** | ||
| * Use {@link https://github.com/svg/svgo SVGO} to optimize SVG files on load. | ||
| * | ||
| * @param config See {@link https://github.com/svg/svgo#configuration SVGO configuration} for details. | ||
| * | ||
| * @example | ||
| * ```js | ||
| * svgo({ multipass: true }) | ||
| * ``` | ||
| */ | ||
| export function svgo(options?: OptimizeOptions): Plugin { | ||
| export function svgo(config?: Config): Plugin { | ||
| return { | ||
| name: "svgo", | ||
| setup({ onResolve, onLoad }) { | ||
| const cwd = process.cwd(); | ||
| onResolve({ filter: /\.svg$/ }, args => { | ||
| return { path: path.relative(cwd, path.join(args.resolveDir, args.path)), namespace: "svgo" }; | ||
| }); | ||
| onLoad({ filter: /.*/, namespace: "svgo" }, async args => { | ||
| const raw = await fs.promises.readFile(args.path, "utf-8"); | ||
| const contents = optimize(raw, options).data; | ||
| return { contents, loader: "dataurl" }; | ||
| }); | ||
| setup({ onLoad }) { | ||
| onLoad({ filter: /\.svg$/ }, async args => { | ||
| const raw = await readFile(args.path, "utf-8"); | ||
| const contents = optimize(raw, config).data; | ||
| return { contents, loader: 'default' }; | ||
| }) | ||
| }, | ||
| }; | ||
| } | ||
| export default svgo; |
+8
-8
| { | ||
| "name": "@hyrious/esbuild-plugin-svgo", | ||
| "version": "0.1.1", | ||
| "version": "0.2.0", | ||
| "description": "SVGO plugin for esbuild.", | ||
@@ -10,7 +10,6 @@ "repository": "hyrious/esbuild-plugin-svgo", | ||
| "index.ts", | ||
| "index.js", | ||
| "index.js.map" | ||
| "index.js" | ||
| ], | ||
| "scripts": { | ||
| "build": "esbuild --bundle --external:svgo --platform=node --outfile=index.js --minify --sourcemap --target=node12 index.ts", | ||
| "build": "esbuild index.ts --bundle --external:svgo --platform=node --outfile=index.js --target=node16.20", | ||
| "test": "npm run build && cd test && node build.js" | ||
@@ -27,9 +26,10 @@ }, | ||
| "devDependencies": { | ||
| "@types/node": "^16.3.1", | ||
| "@types/svgo": "^2.3.1", | ||
| "esbuild": "^0.12.15" | ||
| "@types/node": "^18.x", | ||
| "@types/svgo": "^3.0.0", | ||
| "esbuild": "^0.17.17", | ||
| "sucrase": "^3.32.0" | ||
| }, | ||
| "dependencies": { | ||
| "svgo": "^2.3.1" | ||
| "svgo": "^3.0.2" | ||
| } | ||
| } |
+4
-3
@@ -9,3 +9,3 @@ # @hyrious/esbuild-plugin-svgo | ||
| const { svgo } = require("@hyrious/esbuild-plugin-svgo"); | ||
| // prettier-ignore | ||
| require("esbuild").build({ | ||
@@ -16,2 +16,3 @@ entryPoints: ["app.js"], | ||
| plugins: [svgo()], | ||
| loader: { '.svg': 'dataurl' }, | ||
| }).catch(() => process.exit(1)); | ||
@@ -23,6 +24,6 @@ ``` | ||
| ```ts | ||
| export function svgo(options?: OptimizeOptions): Plugin; | ||
| export function svgo(config?: Config): Plugin; | ||
| ``` | ||
| See [SVGO Options](https://github.com/svg/svgo). | ||
| See [SVGO Options](https://github.com/svg/svgo#configuration). | ||
@@ -29,0 +30,0 @@ ## License |
| { | ||
| "version": 3, | ||
| "sources": ["index.ts"], | ||
| "sourcesContent": ["import { Plugin } from \"esbuild\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport { optimize, OptimizeOptions } from \"svgo\";\n\n/**\n * @example\n * svgo({ multipass: true })\n */\nexport function svgo(options?: OptimizeOptions): Plugin {\n return {\n name: \"svgo\",\n setup({ onResolve, onLoad }) {\n const cwd = process.cwd();\n\n onResolve({ filter: /\\.svg$/ }, args => {\n return { path: path.relative(cwd, path.join(args.resolveDir, args.path)), namespace: \"svgo\" };\n });\n\n onLoad({ filter: /.*/, namespace: \"svgo\" }, async args => {\n const raw = await fs.promises.readFile(args.path, \"utf-8\");\n const contents = optimize(raw, options).data;\n return { contents, loader: \"dataurl\" };\n });\n },\n };\n}\n"], | ||
| "mappings": "mlBAAA,wBACA,MAAe,iBACf,EAAiB,mBACjB,EAA0C,mBAMnC,WAAc,EAAmC,CACtD,MAAO,CACL,KAAM,OACN,MAAM,CAAE,YAAW,UAAU,CAC3B,GAAM,GAAM,QAAQ,MAEpB,EAAU,CAAE,OAAQ,UAAY,GACvB,EAAE,KAAM,UAAK,SAAS,EAAK,UAAK,KAAK,EAAK,WAAY,EAAK,OAAQ,UAAW,UAGvF,EAAO,CAAE,OAAQ,KAAM,UAAW,QAAU,KAAM,IAAQ,CACxD,GAAM,GAAM,KAAM,WAAG,SAAS,SAAS,EAAK,KAAM,SAElD,MAAO,CAAE,SADQ,eAAS,EAAK,GAAS,KACrB,OAAQ", | ||
| "names": [] | ||
| } |
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
69
130%2
-33.33%30
3.45%4660
-14.99%4
33.33%5
-16.67%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
Updated