Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
60d91e1
add mpx package
iobuhov Jul 11, 2025
e566cfd
feat: add arktype
iobuhov Jul 11, 2025
43087f9
feat: simple build
iobuhov Jul 12, 2025
60beb3a
refactor
iobuhov Jul 12, 2025
73e56a3
chore: config and parser
iobuhov Jul 14, 2025
2e17efb
chore: add options
iobuhov Jul 14, 2025
afc09e9
feat: connect build command with rolldown
iobuhov Jul 14, 2025
c184cef
chore: update config
iobuhov Jul 14, 2025
396d72e
chore: add logger
iobuhov Jul 14, 2025
72e88ff
chore: add editor entries
iobuhov Jul 14, 2025
624c739
chore: report build errors in watch mode
iobuhov Jul 14, 2025
85f427b
chore: finish with mpk
iobuhov Jul 14, 2025
a588180
chore: refactor
iobuhov Jul 15, 2025
432d01d
chore: add fs utils and change logging
iobuhov Jul 15, 2025
f42c24f
chore: add asset watchers
iobuhov Jul 15, 2025
43202fb
chore: extract glob
iobuhov Jul 15, 2025
c63f6f6
chore: add project path getter
iobuhov Jul 15, 2025
2cfb95a
feat: print project path
iobuhov Jul 15, 2025
e0dabf4
chore: start adding plugins
iobuhov Jul 15, 2025
b2e2cda
chore: add license plugin
iobuhov Jul 15, 2025
d380b24
chore: add filesize for mpk
iobuhov Jul 15, 2025
6e123af
chore: remove cpx2
iobuhov Jul 15, 2025
bc2590f
chore: rename task
iobuhov Jul 15, 2025
29330ef
chore: add deploy utility
iobuhov Jul 15, 2025
2b3ff79
chore: easy config print
iobuhov Jul 15, 2025
e0e07d3
chore: change how config is created
iobuhov Jul 16, 2025
524ff6d
feat: copy all dirs from content root to deployment
iobuhov Jul 16, 2025
a6b948e
chore: add readme
iobuhov Jul 16, 2025
5814cf9
chore: add dotenv
iobuhov Jul 16, 2025
eebbcde
feat: finish load config
iobuhov Jul 16, 2025
b177dc1
refactor: change naming
iobuhov Jul 16, 2025
0b88706
feat: add split for web and native
iobuhov Jul 16, 2025
1516b36
chore: change cli usage
iobuhov Jul 16, 2025
01643e1
chore: some cli fixes
iobuhov Jul 16, 2025
619ab06
feat: add typings generation
iobuhov Jul 16, 2025
917a7c0
feat: add support for MPKOUTPUT
iobuhov Jul 16, 2025
9475fc0
feat: add show config flag
iobuhov Jul 16, 2025
35ef83e
chore: extend method
iobuhov Jul 16, 2025
ea1fbed
feat: add postcss and sass
iobuhov Jul 16, 2025
4d6c244
feat: allow local install via npm
iobuhov Jul 16, 2025
e97aaa5
chore: add getting started
iobuhov Jul 16, 2025
e910d08
finish with plugins ✨
iobuhov Jul 16, 2025
aa8730d
chore: minor fixes
iobuhov Jul 17, 2025
07859ba
update deps & change project config
iobuhov Jul 17, 2025
bf9a253
fix: change cleanup strategy
iobuhov Jul 17, 2025
988ea63
WIP
iobuhov Feb 11, 2026
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";
Binary file added packages/mpx/mendix-mpx-0.1.1.tgz
Binary file not shown.
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.1",
"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