diff --git a/.gitignore b/.gitignore index 9f6f960..b2409e6 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,7 @@ gradle out stale_outputs_checked src/main/resources/public/dist -src/main/js/**/*.js +frontend/**/*.js node_modules lib .merlin \ No newline at end of file diff --git a/bsconfig.json b/bsconfig.json index e80eb5c..616f71c 100644 --- a/bsconfig.json +++ b/bsconfig.json @@ -1,22 +1,21 @@ { - "name": "bs", - "version": "0.1.0", + "name": "reason-react-examples", + "reason": { + "react-jsx": 3, + }, "sources": { - "dir" : "src/main/js", + "dir" : "frontend", "subdirs" : true }, - "package-specs": { + "bsc-flags": ["-bs-super-errors", "-bs-no-version-header"], + "package-specs": [{ "module": "commonjs", "in-source": true - }, + }], "suffix": ".bs.js", + "namespace": true, "bs-dependencies": [ + "reason-react" ], - "warnings": { - "error" : "+101" - }, - "reason": { - "react-jsx": 3 - }, "refmt": 3 } diff --git a/frontend/Login.re b/frontend/Login.re new file mode 100644 index 0000000..cf70344 --- /dev/null +++ b/frontend/Login.re @@ -0,0 +1 @@ +ReactDOMRe.renderToElementWithId(, "login-page-app"); \ No newline at end of file diff --git a/frontend/Main.re b/frontend/Main.re new file mode 100644 index 0000000..e69de29 diff --git a/frontend/components/loginPage/LoginPage.re b/frontend/components/loginPage/LoginPage.re new file mode 100644 index 0000000..085cbb7 --- /dev/null +++ b/frontend/components/loginPage/LoginPage.re @@ -0,0 +1,3 @@ +[@react.component] +let make = (~name) => +
{ReasonReact.string("Hello " ++ name ++ "!")}
; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index cd04116..3dbae45 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "bs", + "name": "bringo", "version": "0.1.0", "lockfileVersion": 1, "requires": true, @@ -1937,6 +1937,11 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -2000,6 +2005,14 @@ "path-exists": "^3.0.0" } }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -2311,8 +2324,7 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", @@ -2506,9 +2518,9 @@ "dev": true }, "pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-wHMFZ6HTLGlB9f/WsQBs5OwMQJoLXYuJUzbA+j+hRBf7+Y8KcXpatzIviIcTy1OAyhWQp08nyiPO8Dnv0z4Sww==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", "dev": true, "requires": { "create-hash": "^1.1.2", @@ -2564,6 +2576,16 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -2662,6 +2684,32 @@ "safe-buffer": "^5.1.0" } }, + "react": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", + "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-dom": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", + "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -2687,6 +2735,11 @@ "picomatch": "^2.2.1" } }, + "reason-react": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/reason-react/-/reason-react-0.8.0.tgz", + "integrity": "sha512-97AfK3eCF6vfP8rnbq3k6GgXsZt//OiPMINTUk5luJ8W0Wt/JaYsDG6eWKP8Zx3gPpxSU1EPjB1pUm6o6fBnFA==" + }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -2821,6 +2874,15 @@ "ret": "~0.1.10" } }, + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, "schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", diff --git a/package.json b/package.json index 297263a..d062f08 100644 --- a/package.json +++ b/package.json @@ -1,17 +1,26 @@ { - "name": "bs", + "name": "bringo", "version": "0.1.0", "scripts": { "webpack": "webpack", - "clean": "bsb -clean-world", "build": "bsb -make-world && webpack", - "watch": "bsb -make-world -w" + "start": "bsb -make-world -w -ws _ ", + "clean": "bsb -clean-world", + "server": "moduleserve ./ --port 8000", + "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ - "BuckleScript" + "BuckleScript", + "ReasonReact", + "reason-react" ], "author": "", "license": "MIT", + "dependencies": { + "react": "^16.8.1", + "react-dom": "^16.8.1", + "reason-react": "^0.8.0" + }, "devDependencies": { "bs-platform": "^7.3.2", "webpack": "^4.43.0", diff --git a/src/main/js/main.ml b/src/main/js/main.ml deleted file mode 100644 index 923b773..0000000 --- a/src/main/js/main.ml +++ /dev/null @@ -1,3 +0,0 @@ - - -let () = Js.log "Hello, BuckleScript" \ No newline at end of file diff --git a/src/main/resources/templates/login.mustache b/src/main/resources/templates/login.mustache index a6e823f..1688f70 100644 --- a/src/main/resources/templates/login.mustache +++ b/src/main/resources/templates/login.mustache @@ -4,11 +4,7 @@ Test - Login Page bitches! -
- - - -
+
+ \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index 6a5b687..770caa1 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,9 +1,15 @@ const path = require('path'); -module.exports = { - entry: path.resolve(__dirname, 'src/main/js/main.bs.js'), +module.exports = [{ + entry: path.resolve(__dirname, 'frontend/Main.bs.js'), output: { filename: 'main.js', path: path.resolve(__dirname, 'src/main/resources/public/dist'), }, -}; \ No newline at end of file +}, { + entry: path.resolve(__dirname, 'frontend/Login.bs.js'), + output: { + filename: 'login.js', + path: path.resolve(__dirname, 'src/main/resources/public/dist'), + }, +}]; \ No newline at end of file