tada: Initial commit
This commit is contained in:
parent
8e473c635c
commit
ca10d79943
6 changed files with 175 additions and 28 deletions
3
packages/plugin-bundle/.babelrc
Normal file
3
packages/plugin-bundle/.babelrc
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"plugins": ["transform-object-rest-spread"]
|
||||
}
|
|
@ -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.
|
||||
|
|
121
packages/plugin-bundle/package-lock.json
generated
121
packages/plugin-bundle/package-lock.json
generated
|
@ -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",
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 */`
|
||||
}
|
||||
})
|
||||
]
|
||||
|
|
|
@ -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()
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue