1
0
Fork 0

chore(core): Migrated core from rollup to esbuild

This commit is contained in:
Joost De Cock 2022-06-12 21:49:34 +02:00
parent 87939f331f
commit ac7b1de00e
17 changed files with 198 additions and 34 deletions

View file

@ -14,10 +14,8 @@
"main": "dist/index.js",
"module": "dist/index.mjs",
"scripts": {
"watch": "rollup -c -w",
"start": "rollup -c -w",
"cibuild_step1": "rollup -c",
"build": "rollup -c",
"cibuild_step1": "node build.js",
"build": "node build.js",
"testonly": "BABEL_ENV=production ../../node_modules/.bin/_mocha tests/*.test.js --require @babel/register",
"publish": "npm run build && npm publish --access public"
},
@ -30,10 +28,7 @@
"tag": "latest"
},
"engines": {
"node": ">=12.0.0",
"node": ">=14.0.0",
"npm": ">=6"
},
"rollup": {
"exports": "default"
}
}

33
packages/core/build.js Normal file
View file

@ -0,0 +1,33 @@
/* 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'],
//minify: true,
sourcemap: true,
}
// Different formats
const formats = {
esm: "dist/index.mjs",
cjs: "dist/index.js"
}
// Let esbuild generate different formats
for (const [format, outfile] of Object.entries(formats)) esbuild
.build({ ...options, outfile, format })
.catch(() => process.exit(1))

View file

@ -29,8 +29,8 @@
"module": "dist/index.mjs",
"scripts": {
"clean": "rimraf dist",
"build": "rollup -c",
"cibuild_step1": "rollup -c",
"build": "node build.js",
"cibuild_step1": "node build.js",
"test": "BABEL_ENV=production nyc -x node_modules -x tests/fixtures -x bin-pack npx mocha tests/*.test.js",
"pubtest": "npm publish --registry http://localhost:6662",
"pubforce": "npm publish",
@ -48,6 +48,7 @@
"hooks": "^0.3.2"
},
"devDependencies": {
"esbuild": "^0.14.43",
"nyc": "^15.1.0"
},
"files": [

View file

@ -4,23 +4,32 @@ import Point from './point'
import Path from './path'
import Snippet from './snippet'
import * as utils from './utils'
import pkg from '../package.json'
import { version } from '../package.json'
export default {
version: pkg.version,
/*
* Named exports will become the default in FreeSewing v3
*/
export {
version,
Design,
Pattern,
Point,
Path,
Snippet,
utils,
}
// This is a helper for configuration files
export const pctBasedOn = utils.pctBasedOn
/*
* Default exports will be removed in FreeSewing v3
*/
export default {
version,
Design,
Pattern,
Point,
Path,
Snippet,
utils,
patterns: {},
plugins: {},
/**
* This pctBasedOn() method makes it easy to add the optional
* toAbs() and fromAbs() methods to percentage options config
*
* It was backported from the v3 roadmap into v2.
**/
pctBasedOn: utils.pctBasedOn,
}

View file

@ -1,5 +1,5 @@
const expect = require("chai").expect;
const Point = require("./dist").Point;
const Point = require("../dist/index.js").Point;
const newAttr = () => new Point(0, 0).attributes;

View file

