From 2c3e46a8cf674f3e745ff61973aa2cc69f3e3896 Mon Sep 17 00:00:00 2001
From: Joost De Cock
Date: Wed, 15 Jun 2022 12:29:22 +0200
Subject: [PATCH] chore(hi): Adapted hi to esbuild migration
---
packages/hi/CHANGELOG.md | 5 ----
packages/hi/README.md | 25 ++++++++--------
packages/hi/build.js | 55 ++++++++++++++++++++++++++++++++++
packages/hi/package.json | 57 +++++++++---------------------------
packages/hi/rollup.config.js | 29 ------------------
5 files changed, 82 insertions(+), 89 deletions(-)
create mode 100644 packages/hi/build.js
delete mode 100644 packages/hi/rollup.config.js
diff --git a/packages/hi/CHANGELOG.md b/packages/hi/CHANGELOG.md
index 4b4879320f5..48a370a9d8b 100644
--- a/packages/hi/CHANGELOG.md
+++ b/packages/hi/CHANGELOG.md
@@ -1,10 +1,5 @@
# Change log for: @freesewing/hi
-## 2.0.0 (2022-06-12)
-
-### Added
-
- - Initial release
This is the **initial release**, and the start of this change log.
diff --git a/packages/hi/README.md b/packages/hi/README.md
index 7e30cc2b420..474dd0db280 100644
--- a/packages/hi/README.md
+++ b/packages/hi/README.md
@@ -22,7 +22,7 @@

 Elena FdR π π |
 Emmanuel Nyachoke π» π |
+  Enoch Riese π» |
 EvEkSwed π |
 Fantastik-Maman π |
 Forrest O. π |
 FrΓ©dΓ©ric π |
-  Glenn Matthews π |
+  Glenn Matthews π |
 Igor Couto π |
 Ikko Ashimine π |
 Irapeke π |
 Jacek Sawoszczuk π |
 Jason Williams π |
 Jeremy Jackson π» |
-  Joebidido π |
+  Joebidido π |
 Joost De Cock π§ |
 Josh Essman π |
 Kake π |
 Kapunahele Wong π |
 Karen π π |
 Katie McGinley π |
-  Kieran Klaassen π» |
+  Kieran Klaassen π» |
 Kittycatou π |
 Kris π |
 Kristin Ruben π» |
 Loudepeuter π |
 Lucian π |
 Marcus π |
-  Martin Tribo π |
+  Martin Tribo π |
 Nadege Michel β οΈ π |
 Natalia π» π¨ π |
 Nathan Yergler π |
 Nick Dower π π» π |
 Patrick Forringer π |
 Paul π π π |
-  Phillip Thelen π» |
+  Phillip Thelen π» |
 Pixieish π |
 Prof. dr. Sorcha NΓ Dhubhghaill π |
 Quentin FELIX π» π¨ |
 Rik Hekker π |
 Sam Livingston-Gray π |
 Sanne π» π |
-  Sara Latorre π |
+  Sara Latorre π |
 SeaZeeZee π π» |
 Slylele π π |
 Soazillon π |
 SoneaTheBest π |
 Stefan Sydow π π π» |
 TrΓona π |
-  Unmutual π |
+  Unmutual π |
 Wouter van Wageningen π» π¨ π§ |
 amysews π |
 beautifulsummermoon π |
 berce π |
 biou π» |
 bobgeorgethe3rd π» π π¨ |
-  brmlyklr π |
+  brmlyklr π |
 chri5b π» β οΈ |
 dingcycle π |
 drowned-in-books π¬ |
 econo202 π |
 ericamattos π |
 fightingrabbit π» |
-  gaylyndie π |
+  gaylyndie π |
 grimlokason π» |
 hellgy π¨ |
 jackseye π |
 marckiesel π |
 mesil π |
 starfetch π» π π π¨ |
-  ttimearl π |
+  ttimearl π |
 tuesgloomsday π |
 valadaptive π» |
 viocky π |
