1
0
Fork 0

tada: Initial commit

This commit is contained in:
Joost De Cock 2018-08-11 13:50:46 +02:00
parent 8e473c635c
commit ca10d79943
6 changed files with 175 additions and 28 deletions

View file

@ -0,0 +1,3 @@
{
"plugins": ["transform-object-rest-spread"]
}

View file

@ -16,6 +16,11 @@ A freesewing plugin that provides the following plugins in one bundle:
4) [plugin-logo](https://github.com/freesewing/plugin-logo) : Add our logo to your patterns 4) [plugin-logo](https://github.com/freesewing/plugin-logo) : Add our logo to your patterns
5) [plugin-title](https://github.com/freesewing/plugin-title) : Add pretty titles to your pattern parts 5) [plugin-title](https://github.com/freesewing/plugin-title) : Add pretty titles to your pattern parts
Note that these are all **build-time plugins**. In other words, plugins used by developers/pattern designers,
rather than run-time plugins that are used when generating patterns.
Without exception, all freesewing patterns use all these 5 plugins, so it made sense to bundle them.
## Usage ## Usage
To load this plugin, add it to your instantiated pattern. To load this plugin, add it to your instantiated pattern.

View file

@ -1,5 +1,5 @@
{ {
"name": "@freesewing/plugin-debug", "name": "@freesewing/plugin-bundle",
"version": "0.0.1", "version": "0.0.1",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
@ -13,6 +13,12 @@
"@babel/highlight": "7.0.0-beta.53" "@babel/highlight": "7.0.0-beta.53"
} }
}, },
"@babel/helper-plugin-utils": {
"version": "7.0.0-beta.56",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.56.tgz",
"integrity": "sha512-6IlFMU13X7gwnnMldDHwfc7IqngqCH/KfiU7I+GdNoZPnddmjghc87E/zKHaJpWdX1VvXCCelp2EnKq0rgBQ8w==",
"dev": true
},
"@babel/highlight": { "@babel/highlight": {
"version": "7.0.0-beta.53", "version": "7.0.0-beta.53",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.53.tgz", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.53.tgz",
@ -24,6 +30,50 @@
"js-tokens": "3.0.2" "js-tokens": "3.0.2"
} }
}, },
"@babel/plugin-proposal-object-rest-spread": {
"version": "7.0.0-beta.56",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.56.tgz",
"integrity": "sha512-onVk2kI39dzkDP+SzX6eC3nAkq5yemiiZX+AuXAmshOyuz+ZYUu5b+zzXKw0oPFTSnMnlIfJItQCcVzesXcU6A==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.56",
"@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.56"
}
},
"@babel/plugin-syntax-object-rest-spread": {
"version": "7.0.0-beta.56",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.56.tgz",
"integrity": "sha512-rDqe3TN5cZaUg4zi3Kzfq5qySS6IcEs19WE7GHlmelgQ1QXy9d/tsPEAWHZTLrG4mjbbEFJZdLvAi+LSGdhJAQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.56"
}
},
"@freesewing/plugin-cutonfold": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/@freesewing/plugin-cutonfold/-/plugin-cutonfold-0.9.0.tgz",
"integrity": "sha512-FZC6bSaDMgXKDzIU5ynByHmiVIVDXKzB9rlxZyldv+q8c0T/xfJ/x15wcey2Bffj/pv37hzLI+CocwGLHjWH7g=="
},
"@freesewing/plugin-dimension": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/@freesewing/plugin-dimension/-/plugin-dimension-0.4.0.tgz",
"integrity": "sha512-W4O3p4LlvNVt9bRG/2obKrzAWqX7MogdX2E1TYN8nJX0+KMBKArvQyR6RnODXWHuK2Mh+KZkF/dqVKqAc9EMDg=="
},
"@freesewing/plugin-grainline": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/@freesewing/plugin-grainline/-/plugin-grainline-0.0.2.tgz",
"integrity": "sha512-9aaUvxK9rdXMpOZhR+/Ew8VDa9CFmDKF8lULupETd99h0E8XT6iTVeiRWuufQ1hpidYzfshN3Iz2VIIjURj+mA=="
},
"@freesewing/plugin-logo": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@freesewing/plugin-logo/-/plugin-logo-0.3.2.tgz",
"integrity": "sha512-cYmMAcvWl7B0RC3LUaCNRVj98nDIsT47Uf+84fQAnsAeZeAyiA1Y1NmPlmb3n30znlFwiJYjII7cRBn73l6wGQ=="
},
"@freesewing/plugin-title": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/@freesewing/plugin-title/-/plugin-title-0.6.2.tgz",
"integrity": "sha512-OpiM4qQ0kN8NAP/OZkjveiMcebwk/ZBwfng9sVFDxp3zAB1YisoYgYjFoURCqR7ePAMbAa66sXD+o0YgITR9wg=="
},
"@samverschueren/stream-to-observable": { "@samverschueren/stream-to-observable": {
"version": "0.3.0", "version": "0.3.0",
"resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz", "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz",
@ -447,6 +497,22 @@
"babel-runtime": "6.26.0" "babel-runtime": "6.26.0"
} }
}, },
"babel-plugin-syntax-object-rest-spread": {
"version": "6.13.0",
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
"integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=",
"dev": true
},
"babel-plugin-transform-object-rest-spread": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
"integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
"dev": true,
"requires": {
"babel-plugin-syntax-object-rest-spread": "6.13.0",
"babel-runtime": "6.26.0"
}
},
"babel-register": { "babel-register": {
"version": "6.26.0", "version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
@ -3025,6 +3091,15 @@
"yallist": "2.1.2" "yallist": "2.1.2"
} }
}, },
"magic-string": {
"version": "0.22.5",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz",
"integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==",
"dev": true,
"requires": {
"vlq": "0.2.3"
}
},
"map-cache": { "map-cache": {
"version": "0.2.2", "version": "0.2.2",
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
@ -3509,9 +3584,9 @@
"dev": true "dev": true
}, },
"path-parse": { "path-parse": {
"version": "1.0.5", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
"dev": true "dev": true
}, },
"pify": { "pify": {
@ -3814,7 +3889,7 @@
"integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
"dev": true, "dev": true,
"requires": { "requires": {
"path-parse": "1.0.5" "path-parse": "1.0.6"
} }
}, },
"resolve-url": { "resolve-url": {
@ -3857,6 +3932,36 @@
"rollup-pluginutils": "1.5.2" "rollup-pluginutils": "1.5.2"
} }
}, },
"rollup-plugin-commonjs": {
"version": "9.1.5",
"resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.1.5.tgz",
"integrity": "sha512-Hy7KbvsSMNu6aCO2xabp8gBcWrTiS+EzfHkzWwZwMjrcAYuYfCLU7fP1nM4xM0FMye/13r8mzTkfb9AmDaZ1hQ==",
"dev": true,
"requires": {
"estree-walker": "0.5.2",
"magic-string": "0.22.5",
"resolve": "1.8.1",
"rollup-pluginutils": "2.3.1"
},
"dependencies": {
"estree-walker": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz",
"integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==",
"dev": true
},
"rollup-pluginutils": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.1.tgz",
"integrity": "sha512-JZS8aJMHEHhqmY2QVPMXwKP6lsD1ShkrcGYjhAIvqKKdXQyPHw/9NF0tl3On/xOJ4ACkxfeG7AF+chfCN1NpBg==",
"dev": true,
"requires": {
"estree-walker": "0.5.2",
"micromatch": "2.3.11"
}
}
}
},
"rollup-plugin-filesize": { "rollup-plugin-filesize": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/rollup-plugin-filesize/-/rollup-plugin-filesize-4.0.1.tgz", "resolved": "https://registry.npmjs.org/rollup-plugin-filesize/-/rollup-plugin-filesize-4.0.1.tgz",
@ -4668,6 +4773,12 @@
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true "dev": true
}, },
"vlq": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz",
"integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==",
"dev": true
},
"which": { "which": {
"version": "1.3.1", "version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",

View file

@ -28,7 +28,7 @@
"clean": "rimraf dist", "clean": "rimraf dist",
"pretty": "npx prettier --write \"src/*.js\"", "pretty": "npx prettier --write \"src/*.js\"",
"lint": "eslint --fix \"src/*.js\"", "lint": "eslint --fix \"src/*.js\"",
"browserbuild": "rollup -c rollup.js --file dist/browser.js --format iife --name freesewing.plugins.bundle", "browserbuild": "rollup -c rollup.js -o dist/browser.js -f iife -n freesewing_plugins_bundle --footer 'freesewing.plugins.bundle = freesewing_plugins_bundle;'",
"nodebuild": "rollup -c rollup.js --file dist/index.js --format cjs", "nodebuild": "rollup -c rollup.js --file dist/index.js --format cjs",
"modulebuild": "rollup -c rollup.js --file dist/index.mjs --format es", "modulebuild": "rollup -c rollup.js --file dist/index.mjs --format es",
"build": "npm run clean && npm run browserbuild && npm run nodebuild && npm run modulebuild" "build": "npm run clean && npm run browserbuild && npm run nodebuild && npm run modulebuild"
@ -45,8 +45,10 @@
] ]
}, },
"devDependencies": { "devDependencies": {
"@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.56",
"babel-core": "^6.26.3", "babel-core": "^6.26.3",
"babel-eslint": "^8.2.6", "babel-eslint": "^8.2.6",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"eslint": "^5.2.0", "eslint": "^5.2.0",
"eslint-config-prettier": "^2.9.0", "eslint-config-prettier": "^2.9.0",
"eslint-plugin-prettier": "^2.6.2", "eslint-plugin-prettier": "^2.6.2",
@ -55,9 +57,10 @@
"prettier": "^1.13.7", "prettier": "^1.13.7",
"rimraf": "^2.6.2", "rimraf": "^2.6.2",
"rollup-plugin-babel": "^3.0.7", "rollup-plugin-babel": "^3.0.7",
"rollup-plugin-commonjs": "9.1.5",
"rollup-plugin-filesize": "^4.0.1", "rollup-plugin-filesize": "^4.0.1",
"rollup-plugin-json": "^3.0.0", "rollup-plugin-json": "^3.0.0",
"rollup-plugin-node-resolve": "^3.3.0", "rollup-plugin-node-resolve": "3.3.0",
"rollup-plugin-terser": "^1.0.1" "rollup-plugin-terser": "^1.0.1"
}, },
"files": [ "files": [
@ -65,5 +68,12 @@
"README.md", "README.md",
"package-lock.json", "package-lock.json",
"package.json" "package.json"
] ],
"dependencies": {
"@freesewing/plugin-cutonfold": "0.9.0",
"@freesewing/plugin-dimension": "0.4.0",
"@freesewing/plugin-grainline": "0.0.2",
"@freesewing/plugin-logo": "0.3.2",
"@freesewing/plugin-title": "0.6.2"
}
} }

