diff --git a/.gitignore b/.gitignore
index 548fcc0..bda70ea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,5 +8,5 @@ yarn-error.log
coverage
.nyc_output
coverage.lcov
-/lib
-db.json
\ No newline at end of file
+dist/
+db.json
diff --git a/packages/scraper/package.json b/packages/scraper/package.json
index bbae48c..27cfbc4 100644
--- a/packages/scraper/package.json
+++ b/packages/scraper/package.json
@@ -29,7 +29,7 @@
},
"dependencies": {
"axios": "^0.18.0",
- "esm": "^3.0.17",
+ "esm": "^3.0.81",
"lodash": "^4.17.10",
"lowdb": "^1.0.0"
},
diff --git a/packages/search-site/dist/.empty b/packages/search-site/dist/.empty
new file mode 100644
index 0000000..e69de29
diff --git a/packages/search-site/index.js b/packages/search-site/index.js
index 8ee32f7..8f8cc10 100644
--- a/packages/search-site/index.js
+++ b/packages/search-site/index.js
@@ -2,4 +2,4 @@
require = require('esm')(module);
const mod = require('./src/index.mjs').default;
-module.exports = mod;
+mod();
diff --git a/packages/search-site/index.mjs b/packages/search-site/index.mjs
index 5329a9f..ab478a1 100644
--- a/packages/search-site/index.mjs
+++ b/packages/search-site/index.mjs
@@ -1,3 +1,3 @@
import mod from './src/index.mjs';
-export default mod;
+mod();
diff --git a/packages/search-site/package.json b/packages/search-site/package.json
index a707de5..f3ab7b8 100644
--- a/packages/search-site/package.json
+++ b/packages/search-site/package.json
@@ -6,8 +6,9 @@
"module": "index.mjs",
"description": "strain search static website",
"scripts": {
- "start": "node .",
- "build": "echo NO BUILD YET"
+ "start": "node . serve",
+ "build": "node . build",
+ "dev": "nodemon -i dist/ -w src -e mjs,ejs -x 'node . build'"
},
"author": "joe fleming (https://github.com/w33ble)",
"license": "MIT",
@@ -15,6 +16,10 @@
"cjs": true
},
"dependencies": {
+ "ejs": "^2.6.1",
"esm": "^3.0.81"
+ },
+ "devDependencies": {
+ "nodemon": "^1.18.4"
}
}
diff --git a/packages/search-site/src/index.html b/packages/search-site/src/index.html
new file mode 100644
index 0000000..b45e7d2
--- /dev/null
+++ b/packages/search-site/src/index.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ Strain Search
+
+
+
+ Hosted Stuff
+
+
+
diff --git a/packages/search-site/src/index.mjs b/packages/search-site/src/index.mjs
index 301cea4..f9853d0 100644
--- a/packages/search-site/src/index.mjs
+++ b/packages/search-site/src/index.mjs
@@ -1 +1,75 @@
-// package code goes here
\ No newline at end of file
+import http from 'http';
+import fs from 'fs';
+import ejs from 'ejs';
+
+const srcFile = 'src/index.html';
+const destFile = 'dist/index.html';
+
+function build() {
+ const data = {};
+ const options = {};
+
+ return new Promise((resolve, reject) => {
+ ejs.renderFile(srcFile, data, options, (err, str) => {
+ if (err) reject(err);
+ else {
+ fs.writeFile(destFile, str, er => {
+ if (er) reject(er);
+ else {
+ console.log(`Site built: ${destFile}`);
+ resolve();
+ }
+ });
+ }
+ });
+ });
+}
+
+async function serve() {
+ const PORT = '3000';
+
+ await build();
+
+ http
+ .createServer((req, res) => {
+ fs.readFile(destFile, (err, str) => {
+ if (err) {
+ res.writeHead(500, { 'Content-Type': 'text/plain' });
+ res.end('Failed :(');
+ console.error(err);
+ return;
+ }
+
+ res.writeHead(200, { 'Content-Type': 'text/html' });
+ res.end(str);
+ });
+ })
+ .listen(PORT, () => {
+ console.log(`Server listening on http://localhost:${PORT}`);
+ });
+}
+
+export default async function() {
+ const cmds = ['build', 'serve'];
+ const cmd = process.argv.splice(2)[0];
+
+ try {
+ switch (cmd) {
+ case 'build': {
+ await build();
+ break;
+ }
+ case 'serve': {
+ await serve();
+ break;
+ }
+ default: {
+ const msg = `Please use one of ${cmds.map(c => `"${c}"`).join(', ')}`;
+ if (cmd.length) console.error(`Unknown command "${cmd}". ${msg}`);
+ else console.error(`No command provided. ${msg}`);
+ }
+ }
+ } catch (err) {
+ console.error(err);
+ }
+}
diff --git a/yarn.lock b/yarn.lock
index 8d4f139..e5411be 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -653,6 +653,10 @@ duplexer@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
+ejs@^2.6.1:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0"
+
elegant-spinner@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
@@ -824,7 +828,7 @@ eslint@^4.9.0:
table "4.0.2"
text-table "~0.2.0"
-esm@^3.0.17, esm@^3.0.81:
+esm@^3.0.81:
version "3.0.81"
resolved "https://registry.yarnpkg.com/esm/-/esm-3.0.81.tgz#3d78df013960b6d30bb5a5adfafe5d9da654b9d2"