diff --git a/packages/hi/build.js b/packages/hi/build.js
new file mode 100644
index 00000000000..c77d47c1637
--- /dev/null
+++ b/packages/hi/build.js
@@ -0,0 +1,55 @@
+/* This script will build the package with esbuild */
+const esbuild = require('esbuild')
+const pkg = require('./package.json')
+
+// Create banner based on package info
+const banner = `/**
+ * ${pkg.name} | v${pkg.version}
+ * ${pkg.description}
+ * (c) ${new Date().getFullYear()} ${pkg.author}
+ * @license ${pkg.license}
+ */`
+
+// Shared esbuild options
+const options = {
+ banner: { js: banner },
+ bundle: true,
+ entryPoints: ['src/index.js'],
+ external: ["@freesewing"],
+ metafile: process.env.VERBOSE ? true : false,
+ minify: process.env.NO_MINIFY ? false : true,
+ sourcemap: true,
+}
+
+// Different formats
+const formats = {
+ cjs: "dist/index.js",
+ esm: "dist/index.mjs",
+}
+
+// Let esbuild generate different formats
+let result
+(async () => {
+ for (const [format, outfile] of Object.entries(formats)) {
+ result = await esbuild
+ .build({ ...options, outfile, format })
+ .catch(() => process.exit(1))
+ }
+
+ if (process.env.VERBOSE) {
+ const info = await esbuild.analyzeMetafile(result.metafile)
+ console.log(info)
+ }
+
+ // Also build a version that has all dependencies bundled
+ // This makes it easy to run tests
+ await esbuild
+ .build({
+ ...options,
+ outfile: 'tests/dist/index.mjs',
+ format: 'esm',
+ external: [],
+ })
+ .catch(() => process.exit(1))
+
+})()
diff --git a/packages/hi/package.json b/packages/hi/package.json
index c63547672e3..0bbfda5bf28 100644
--- a/packages/hi/package.json
+++ b/packages/hi/package.json
@@ -1,7 +1,7 @@
{
"name": "@freesewing/hi",
- "version": "2.20.8",
- "description": "A FreeSewing pattern for a shark",
+ "version": "2.21.0-alpha.0",
+ "description": "A FreeSewing pattern for a shark plush toy",
"author": "woutervdub (https://github.com/woutervdub)",
"homepage": "https://freesewing.org/",
"repository": "github:freesewing/freesewing",
@@ -27,51 +27,25 @@
"main": "dist/index.js",
"module": "dist/index.mjs",
"scripts": {
+ "build": "node build.js",
+ "cibuild_step1": "node build.js",
"clean": "rimraf dist",
- "build": "rollup -c",
- "cibuild_step1": "rollup -c",
- "test": "BABEL_ENV=production npx mocha tests/*.test.mjs --require @babel/register",
- "pubtest": "npm publish --registry http://localhost:6662",
- "pubforce": "npm publish",
+ "mbuild": "NO_MINIFY=1 node build.js",
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
- "start": "rollup -c -w",
- "netlify": "echo \"Not configured yet\"",
+ "test": "BABEL_ENV=production npx mocha tests/*.test.mjs --require @babel/register",
+ "vbuild": "VERBOSE=1 node build.js",
+ "prettier": "npx prettier --write 'src/*.js' 'config/*.js'",
"testci": "BABEL_ENV=production npx mocha tests/*.test.mjs --require @babel/register --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
- "@freesewing/core": "^2.20.8",
- "@freesewing/plugin-bundle": "^2.20.8"
+ "@freesewing/core": "^2.21.0-alpha.0",
+ "@freesewing/plugin-bundle": "^2.21.0-alpha.0",
+ "@freesewing/config-helpers": "^2.21.0-alpha.0"
},
"dependencies": {},
"devDependencies": {
- "react": "^17.0.2",
- "react-dom": "^17.0.2",
- "@babel/plugin-proposal-class-properties": "^7.13.0",
- "@freesewing/components": "^2.20.8",
- "@freesewing/css-theme": "^2.20.8",
- "@freesewing/i18n": "^2.20.8",
- "@freesewing/mui-theme": "^2.20.8",
- "@freesewing/plugin-bust": "^2.20.8",
- "@freesewing/plugin-buttons": "^2.20.8",
- "@freesewing/plugin-flip": "^2.20.8",
- "@freesewing/utils": "^2.20.8",
- "react-scripts": "^5.0.0",
- "webpack": "^5.67.0",
- "rollup": "^2.66.1",
- "@rollup/plugin-babel": "^5.3.0",
- "@rollup/plugin-commonjs": "^21.0.1",
- "@rollup/plugin-json": "^4.1.0",
- "@rollup/plugin-node-resolve": "^13.1.3",
- "rollup-plugin-peer-deps-external": "^2.2.4",
- "@material-ui/core": "^4.12.3",
- "@material-ui/icons": "^4.11.2",
- "@material-ui/lab": "^v4.0.0-alpha.60",
- "axios": "^0.25.0",
- "react-intl": "^5.24.4",
- "prop-types": "^15.8.1",
"mocha": "^9.1.1",
- "chai": "^4.2.0",
- "@babel/register": "^7.10.5"
+ "chai": "^4.2.0"
},
"files": [
"dist/*",
@@ -80,13 +54,10 @@
],
"publishConfig": {
"access": "public",
- "tag": "latest"
+ "tag": "next"
},
"engines": {
- "node": ">=12.0.0",
+ "node": ">=14.0.0",
"npm": ">=6"
- },
- "rollup": {
- "exports": "default"
}
}
diff --git a/packages/hi/rollup.config.js b/packages/hi/rollup.config.js
deleted file mode 100644
index 83bc5ef0eec..00000000000
--- a/packages/hi/rollup.config.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import resolve from '@rollup/plugin-node-resolve'
-import commonjs from '@rollup/plugin-commonjs'
-import json from '@rollup/plugin-json'
-import peerDepsExternal from 'rollup-plugin-peer-deps-external'
-import { name, version, description, author, license, main, module, rollup } from './package.json'
-
-const banner = `/**\n * ${name} | v${version}\n * ${description}\n * (c) ${new Date().getFullYear()} ${author}\n * @license ${license}\n */`
-const output = [
- {
- banner,
- file: main,
- format: 'cjs',
- sourcemap: true,
- exports: rollup.exports,
- },
-]
-if (typeof module !== 'undefined')
- output.push({
- banner,
- file: module,
- format: 'es',
- sourcemap: true,
- })
-
-export default {
- input: 'src/index.js',
- output,
- plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
-}