Skip to content

Commit 417ce1c

Browse files
committed
Merge branch 'develop'
2 parents 401d2ed + b2cf468 commit 417ce1c

File tree

7 files changed

+80
-10
lines changed

7 files changed

+80
-10
lines changed

.editorconfig

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[*]
2+
indent_style = space
3+
indent_size = 4
4+
tab_width = 8
5+
max_line_length = 80
6+
trim_trailing_whitespace = false
7+
end_of_line = lf
8+
insert_final_newline = true

.github/workflows/swift.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@ jobs:
1414
matrix:
1515
image:
1616
- swift:5.9.2-focal
17-
- swift:5.10-jammy
18-
- swift:6.0-noble
17+
- swift:6.1-noble
1918
container: ${{ matrix.image }}
2019
steps:
2120
- name: Checkout Repository

Package.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ let package = Package(
2525
// A lot of packages for demonstration purposes, only add what you
2626
// actually need in your own project.
2727
.package(url: "https://github.com/Macro-swift/Macro.git",
28-
from: "1.0.1"),
28+
from: "1.0.4"),
2929
.package(url: "https://github.com/Macro-swift/MacroExpress.git",
30-
from: "1.0.2"),
30+
from: "1.0.7"),
3131
.package(url: "https://github.com/Macro-swift/MacroLambda.git",
3232
from: "0.5.0"),
3333
.package(url: "https://github.com/AlwaysRightInstitute/cows",

Sources/express-simple/main.swift

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ import cows // @AlwaysRightInstitute
1414
let app = express()
1515

1616
app.use(
17-
logger("dev"),
18-
bodyParser.urlencoded(),
19-
cookieParser(),
20-
session(),
21-
serveStatic(__dirname() + "/public")
17+
logger("dev"),
18+
bodyParser.urlencoded(),
19+
cookieParser(),
20+
session(),
21+
serveStatic(__dirname() + "/public")
2222
)
2323

2424
// MARK: - Express Settings
@@ -62,6 +62,22 @@ app.post("/form") { req, res in
6262
res.render("form", options)
6363
}
6464

65+
app.get("/multer") { _, res in
66+
res.render("multer")
67+
}
68+
app.post("/multer", multer().array("file", 10)) { req, res, _ in
69+
req.log.info("Got files:", req.files["file"])
70+
res.render("multer", [
71+
"files": req.files["file"]?.map {
72+
[ "name": $0.originalName,
73+
"size": $0.buffer?.length ?? 0,
74+
"mimeType": $0.mimeType ]
75+
} ?? [],
76+
"hasFiles": !(req.files["file"]?.isEmpty ?? true)
77+
])
78+
}
79+
80+
6581

6682
// MARK: - JSON & Cookies
6783

Sources/express-simple/views/header.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<div class="panel">
2525
<a href="/"><img align="right" src="images/logo256x256.png"
2626
width="128" height="128" /></a>
27-
<h2>Macro</h2>
27+
<h2><a href="/">Macro</a></h2>
2828
<blockquote>{{tagline}}</blockquote>
2929
</div>
3030
</div>

Sources/express-simple/views/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<div class="menu-centered">
1111
<ul class="menu">
1212
<li><a href="/form">Form Demo</a></li>
13+
<li><a href="/multer">Multer Demo</a></li>
1314
<li><a href="https://github.com/Macro-swift">Macro.swift</a></li>
1415
</ul>
1516
</div>
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
{{> header}}
2+
3+
<form action="/multer" method="POST" enctype="multipart/form-data">
4+
<div class="row">
5+
<div class="medium-6 medium-centered columns">
6+
<p>
7+
Macro comes w/ the `multer` module that is
8+
roughly designed after the Node
9+
<a href="https://github.com/expressjs/multer#readme"
10+
target="ext">multer</a>.
11+
</p>
12+
</div>
13+
</div>
14+
15+
<div class="row">
16+
<div class="medium-6 medium-centered columns">
17+
<label>
18+
<input type="file" id="filename" name="file"
19+
multiple="multiple" />
20+
</label>
21+
<p class="help-text">Upload some files.</p>
22+
</div>
23+
</div>
24+
<div class="row">
25+
<div class="medium-6 medium-centered columns">
26+
<input type="submit" class="button" value="Submit" />
27+
</div>
28+
</div>
29+
<div class="row">
30+
<div class="medium-6 medium-centered columns">
31+
<hr />
32+
{{^files}}No files uploaded.{{/}}
33+
{{#hasFiles}}
34+
Files:
35+
<ul>
36+
{{#files}}
37+
<li>{{name}}<br />#{{size}} bytes, {{mimeType}}</li>
38+
{{/files}}
39+
</ul>
40+
{{/hasFiles}}
41+
</div>
42+
</div>
43+
</form>
44+
45+
<pre>{{debug}}</pre>
46+
{{> footer}}

0 commit comments

Comments
 (0)