diff --git a/packages/brian/package.json b/packages/brian/package.json index 4b9b474791b..ff05b171f74 100644 --- a/packages/brian/package.json +++ b/packages/brian/package.json @@ -1,9 +1,14 @@ { - "name": "@freesewing-patterns/brian", "version": "0.1.0", + "name": "@freesewing-patterns/brian", + "description": "Freesewing pattern for a basic body block for menswear", "author": "Joost De Cock (https://github.com/joostdecock)", "license": "MIT", - "description": "Freesewing pattern for a basic body block for menswear", + "homepage": "https://github.com/freesewing-patterns/brian#readme", + "repository": "github:freesewing-patterns/brian", + "bugs": { + "url": "https://github.com/freesewing-patterns/brian/issues" + }, "keywords": [ "freesewing", "pattern", @@ -11,20 +16,29 @@ "menswear", "block" ], - "homepage": "https://github.com/freesewing-patterns/brian#readme", - "repository": "github:freesewing-patterns/brian", - "bugs": { - "url": "https://github.com/freesewing-patterns/brian/issues" - }, "main": "dist/node/index.js", "unpkg": "dist/browser/bundle.js", "scripts": { + "precommit": "npm run pretty && lint-staged", "test": "echo \"Error: no test specified\" && exit 1", "clean": "rimraf dist", + "pretty": "npx prettier --write \"src/*.js\"", + "lint": "eslint --fix \"src/*.js\"", "browserbuild": "rollup -c rollup.browser.js", "nodebuild": "rollup -c rollup.node.js", "build": "npm run clean && npm run browserbuild && npm run nodebuild" }, + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "lint-staged": { + "*.{js,json}": [ + "prettier --write", + "git add" + ] + }, "dependencies": { "@freesewing-plugins/macro-cutonfold": "0.2.1", "freesewing": "^0.3.3" diff --git a/packages/brian/rollup.browser.js b/packages/brian/rollup.browser.js index 0c51daa24e6..816a32a67c7 100644 --- a/packages/brian/rollup.browser.js +++ b/packages/brian/rollup.browser.js @@ -1,19 +1,19 @@ import { terser } from "rollup-plugin-terser"; -import babel from 'rollup-plugin-babel'; -import resolve from 'rollup-plugin-node-resolve'; +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 path from 'path'; +import path from "path"; +import meta from "./package.json"; export default { - input: 'src/index.js', + input: "src/index.js", output: { - file: 'dist/brian.min.js', - format: 'iife', - name: 'freesewing.patterns.brian', - banner: `/**\n * Freesewing\n * (c) ${new Date().getFullYear()} Joost De Cock\n * @license MIT\n */`, + file: "dist/brian.min.js", + format: "iife", + name: "freesewing.patterns.brian", globals: { - freesewing: 'freesewing' + freesewing: "freesewing" } }, plugins: [ @@ -22,10 +22,20 @@ export default { }), json(), babel({ - exclude: 'node_modules/**' + exclude: "node_modules/**" }), + terser({ + output: { + preamble: `/**\n * ${meta.name} | v${meta.version}\n * ${ + meta.description + }\n * (c) ${new Date().getFullYear()} ${meta.author}\n * @license ${ + meta.license + }\n */` + } + }) ], external: [ - 'freesewing', path.resolve('./node_modules/freesewing/dist/freesewing.min.js') + "freesewing", + path.resolve("./node_modules/freesewing/dist/freesewing.min.js") ] }; diff --git a/packages/brian/rollup.node.js b/packages/brian/rollup.node.js index 185f7f6263d..5acbdc22531 100644 --- a/packages/brian/rollup.node.js +++ b/packages/brian/rollup.node.js @@ -1,22 +1,28 @@ -import filesize from 'rollup-plugin-filesize' -import { terser } from "rollup-plugin-terser"; -import babel from 'rollup-plugin-babel'; -import resolve from 'rollup-plugin-node-resolve'; +import filesize from "rollup-plugin-filesize"; +import babel from "rollup-plugin-babel"; +import resolve from "rollup-plugin-node-resolve"; +import json from "rollup-plugin-json"; +import meta from "./package.json"; export default { - input: 'src/index.js' -, output: { - file: 'dist/bundle.js' - , format: 'cjs' - } -, plugins: [ + input: "src/index.js", + output: { + file: "dist/module.js", + format: "cjs", + banner: `/**\n * ${meta.name} | v${meta.version}\n * ${ + meta.description + }\n * (c) ${new Date().getFullYear()} ${meta.author}\n * @license ${ + meta.license + }\n */` + }, + plugins: [ resolve({ browser: false - }) - , babel({ - exclude: 'node_modules/**' - }) - , terser() - , filesize() + }), + json(), + babel({ + exclude: "node_modules/**" + }), + filesize() ] };