View file

@ -1,6 +1,7 @@
import { terser } from "rollup-plugin-terser"; import { terser } from "rollup-plugin-terser";
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import { version, name, description, author, license } from "./package.json"; import { version, name, description, author, license } from "./package.json";
@ -11,16 +12,13 @@ export default {
browser: true browser: true
}), }),
json(), json(),
commonjs(),
babel({ babel({
exclude: "node_modules/**" exclude: "node_modules/**"
}), }),
terser({ terser({
output: { output: {
preamble: `/**\n * ${name} | v${version}\n * ${ preamble: `/**\n * ${name} | v${version}\n * ${description}\n * (c) ${new Date().getFullYear()} ${author}\n * @license ${license}\n */`
description
}\n * (c) ${new Date().getFullYear()} ${author}\n * @license ${
license
}\n */`
} }
}) })
] ]

View file

@ -1,20 +1,40 @@
import cutonfold from "@freesewing/plugin-cutonfold";
import dimension from "@freesewing/plugin-dimension";
import grainline from "@freesewing/plugin-grainline";
import logo from "@freesewing/plugin-logo";
import title from "@freesewing/plugin-title";
import { version, name } from "../package.json"; import { version, name } from "../package.json";
let bundle = [cutonfold, dimension, grainline, logo, title];
function bundleHooks() {
let hooks = {};
for (let plugin of bundle) {
for (let i in plugin.hooks) {
if (typeof hooks[i] === "undefined") hooks[i] = [];
let hook = plugin.hooks[i];
if (typeof hook === "function") hooks[i].push(hook);
else if (typeof hook === "array") {
for (let method of hook) hooks[i].push(method);
}
}
}
return hooks;
}
function bundleMacros() {
let macros = {};
for (let plugin of bundle) {
for (let i in plugin.macros) macros[i] = plugin.macros[i];
}
return macros;
}
export default { export default {
name: name, name: name,
version: version, version: version,
hooks: { hooks: bundleHooks(),
debug: function(next, d = "", e = "", b = "", u = "", g = "") { macros: bundleMacros()
console.log(
"%cDebug",
"color: #dd69dd; font-weight: bold",
d,
e,
b,
u,
g
);
next();
}
}
}; };