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
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
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",
"lockfileVersion": 1,
"requires": true,
@ -13,6 +13,12 @@
"@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": {
"version": "7.0.0-beta.53",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.53.tgz",
@ -24,6 +30,50 @@
"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": {
"version": "0.3.0",
"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-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": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
@ -3025,6 +3091,15 @@
"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": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
@ -3509,9 +3584,9 @@
"dev": true
},
"path-parse": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
"integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
"dev": true
},
"pify": {
@ -3814,7 +3889,7 @@
"integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
"dev": true,
"requires": {
"path-parse": "1.0.5"
"path-parse": "1.0.6"
}
},
"resolve-url": {
@ -3857,6 +3932,36 @@
"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": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/rollup-plugin-filesize/-/rollup-plugin-filesize-4.0.1.tgz",
@ -4668,6 +4773,12 @@
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"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": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",

View file

@ -28,7 +28,7 @@
"clean": "rimraf dist",
"pretty": "npx prettier --write \"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",
"modulebuild": "rollup -c rollup.js --file dist/index.mjs --format es",
"build": "npm run clean && npm run browserbuild && npm run nodebuild && npm run modulebuild"
@ -45,8 +45,10 @@
]
},
"devDependencies": {
"@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.56",
"babel-core": "^6.26.3",
"babel-eslint": "^8.2.6",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"eslint": "^5.2.0",
"eslint-config-prettier": "^2.9.0",
"eslint-plugin-prettier": "^2.6.2",
@ -55,9 +57,10 @@
"prettier": "^1.13.7",
"rimraf": "^2.6.2",
"rollup-plugin-babel": "^3.0.7",
"rollup-plugin-commonjs": "9.1.5",
"rollup-plugin-filesize": "^4.0.1",
"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"
},
"files": [
@ -65,5 +68,12 @@
"README.md",
"package-lock.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 babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json";
import { version, name, description, author, license } from "./package.json";
@ -11,16 +12,13 @@ export default {
browser: true
}),
json(),
commonjs(),
babel({
exclude: "node_modules/**"
}),
terser({
output: {
preamble: `/**\n * ${name} | v${version}\n * ${
description
}\n * (c) ${new Date().getFullYear()} ${author}\n * @license ${
license
}\n */`
preamble: `/**\n * ${name} | v${version}\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";
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 {
name: name,
version: version,
hooks: {
debug: function(next, d = "", e = "", b = "", u = "", g = "") {
console.log(
"%cDebug",
"color: #dd69dd; font-weight: bold",
d,
e,
b,
u,
g
);
next();
}
}
hooks: bundleHooks(),
macros: bundleMacros()
};