Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
7e81d84
add mpx package
iobuhov Jul 11, 2025
6005437
feat: add arktype
iobuhov Jul 11, 2025
6fb306a
feat: simple build
iobuhov Jul 12, 2025
7d3be69
refactor
iobuhov Jul 12, 2025
f1ebbcd
chore: config and parser
iobuhov Jul 14, 2025
50f3964
chore: add options
iobuhov Jul 14, 2025
13bf0f3
feat: connect build command with rolldown
iobuhov Jul 14, 2025
98e48a4
chore: update config
iobuhov Jul 14, 2025
0d00aa5
chore: add logger
iobuhov Jul 14, 2025
00798dd
chore: add editor entries
iobuhov Jul 14, 2025
828efca
chore: report build errors in watch mode
iobuhov Jul 14, 2025
8a23f3d
chore: finish with mpk
iobuhov Jul 14, 2025
57d17cd
chore: refactor
iobuhov Jul 15, 2025
34c8d81
chore: add fs utils and change logging
iobuhov Jul 15, 2025
44e0b57
chore: add asset watchers
iobuhov Jul 15, 2025
2bd95ec
chore: extract glob
iobuhov Jul 15, 2025
9a3b913
chore: add project path getter
iobuhov Jul 15, 2025
a23eb22
feat: print project path
iobuhov Jul 15, 2025
b5c3e4a
chore: start adding plugins
iobuhov Jul 15, 2025
5a038ff
chore: add license plugin
iobuhov Jul 15, 2025
1716019
chore: add filesize for mpk
iobuhov Jul 15, 2025
c222b38
chore: remove cpx2
iobuhov Jul 15, 2025
af68434
chore: rename task
iobuhov Jul 15, 2025
9cc7728
chore: add deploy utility
iobuhov Jul 15, 2025
49248eb
chore: easy config print
iobuhov Jul 15, 2025
ab70a68
chore: change how config is created
iobuhov Jul 16, 2025
3559b55
feat: copy all dirs from content root to deployment
iobuhov Jul 16, 2025
bab2167
chore: add readme
iobuhov Jul 16, 2025
d44f9c4
chore: add dotenv
iobuhov Jul 16, 2025
321fd3a
feat: finish load config
iobuhov Jul 16, 2025
2e4f6e5
refactor: change naming
iobuhov Jul 16, 2025
dcdf058
feat: add split for web and native
iobuhov Jul 16, 2025
f743d87
chore: change cli usage
iobuhov Jul 16, 2025
2172b2d
chore: some cli fixes
iobuhov Jul 16, 2025
3ad689d
feat: add typings generation
iobuhov Jul 16, 2025
76e61e1
feat: add support for MPKOUTPUT
iobuhov Jul 16, 2025
dc7b11b
feat: add show config flag
iobuhov Jul 16, 2025
5fa8acd
chore: extend method
iobuhov Jul 16, 2025
996ef95
feat: add postcss and sass
iobuhov Jul 16, 2025
331b22f
feat: allow local install via npm
iobuhov Jul 16, 2025
762ab66
chore: add getting started
iobuhov Jul 16, 2025
59df117
finish with plugins ✨
iobuhov Jul 16, 2025
3c00af8
chore: minor fixes
iobuhov Jul 17, 2025
5117666
update deps & change project config
iobuhov Jul 17, 2025
594f43e
fix: change cleanup strategy
iobuhov Jul 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions packages/mpx/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
box
input
9 changes: 9 additions & 0 deletions packages/mpx/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
packages/generator-widget/generators/app/templates/packages/__tests__/outputs/
packages/generator-widget/generators/app/templates/**/*.ejs
packages/pluggable-widgets-tools/tests/projects
*.png
*.svg
*.snap
**/dist
.idea
.vscodepnpm-lock.yaml
14 changes: 14 additions & 0 deletions packages/mpx/.prettierrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
module.exports = {
trailingComma: "none",
useTabs: false,
tabWidth: 4,
semi: true,
singleQuote: false,
printWidth: 120,
bracketSpacing: true,
bracketSameLine: false,
arrowParens: "avoid",
proseWrap: "always",
xmlSelfClosingSpace: true,
xmlWhitespaceSensitivity: "ignore",
};
61 changes: 61 additions & 0 deletions packages/mpx/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
## mpx