@ -1,5 +1,5 @@
let expect = require("chai").expect;
let freesewing = require("./dist");
let freesewing = require("../dist/index.js");
it("Design constructor should return pattern constructor", () => {
let design = new freesewing.Design({

View file

@ -1,5 +1,5 @@
let expect = require("chai").expect;
let freesewing = require("./dist");
let freesewing = require("../dist/index.js");
it("Should contain all hooks", () => {
let pattern = new freesewing.Pattern();

View file

@ -1,5 +1,5 @@
let expect = require("chai").expect;
let freesewing = require("./dist");
let freesewing = require("../dist/index.js");
it("Svg constructor should initialize object", () => {
let pattern = new freesewing.Pattern();

View file

@ -1,5 +1,5 @@
const expect = require("chai").expect;
const freesewing = require("./dist");
const freesewing = require("../dist/index.js");
const round = freesewing.utils.round;
it("Should offset a line", () => {

View file

@ -1,5 +1,5 @@
let expect = require("chai").expect;
let freesewing = require("./dist");
let freesewing = require("../dist/index.js");
it("Pattern constructor should initialize object", () => {
let pattern = new freesewing.Pattern({

View file

@ -1,5 +1,5 @@
const expect = require("chai").expect;
const freesewing = require("./dist");
const freesewing = require("../dist/index.js");
const Point = freesewing.Point;
const round = freesewing.utils.round;

View file

@ -1,5 +1,5 @@
const expect = require("chai").expect;
const freesewing = require("./dist");
const freesewing = require("../dist/index.js");
const measurements = { head: 400 }
const toAbs = (val, { measurements }) => measurements.head * val

View file

@ -1,5 +1,5 @@
let expect = require("chai").expect;
let freesewing = require("./dist");
let freesewing = require("../dist/index.js");
it("Should create a snippet", () => {
let snip1 = new freesewing.Snippet("test", new freesewing.Point(12, 34));

View file

@ -1,5 +1,5 @@
let expect = require("chai").expect;
let freesewing = require("./dist");
let freesewing = require("../dist/index.js");
let pattern = new freesewing.Pattern();
let store = pattern.store;

View file

@ -3,7 +3,7 @@ const render = require("./fixtures/render.js");
const expect = require("chai").expect;
const chai = require("chai");
chai.use(require("chai-string"));
const freesewing = require("./dist");
const freesewing = require("../dist/index.js");
const round = freesewing.utils.round;
it("Svg constructor should initialize object", () => {

View file

@ -1,5 +1,5 @@
const expect = require("chai").expect;
const freesewing = require("./dist");
const freesewing = require("../dist/index.js");
const utils = freesewing.utils;
const round = utils.round;

126
yarn.lock
View file

@ -11243,6 +11243,132 @@ es6-weak-map@^2.0.1:
es6-iterator "^2.0.3"
es6-symbol "^3.1.1"
esbuild-android-64@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.43.tgz#59bf3edad6863c27aa92bbb5c1d83a9a5c981495"
integrity sha512-kqFXAS72K6cNrB6RiM7YJ5lNvmWRDSlpi7ZuRZ1hu1S3w0zlwcoCxWAyM23LQUyZSs1PbjHgdbbfYAN8IGh6xg==
esbuild-android-arm64@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.43.tgz#0258704edf92ce2463af6d2900b844b5423bed63"
integrity sha512-bKS2BBFh+7XZY9rpjiHGRNA7LvWYbZWP87pLehggTG7tTaCDvj8qQGOU/OZSjCSKDYbgY7Q+oDw8RlYQ2Jt2BA==
esbuild-darwin-64@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.43.tgz#72a47295678d4aa0656979baa8cf6d5c8c92656f"
integrity sha512-/3PSilx011ttoieRGkSZ0XV8zjBf2C9enV4ScMMbCT4dpx0mFhMOpFnCHkOK0pWGB8LklykFyHrWk2z6DENVUg==
esbuild-darwin-arm64@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.43.tgz#5f5823170b8d85b888957f0794e186caac447aca"
integrity sha512-1HyFUKs8DMCBOvw1Qxpr5Vv/ThNcVIFb5xgXWK3pyT40WPvgYIiRTwJCvNs4l8i5qWF8/CK5bQxJVDjQvtv0Yw==
esbuild-freebsd-64@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.43.tgz#e4a48b08181053837e6cd9bda19ae0af94d493b0"
integrity sha512-FNWc05TPHYgaXjbPZO5/rJKSBslfG6BeMSs8GhwnqAKP56eEhvmzwnIz1QcC9cRVyO+IKqWNfmHFkCa1WJTULA==
esbuild-freebsd-arm64@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.43.tgz#386e780d36c1dedf3a1cdab79e0bbacd873274e6"
integrity sha512-amrYopclz3VohqisOPR6hA3GOWA3LZC1WDLnp21RhNmoERmJ/vLnOpnrG2P/Zao+/erKTCUqmrCIPVtj58DRoA==
esbuild-linux-32@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.43.tgz#040ed6b9ebf06d73acdf2acce7f1cd0c12fbc6a5"
integrity sha512-KoxoEra+9O3AKVvgDFvDkiuddCds6q71owSQEYwjtqRV7RwbPzKxJa6+uyzUulHcyGVq0g15K0oKG5CFBcvYDw==
esbuild-linux-64@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.43.tgz#8abbb7594ab6a008f2aae72d95d8a4fdc59d9000"
integrity sha512-EwINwGMyiJMgBby5/SbMqKcUhS5AYAZ2CpEBzSowsJPNBJEdhkCTtEjk757TN/wxgbu3QklqDM6KghY660QCUw==
esbuild-linux-arm64@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.43.tgz#4e8e9ce77cbf7efec65e79e512b3d2fbd2da398f"
integrity sha512-UlSpjMWllAc70zYbHxWuDS3FJytyuR/gHJYBr8BICcTNb/TSOYVBg6U7b3jZ3mILTrgzwJUHwhEwK18FZDouUQ==
esbuild-linux-arm@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.43.tgz#9e41ee5e099c0ffdfd150da154330c2c0226cc96"
integrity sha512-e6YzQUoDxxtyamuF12eVzzRC7bbEFSZohJ6igQB9tBqnNmIQY3fI6Cns3z2wxtbZ3f2o6idkD2fQnlvs2902Dg==
esbuild-linux-mips64le@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.43.tgz#4b41f465a787f91cc4fe7dffa0dcabf655935a1a"
integrity sha512-f+v8cInPEL1/SDP//CfSYzcDNgE4CY3xgDV81DWm3KAPWzhvxARrKxB1Pstf5mB56yAslJDxu7ryBUPX207EZA==
esbuild-linux-ppc64le@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.43.tgz#ca15934f5b46728dd9ac05270e783e7feaca9eaf"
integrity sha512-5wZYMDGAL/K2pqkdIsW+I4IR41kyfHr/QshJcNpUfK3RjB3VQcPWOaZmc+74rm4ZjVirYrtz+jWw0SgxtxRanA==
esbuild-linux-riscv64@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.43.tgz#70fce2b5a0605a67e58b5a357b0e00be1029836d"
integrity sha512-lYcAOUxp85hC7lSjycJUVSmj4/9oEfSyXjb/ua9bNl8afonaduuqtw7hvKMoKuYnVwOCDw4RSfKpcnIRDWq+Bw==
esbuild-linux-s390x@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.43.tgz#318d03b4f4ccc7fa44ac7562121cf4a4529e477a"
integrity sha512-27e43ZhHvhFE4nM7HqtUbMRu37I/4eNSUbb8FGZWszV+uLzMIsHDwLoBiJmw7G9N+hrehNPeQ4F5Ujad0DrUKQ==
esbuild-netbsd-64@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.43.tgz#86130ce204ef0162a96e863b55851efecc92f423"
integrity sha512-2mH4QF6hHBn5zzAfxEI/2eBC0mspVsZ6UVo821LpAJKMvLJPBk3XJO5xwg7paDqSqpl7p6IRrAenW999AEfJhQ==
esbuild-openbsd-64@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.43.tgz#0229dc2db2ded97b03bb93bba7646b30ffdf5d0d"
integrity sha512-ZhQpiZjvqCqO8jKdGp9+8k9E/EHSA+zIWOg+grwZasI9RoblqJ1QiZqqi7jfd6ZrrG1UFBNGe4m0NFxCFbMVbg==
esbuild-sunos-64@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.43.tgz#17e316216eb9f1de25d52a9000356ae5b869e736"
integrity sha512-DgxSi9DaHReL9gYuul2rrQCAapgnCJkh3LSHPKsY26zytYppG0HgkgVF80zjIlvEsUbGBP/GHQzBtrezj/Zq1Q==
esbuild-windows-32@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.43.tgz#a173757bc6dfd0f2656ff40b64f7f9290745778e"
integrity sha512-Ih3+2O5oExiqm0mY6YYE5dR0o8+AspccQ3vIAtRodwFvhuyGLjb0Hbmzun/F3Lw19nuhPMu3sW2fqIJ5xBxByw==
esbuild-windows-64@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.43.tgz#c447b23126aad158c4fe6a394342cafd97926ed1"
integrity sha512-8NsuNfI8xwFuJbrCuI+aBqNTYkrWErejFO5aYM+yHqyHuL8mmepLS9EPzAzk8rvfaJrhN0+RvKWAcymViHOKEw==
esbuild-windows-arm64@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.43.tgz#3caed1b430d394d7a7836407b9d36c4750246e76"
integrity sha512-7ZlD7bo++kVRblJEoG+cepljkfP8bfuTPz5fIXzptwnPaFwGS6ahvfoYzY7WCf5v/1nX2X02HDraVItTgbHnKw==
esbuild@^0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.43.tgz#c227d585c512d3e0f23b88f50b8e16501147f647"
integrity sha512-Uf94+kQmy/5jsFwKWiQB4hfo/RkM9Dh7b79p8yqd1tshULdr25G2szLz631NoH3s2ujnKEKVD16RmOxvCNKRFA==
optionalDependencies:
esbuild-android-64 "0.14.43"
esbuild-android-arm64 "0.14.43"
esbuild-darwin-64 "0.14.43"
esbuild-darwin-arm64 "0.14.43"
esbuild-freebsd-64 "0.14.43"
esbuild-freebsd-arm64 "0.14.43"
esbuild-linux-32 "0.14.43"
esbuild-linux-64 "0.14.43"
esbuild-linux-arm "0.14.43"
esbuild-linux-arm64 "0.14.43"
esbuild-linux-mips64le "0.14.43"
esbuild-linux-ppc64le "0.14.43"
esbuild-linux-riscv64 "0.14.43"
esbuild-linux-s390x "0.14.43"
esbuild-netbsd-64 "0.14.43"
esbuild-openbsd-64 "0.14.43"
esbuild-sunos-64 "0.14.43"
esbuild-windows-32 "0.14.43"
esbuild-windows-64 "0.14.43"
esbuild-windows-arm64 "0.14.43"
escalade@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"