diff --git a/.gitignore b/.gitignore index 4911536c5..d9ea5a9bb 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ .settings .vertx .vscode +.download target *.iml sandbox diff --git a/es4x/src/main/java/io/reactiverse/es4x/impl/ESModuleIO.java b/es4x/src/main/java/io/reactiverse/es4x/impl/ESModuleIO.java index b3b2695ae..830e48335 100644 --- a/es4x/src/main/java/io/reactiverse/es4x/impl/ESModuleIO.java +++ b/es4x/src/main/java/io/reactiverse/es4x/impl/ESModuleIO.java @@ -242,6 +242,7 @@ public String readFile(URI uri, boolean main, boolean adapt) throws IOException if (adapt) { return adapt(content); } + // TODO: extract the sourcemap if present and store it so the logger can use it return content; } diff --git a/es4x/src/main/java/io/reactiverse/es4x/impl/MJSVerticleFactory.java b/es4x/src/main/java/io/reactiverse/es4x/impl/MJSVerticleFactory.java index b9f5dcd6b..d9cc595f7 100644 --- a/es4x/src/main/java/io/reactiverse/es4x/impl/MJSVerticleFactory.java +++ b/es4x/src/main/java/io/reactiverse/es4x/impl/MJSVerticleFactory.java @@ -78,6 +78,7 @@ public void start(Promise startPromise) { try { // the main script buffer final Buffer buffer = vertx.fileSystem().readFileBlocking(fsVerticleName); + // TODO: parse sourcemap and store it for the logger final Source source = Source .newBuilder("js", new File(fsVerticleName)) // strip the shebang if present diff --git a/examples/bundle-rollup/package.json b/examples/bundle-rollup/package.json new file mode 100644 index 000000000..8307350aa --- /dev/null +++ b/examples/bundle-rollup/package.json @@ -0,0 +1,25 @@ +{ + "name": "bundle-rollup", + "version": "1.0.0", + "private": true, + "description": "A barebones application", + "main": "bundle.js", + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@vertx/core": "latest", + "@vertx/web": "latest" + }, + "devDependencies": { + "@vertx/unit": "latest", + "@es4x/create": "latest", + "rollup": "latest", + "@rollup/plugin-node-resolve": "latest" + }, + "scripts": { + "postinstall": "es4x install", + "prestart": "rollup -c", + "start": "es4x" + } +} diff --git a/examples/bundle-rollup/rollup.config.mjs b/examples/bundle-rollup/rollup.config.mjs new file mode 100644 index 000000000..691141b14 --- /dev/null +++ b/examples/bundle-rollup/rollup.config.mjs @@ -0,0 +1,19 @@ +// rollup.config.mjs +import resolve from '@rollup/plugin-node-resolve'; + +export default { + input: 'src/index.mjs', + output: { + sourcemap: true, + file: 'bundle.js', + format: 'cjs' + }, + plugins: [ + resolve({ + // pass custom options to the resolve plugin + moduleDirectories: ['node_modules'] + }) + ], + // indicate which modules should be treated as external + external: ['lodash'] +}; diff --git a/examples/bundle-rollup/src/index.mjs b/examples/bundle-rollup/src/index.mjs new file mode 100644 index 000000000..bc80c3c57 --- /dev/null +++ b/examples/bundle-rollup/src/index.mjs @@ -0,0 +1,12 @@ +import { Router } from '@vertx/web'; +import { home } from './routes.mjs'; + +const app = Router.router(vertx); + +console.log(typeof home); + +app.route('/').handler(home); + +vertx.createHttpServer() + .requestHandler(app) + .listen(8080); diff --git a/examples/bundle-rollup/src/index.test.mjs b/examples/bundle-rollup/src/index.test.mjs new file mode 100644 index 000000000..fa7a50cfe --- /dev/null +++ b/examples/bundle-rollup/src/index.test.mjs @@ -0,0 +1,10 @@ +import { TestSuite } from '@vertx/unit'; + +const suite = TestSuite.create("the_test_suite"); + +suite.test("my_test_case", function (context) { + var s = "value"; + context.assertEquals("value", s); +}); + +suite.run(); diff --git a/examples/bundle-rollup/src/routes.mjs b/examples/bundle-rollup/src/routes.mjs new file mode 100644 index 000000000..79e71bf10 --- /dev/null +++ b/examples/bundle-rollup/src/routes.mjs @@ -0,0 +1,4 @@ +export function home(ctx) { + ctx.response() + .end('Hello from Vert.x Web!'); +}