compose-paths 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +1 -1
- package/dist/compose-paths.browser.js +2 -2
- package/dist/compose-paths.cjs.js +2 -2
- package/dist/compose-paths.esm.mjs +2 -2
- package/package.json +13 -12
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* compose-paths
|
|
3
|
-
* v1.1.
|
|
3
|
+
* v1.1.2
|
|
4
4
|
* https://github.com/shuckster/compose-paths
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
7
|
-
var composePaths=(()=>{var a=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var h=a((p,
|
|
7
|
+
var composePaths=(()=>{var a=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var h=a((p,u)=>{(function(n,e,t){typeof u!="undefined"&&u.exports?u.exports=t():typeof define=="function"&&define.amd?define(t):e[n]=t()})("urljoin",p,function(){function n(e){var t=[];if(e.length===0)return"";if(typeof e[0]!="string")throw new TypeError("Url must be a string. Received "+e[0]);if(e[0].match(/^[^/:]+:\/*$/)&&e.length>1){var i=e.shift();e[0]=i+e[0]}e[0].match(/^file:\/\/\//)?e[0]=e[0].replace(/^([^/:]+):\/*/,"$1:///"):e[0]=e[0].replace(/^([^/:]+):\/*/,"$1://");for(var o=0;o<e.length;o++){var s=e[o];if(typeof s!="string")throw new TypeError("Url must be a string. Received "+s);s!==""&&(o>0&&(s=s.replace(/^[\/]+/,"")),o<e.length-1?s=s.replace(/[\/]+$/,""):s=s.replace(/[\/]+$/,"/"),t.push(s))}var l=t.join("/");l=l.replace(/\/(\?|&|#[^!])/g,"$1");var c=l.split("?");return l=c.shift()+(c.length>0?"?":"")+c.join("&"),l}return function(){var e;return typeof arguments[0]=="object"?e=arguments[0]:e=[].slice.call(arguments),n(e)}})});var B=a((N,m)=>{m.exports={composePaths:v,zip:I};var g=h(),d="aliases";function v(n){let t=O(n).map(L),i=t.reduce(E,1/0),o=t.map(R(i)),s=_(o),l=x(s),c=s.map(r=>r==null?void 0:r.name).filter(Boolean),f=l;return s.forEach(w(f)),Object.defineProperty(f,d,{value:c,enumerable:!1})}function I(n,e,t){let{aliases:i=[],ignoreAliases:o=!1}=t||{};return(i.length&&!o?i:n[d]).reduce((l,c)=>(o&&i.includes(c)||l.push([n[c],e[c]]),l),[])}var j=/[\r\n]/,P=/(\s*\/\/[^\n\r]*)/,S=/^(\s*)([^$]*)/,$=/\s*=\s*([^$]+)/,b=/^\s*$/;function E(n,{indent:e}){return Math.min(n,e)}function R(n){return({indent:e,content:t})=>({indent:e-n,content:t})}function w(n){return({name:e,index:t})=>{if(!e)return n;let i=n[t];Object.defineProperty(n,e,{value:i,enumerable:!1})}}function x(n){let e=[],t=[],i=-1,o=-1;return n.forEach(({indent:s,content:l})=>{if(o<=0)o=s;else if(s<=i){let c=1+(i-s)/o;for(;c--;)e.pop()}e.push(l),t.push(g(...e)),i=s}),t}function _(n){return n.map((e,t)=>{let{content:i,indent:o}=e,s=i.match($);return s?{index:t,indent:o,content:i.slice(0,i.length-s[0].length),name:s[1]}:{index:t,indent:o,content:i}})}function L(n){var i;let e=[n,"",n],t=(i=n.match(S))!=null?i:e;return{indent:t[1].length,content:t[2]}}function O(n){return[n].flat().reduce((e,t)=>[...e,...t.split(j)],[]).filter(z).map(e=>e.replace(P,""))}function z(n){return!b.test(n)}});return B();})();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* compose-paths
|
|
3
|
-
* v1.1.
|
|
3
|
+
* v1.1.2
|
|
4
4
|
* https://github.com/shuckster/compose-paths
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
7
|
-
module.exports={composePaths:
|
|
7
|
+
module.exports={composePaths:p,zip:h};var f=require("path").join,a="aliases";function p(n){let e=x(n).map(v),s=e.reduce(S,1/0),i=e.map(g(s)),o=b(i),r=_(o),c=o.map(u=>u==null?void 0:u.name).filter(Boolean),l=r;return o.forEach(j(l)),Object.defineProperty(l,a,{value:c,enumerable:!1})}function h(n,t,e){let{aliases:s=[],ignoreAliases:i=!1}=e||{};return(s.length&&!i?s:n[a]).reduce((r,c)=>(i&&s.includes(c)||r.push([n[c],t[c]]),r),[])}var m=/[\r\n]/,d=/(\s*\/\/[^\n\r]*)/,I=/^(\s*)([^$]*)/,A=/\s*=\s*([^$]+)/,P=/^\s*$/;function S(n,{indent:t}){return Math.min(n,t)}function g(n){return({indent:t,content:e})=>({indent:t-n,content:e})}function j(n){return({name:t,index:e})=>{if(!t)return n;let s=n[e];Object.defineProperty(n,t,{value:s,enumerable:!1})}}function _(n){let t=[],e=[],s=-1,i=-1;return n.forEach(({indent:o,content:r})=>{if(i<=0)i=o;else if(o<=s){let c=1+(s-o)/i;for(;c--;)t.pop()}t.push(r),e.push(f(...t)),s=o}),e}function b(n){return n.map((t,e)=>{let{content:s,indent:i}=t,o=s.match(A);return o?{index:e,indent:i,content:s.slice(0,s.length-o[0].length),name:o[1]}:{index:e,indent:i,content:s}})}function v(n){var s;let t=[n,"",n],e=(s=n.match(I))!=null?s:t;return{indent:e[1].length,content:e[2]}}function x(n){return[n].flat().reduce((t,e)=>[...t,...e.split(m)],[]).filter(E).map(t=>t.replace(d,""))}function E(n){return!P.test(n)}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* compose-paths
|
|
3
|
-
* v1.1.
|
|
3
|
+
* v1.1.2
|
|
4
4
|
* https://github.com/shuckster/compose-paths
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
7
|
-
var a=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var h=a((p,
|
|
7
|
+
var a=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var h=a((p,u)=>{(function(n,e,t){typeof u!="undefined"&&u.exports?u.exports=t():typeof define=="function"&&define.amd?define(t):e[n]=t()})("urljoin",p,function(){function n(e){var t=[];if(e.length===0)return"";if(typeof e[0]!="string")throw new TypeError("Url must be a string. Received "+e[0]);if(e[0].match(/^[^/:]+:\/*$/)&&e.length>1){var i=e.shift();e[0]=i+e[0]}e[0].match(/^file:\/\/\//)?e[0]=e[0].replace(/^([^/:]+):\/*/,"$1:///"):e[0]=e[0].replace(/^([^/:]+):\/*/,"$1://");for(var o=0;o<e.length;o++){var s=e[o];if(typeof s!="string")throw new TypeError("Url must be a string. Received "+s);s!==""&&(o>0&&(s=s.replace(/^[\/]+/,"")),o<e.length-1?s=s.replace(/[\/]+$/,""):s=s.replace(/[\/]+$/,"/"),t.push(s))}var l=t.join("/");l=l.replace(/\/(\?|&|#[^!])/g,"$1");var c=l.split("?");return l=c.shift()+(c.length>0?"?":"")+c.join("&"),l}return function(){var e;return typeof arguments[0]=="object"?e=arguments[0]:e=[].slice.call(arguments),n(e)}})});var B=a((N,m)=>{m.exports={composePaths:v,zip:I};var g=h(),d="aliases";function v(n){let t=O(n).map(L),i=t.reduce(E,1/0),o=t.map(R(i)),s=_(o),l=x(s),c=s.map(r=>r==null?void 0:r.name).filter(Boolean),f=l;return s.forEach(w(f)),Object.defineProperty(f,d,{value:c,enumerable:!1})}function I(n,e,t){let{aliases:i=[],ignoreAliases:o=!1}=t||{};return(i.length&&!o?i:n[d]).reduce((l,c)=>(o&&i.includes(c)||l.push([n[c],e[c]]),l),[])}var j=/[\r\n]/,P=/(\s*\/\/[^\n\r]*)/,S=/^(\s*)([^$]*)/,$=/\s*=\s*([^$]+)/,b=/^\s*$/;function E(n,{indent:e}){return Math.min(n,e)}function R(n){return({indent:e,content:t})=>({indent:e-n,content:t})}function w(n){return({name:e,index:t})=>{if(!e)return n;let i=n[t];Object.defineProperty(n,e,{value:i,enumerable:!1})}}function x(n){let e=[],t=[],i=-1,o=-1;return n.forEach(({indent:s,content:l})=>{if(o<=0)o=s;else if(s<=i){let c=1+(i-s)/o;for(;c--;)e.pop()}e.push(l),t.push(g(...e)),i=s}),t}function _(n){return n.map((e,t)=>{let{content:i,indent:o}=e,s=i.match($);return s?{index:t,indent:o,content:i.slice(0,i.length-s[0].length),name:s[1]}:{index:t,indent:o,content:i}})}function L(n){var i;let e=[n,"",n],t=(i=n.match(S))!=null?i:e;return{indent:t[1].length,content:t[2]}}function O(n){return[n].flat().reduce((e,t)=>[...e,...t.split(j)],[]).filter(z).map(e=>e.replace(P,""))}function z(n){return!b.test(n)}});export default B();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "compose-paths",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "Define paths + routes without the repetition.",
|
|
5
5
|
"author": "Conan Theobald",
|
|
6
6
|
"license": "MIT",
|
|
@@ -42,21 +42,21 @@
|
|
|
42
42
|
"@rollup/plugin-babel": "^5.3.0",
|
|
43
43
|
"@rollup/plugin-commonjs": "^21.0.1",
|
|
44
44
|
"@rollup/plugin-json": "^4.1.0",
|
|
45
|
-
"@rollup/plugin-node-resolve": "^13.
|
|
46
|
-
"@rollup/plugin-replace": "^3.0.
|
|
47
|
-
"concurrently": "^6.
|
|
45
|
+
"@rollup/plugin-node-resolve": "^13.1.3",
|
|
46
|
+
"@rollup/plugin-replace": "^3.0.1",
|
|
47
|
+
"concurrently": "^6.5.1",
|
|
48
48
|
"cross-env": "^7.0.3",
|
|
49
|
-
"esbuild": "^0.
|
|
50
|
-
"eslint": "^8.
|
|
51
|
-
"eslint-plugin-jest": "^25.3.
|
|
52
|
-
"jest": "^27.4.
|
|
53
|
-
"match-iz": "^1.
|
|
49
|
+
"esbuild": "^0.14.11",
|
|
50
|
+
"eslint": "^8.6.0",
|
|
51
|
+
"eslint-plugin-jest": "^25.3.4",
|
|
52
|
+
"jest": "^27.4.7",
|
|
53
|
+
"match-iz": "^1.11.1",
|
|
54
54
|
"rimraf": "^3.0.2",
|
|
55
|
-
"rollup": "^2.
|
|
55
|
+
"rollup": "^2.63.0",
|
|
56
56
|
"rollup-plugin-cleanup": "^3.2.1",
|
|
57
57
|
"rollup-plugin-node-builtins": "^2.1.2",
|
|
58
58
|
"rollup-plugin-terser": "7.0.2",
|
|
59
|
-
"typescript": "^4.5.
|
|
59
|
+
"typescript": "^4.5.4",
|
|
60
60
|
"url-join": "^4.0.1"
|
|
61
61
|
},
|
|
62
62
|
"scripts": {
|
|
@@ -68,5 +68,6 @@
|
|
|
68
68
|
"build:rollup:node": "rollup --config ./build-config/rollup.node.js",
|
|
69
69
|
"build:rollup:not-node": "rollup --config ./build-config/rollup.not-node.js",
|
|
70
70
|
"build:esbuild": "node ./build-config/esbuild.js"
|
|
71
|
-
}
|
|
71
|
+
},
|
|
72
|
+
"readme": "# compose-paths\n\n<p>\n <a href=\"https://github.com/shuckster/compose-paths/blob/master/LICENSE\">\n <img\n alt=\"MIT license\"\n src=\"https://img.shields.io/npm/l/compose-paths?style=plastic\"\n /></a>\n <a href=\"https://bundlephobia.com/result?p=compose-paths\">\n <img\n alt=\"npm bundle size\"\n src=\"https://img.shields.io/bundlephobia/minzip/compose-paths?style=plastic\"\n /></a>\n <a href=\"https://www.npmjs.com/package/compose-paths\">\n <img\n alt=\"Version\"\n src=\"https://img.shields.io/npm/v/compose-paths?style=plastic\"\n /></a>\n</p>\n\n```sh\n$ pnpm i compose-paths\n```\n\n## Usage\n\n### `Path` → `Alias`\n\n```js\nconst { composePaths } = require('compose-paths')\n\nconst paths = composePaths(`\n\n ${__dirname}\n /src\n /html\n /templates = TEMPLATES\n /pages = PAGES\n\n /public = PUBLIC\n /images = IMAGES\n\n`)\n\npaths.TEMPLATES\n// \"/dir/name/src/html/templates\"\n\npaths.PUBLIC\n// \"/dir/name/public\"\n```\n\n### `Path` → `Route` (via aliases)\n\n```js\nconst { composePaths, zip } = require('compose-paths')\n\nconst routes = composePaths(`\n / = HOME\n /about = ABOUT\n /contact = CONTACT\n`)\n\nconst paths = composePaths(`\n ${__dirname}\n /src\n /html/pages\n /index.html = HOME\n /about.html = ABOUT\n /contact.html = CONTACT\n`)\n\nconst staticRoutes = zip(routes, paths)\n\n// Then, for example:\nstaticRoutes.forEach(([route, path]) => {\n app.get(route, sendFile(path))\n})\n```\n\n### `Path` → `Route` (directly)\n\n```js\nconst { composePaths } = require('compose-paths')\n\nconst pathFromRoute = composePaths(`\n\n ${__dirname}\n /src/html/pages\n /index.html = /\n /about.html = /about\n /contact.html = /contact\n\n`)\n\npathFromRoute['/']\n// \"/dir/name/src/html/pages/index.html\"\n\npathFromRoute['/contact']\n// \"/dir/name/src/html/pages/contact.html\"\n\npathFromRoute.aliases.forEach(route => {\n console.log(pathFromRoute[route])\n})\n```\n\nThat's it!\n\nBehind the scenes `compose-paths` looks at the indentation-level of its input as the cue to concatenate lines together. Either `tabs` or `spaces` should be fine, so long as you're consistent.\n\n# Credits\n\n`compose-paths` was written by [Conan Theobald](https://github.com/shuckster/).\n\nDid you find this useful? If so, I like [coffee ☕️](https://www.buymeacoffee.com/shuckster) :)\n\n## License\n\nMIT licensed: See [LICENSE](LICENSE)\n"
|
|
72
73
|
}
|