Skip to content

Commit

Permalink
feat: bundle library and expose single file + preact dir
Browse files Browse the repository at this point in the history
The library no longer exposes its internal structure in `lib`.
Instead, exports can be accessed from the root.

```javascript
import { Group, TextFieldEntry } from @bpmn-io/properties-panel;

const myGroup = {
  id: myGroup,
  component: Group,
  entries: [
    { id: customEntry, component: <TextFieldEntry /* ... */ /> }
  ]
};
```

BREAKING CHANGES:

* Internal structure of the library is no longer exposed.
  Use root exports instead.
  • Loading branch information
barmac committed Dec 10, 2021
1 parent e7ac41c commit 26e11c4
Show file tree
Hide file tree
Showing 9 changed files with 238 additions and 8 deletions.
3 changes: 2 additions & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/node_modules
/lib
/preact
/preact
/dist
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/node_modules
/coverage
/lib
/preact
/preact
/dist
156 changes: 156 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 11 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@
"name": "@bpmn-io/properties-panel",
"version": "0.9.0",
"description": "Library for creating bpmn-io properties panels.",
"main": "lib/index.js",
"main": "dist/index.js",
"module": "dist/index.esm.js",
"files": [
"lib",
"dist",
"assets",
"preact"
],
"scripts": {
"all": "run-s lint test",
"build": "del-cli lib preact && cp -r node_modules/preact . && babel -s -d lib src",
"build:watch": "babel -w -s -d lib src",
"all": "run-s lint build test",
"build": "del-cli preact dist && rollup -c",
"build:watch": "rollup -c --watch",
"lint": "eslint .",
"dev": "npm test -- --auto-watch --no-single-run",
"test": "karma start karma.config.js",
Expand Down Expand Up @@ -42,6 +43,9 @@
"@babel/cli": "^7.14.5",
"@babel/core": "^7.14.3",
"@babel/plugin-transform-react-jsx": "^7.14.3",
"@rollup/plugin-babel": "^5.3.0",
"@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-node-resolve": "^13.0.6",
"@testing-library/preact": "^2.0.1",
"@testing-library/preact-hooks": "^1.1.0",
"babel-loader": "^8.2.2",
Expand Down Expand Up @@ -72,6 +76,8 @@
"puppeteer": "^10.0.0",
"raw-loader": "^4.0.2",
"react-svg-loader": "^3.0.3",
"rollup": "^2.61.0",
"rollup-plugin-copy": "^3.4.0",
"sinon": "^11.1.1",
"sinon-chai": "^3.7.0",
"sirv-cli": "^1.0.12",
Expand Down
43 changes: 43 additions & 0 deletions rollup.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import babel from '@rollup/plugin-babel';
import copy from 'rollup-plugin-copy';
import json from '@rollup/plugin-json';
import resolve from '@rollup/plugin-node-resolve';

import pkg from './package.json';
import babelConfig from './.babelrc.json';

export default [
{
input: 'src/index.js',
output: [
{
sourcemap: true,
format: 'commonjs',
file: pkg.main
},
{
sourcemap: true,
format: 'esm',
file: pkg.module
}
],
external: [
'classnames',
'min-dash',
'min-dom',

// exclude local preact copy to share it with extensions
/\.\/preact/
],
plugins: [
copy({
targets: [
{ src: 'node_modules/preact', dest: '.', copyOnce: true }
]
}),
babel({ ...babelConfig, babelHelpers: 'bundled' }),
json(),
resolve()
]
}
];
10 changes: 10 additions & 0 deletions src/components/entries/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
export { default as CheckboxEntry, isEdited as isCheckboxEntryEdited } from './Checkbox';
export { default as CollapsibleEntry } from './Collapsible';
export { default as DescriptionEntry } from './Description';
export { default as ListEntry } from './List';
export { default as NumberFieldEntry, isEdited as isNumberFieldEntryEdited } from './NumberField';
export { default as SelectEntry, isEdited as isSelectEntryEdited } from './Select';
export { default as SimpleEntry, isEdited as isSimpleEntryEdited } from './Simple';
export { default as TextAreaEntry, isEdited as isTextAreaEntryEdited } from './TextArea';
export { default as TextFieldEntry, isEdited as isTextFieldEntryEdited } from './TextField';
export { default as ToggleSwitchEntry, isEdited as isToggleSwitchEntryEdited } from './ToggleSwitch';
8 changes: 8 additions & 0 deletions src/components/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
export { DropdownButton } from './DropdownButton';
export { default as Group } from './Group';
export { default as Header } from './Header';
export { HeaderButton } from './HeaderButton';
export { default as ListGroup } from './ListGroup';
export { default as ListItem } from './ListItem';
export * from './icons';
export * from './entries';
1 change: 1 addition & 0 deletions src/features/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default as DebounceInputModule } from './debounce-input';
6 changes: 5 additions & 1 deletion src/index.js
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
export { default } from './PropertiesPanel';
export { default as PropertiesPanel } from './PropertiesPanel';
export * from './components';
export * from './context';
export * from './features';
export * from './hooks';

0 comments on commit 26e11c4

Please sign in to comment.