Building widgets with rolldown

> NOTE: This tool in alpha

## Getting started

### 1. Create tarball

Let's assume you cloned this repo to `~/code/widgets-tools`

1. `$ cd ~/code/widgets-tools/packages/mpx`
2. `$ pnpm install`
3. `$ pnpm pack` to create tarball

### 2. Install to widget

with `npm`

> `$ npm install ~/code/mpx/mendix-mpx-0-y-z.tgz`

with `pnpm`

> `pnpm install <path>/mpx/mendix-mpx-0-y-z.tgz`

### 3. Change scripts

In your `package.json`

```diff
- "build": "pluggable-widgets-tools build:web"
+ "build": "mpx"
```

and

```diff
- "start": "pluggable-widgets-tools start:server"
+ "start": "mpx -w"
```

## Usage

```
mpx/0.1.0

Usage:
$ mpx [options] [dir]

Build the widget in the specified directory. If the directory is omitted, use the current directory.

Options:
-w, --watch watch for changes and rebuild (default: false)
-m, --minify minify the output (this option is 'on' in CI environment) (default: false)
-p, --platform <platform> build platform (web or node) (default: web)
--show-config print project config and exit (default: false)
-h, --help Display this message
-v, --version Display version number

```
3 changes: 3 additions & 0 deletions packages/mpx/bin/mpx.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env node

import "../dist/mpx.js";
61 changes: 61 additions & 0 deletions packages/mpx/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
{
"name": "@mendix/mpx",
"version": "0.1.0",
"description": "Mendix tool for bundling pluggable widgets",
"type": "module",
"bin": {
"mpx": "./bin/mpx.js"
},
"files": [
"bin",
"dist"
],
"scripts": {
"test": "echo 'test is missing'",
"dev": "premove dist && rolldown -c rolldown.config.ts -w",
"build": "premove dist && rolldown -c rolldown.config.ts",
"prepack": "pnpm build"
},
"keywords": [
"mendix",
"cli",
"widgets",
"tool"
],
"author": "",
"license": "Apache-2.0",
"packageManager": "pnpm@10.13.1+sha512.37ebf1a5c7a30d5fabe0c5df44ee8da4c965ca0c5af3dbab28c3a1681b70a256218d05c81c9c0dcf767ef6b8551eb5b960042b9ed4300c59242336377e01cfad",
"devDependencies": {
"@tsconfig/node22": "^22.0.2",
"@types/node": "^24.0.13",
"@types/postcss-import": "^14.0.3",
"@types/postcss-url": "^10.0.4",
"cac": "^6.7.14",
"chokidar": "^4.0.3",
"consola": "^3.4.2",
"dotenv": "^17.2.0",
"fast-glob": "^3.3.3",
"filesize": "^11.0.1",
"picocolors": "^1.1.1",
"premove": "^4.0.0",
"prettier": "^3.6.2",
"pretty-ms": "^9.2.0",
"rolldown": "1.0.0-beta.26",
"signal-exit": "^4.1.0",
"typescript": "^5.8.3",
"zip-a-folder": "^3.1.9",
"zod": "^4.0.5"
},
"dependencies": {
"@rollup/plugin-image": "^3.0.3",
"@rollup/plugin-url": "^8.0.2",
"postcss": "^8.5.6",
"postcss-import": "^16.1.1",
"postcss-url": "^10.1.3",
"rolldown": "1.0.0-beta.26",
"rollup-plugin-license": "^3.6.0",
"rollup-plugin-postcss": "^4.0.2",
"sass": "^1.89.2",
"xml2js": "^0.6.2"
}
}
Loading
Loading