From d026e46a345bce4dbfcb7cfae134f8224270fdb2 Mon Sep 17 00:00:00 2001 From: William Bell Date: Sun, 16 Jul 2023 23:01:21 +0100 Subject: [PATCH] switch to new package files --- .gitignore | 3 +++ iso-package.json => argon-package.json | 0 examples/isotope-server/init.ar | 12 ++++++++++-- examples/isotope-server/modules/http.tar.gz | Bin 0 -> 6509 bytes examples/isotope-server/test.zip | Bin 8758 -> 0 bytes iso-package-lock.json => iso-lock.json | 0 src/init.ar | 4 +++- src/url.ar | 7 +++++++ 8 files changed, 23 insertions(+), 3 deletions(-) rename iso-package.json => argon-package.json (100%) create mode 100644 examples/isotope-server/modules/http.tar.gz delete mode 100644 examples/isotope-server/test.zip rename iso-package-lock.json => iso-lock.json (100%) diff --git a/.gitignore b/.gitignore index f48931f..ba64415 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,8 @@ # isotope __isotope__ +# argon +argon_modules + movie.mp4 examples/canvas/canvas.json \ No newline at end of file diff --git a/iso-package.json b/argon-package.json similarity index 100% rename from iso-package.json rename to argon-package.json diff --git a/examples/isotope-server/init.ar b/examples/isotope-server/init.ar index ea49705..0852a7a 100644 --- a/examples/isotope-server/init.ar +++ b/examples/isotope-server/init.ar @@ -1,13 +1,21 @@ import "../../src" as http +import "../../src/url" as url let app = http.server() +let files = {'http.ar': path.join([path.parent(program.file.path), "modules", "http.tar.gz"])} + app.use(http.logger) -let zipfile = path.join([path.parent(program.file.path), "test.zip"]) let download(req, res) = do + + let zipfile = files[req.query.name] res.sendFile(zipfile) -app.route("/download", null, download) +app.route("/isotope-download", null, download) + +let search(req, res) = do + res.json({Name: "http.ar", Version: "1.0.0", URL: "http://localhost:3000/isotope-download?"+url.queryStr({name: "http.ar", version: "1.0.0"})}) +app.route("/isotope-search", null, search) app.run() \ No newline at end of file diff --git a/examples/isotope-server/modules/http.tar.gz b/examples/isotope-server/modules/http.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..4975b22ee7ca5d89f9f6cda8b7291d409fb0545a GIT binary patch literal 6509 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 F{{j5qb(a7D diff --git a/iso-package-lock.json b/iso-lock.json similarity index 100% rename from iso-package-lock.json rename to iso-lock.json diff --git a/src/init.ar b/src/init.ar index e8ca98a..7f7024f 100644 --- a/src/init.ar +++ b/src/init.ar @@ -4,7 +4,7 @@ import "static" as * import "cookie" as * let server() = do - let class = {port: 3000, numThreads: 10, callback: ()=term.log("Server running on port "+class.port)} + let class = {port: 3000, numThreads: 1, callback: ()=term.log("Server running on port "+class.port)} let threads = [] let routes = [] let Socket = null @@ -13,6 +13,8 @@ let server() = do term.error(e.code) term.error(e.path+" on line "+e.line) class.run() = do + if (Socket != null) do + throwError("Server already running") Socket = socket.server("tcp", class.port) for (i from 0 to class.numThreads) do t = thread(()=listener.listener(Socket, routes, class.onErr)) diff --git a/src/url.ar b/src/url.ar index d31e57c..86878cd 100644 --- a/src/url.ar +++ b/src/url.ar @@ -40,6 +40,13 @@ let split(url) = do query[decode(queryItem[0])] = decode(queryItem[1]) return {path: split[0], query: query} +let queryStr(query) = do + let queryStr = [] + let keys = query.keys() + for (i from 0 to keys.length) do + queryStr.append(encode(keys[i])+"="+encode(query[keys[i]])) + return queryStr.join("&") + let URL(url) = do let protocol = null