Skip to content

Commit 72e785b

Browse files
committed
split off the upper layers of the application to Swiftinit-prefixed names, and divide oversized UnidocPages module into SwiftinitRender and SwiftinitPages
1 parent 8219224 commit 72e785b

File tree

182 files changed

+421
-356
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

182 files changed

+421
-356
lines changed

Package.swift

Lines changed: 36 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ let package:Package = .init(
5656
.library(name: "Sources", targets: ["Sources"]),
5757

5858
.library(name: "Swiftinit", targets: ["Swiftinit"]),
59+
.library(name: "SwiftinitAssets", targets: ["SwiftinitAssets"]),
60+
.library(name: "SwiftinitPages", targets: ["SwiftinitPages"]),
61+
.library(name: "SwiftinitRender", targets: ["SwiftinitRender"]),
62+
63+
.executable(name: "SwiftinitServer", targets: ["SwiftinitServer"]),
5964

6065
.library(name: "SymbolGraphBuilder", targets: ["SymbolGraphBuilder"]),
6166
.library(name: "SymbolGraphCompiler", targets: ["SymbolGraphCompiler"]),
@@ -69,17 +74,15 @@ let package:Package = .init(
6974
.library(name: "UA", targets: ["UA"]),
7075
.library(name: "Unidoc", targets: ["Unidoc"]),
7176
.library(name: "UnidocAPI", targets: ["UnidocAPI"]),
72-
.library(name: "UnidocAssets", targets: ["UnidocAssets"]),
7377
.library(name: "UnidocDB", targets: ["UnidocDB"]),
7478
.library(name: "UnidocDiagnostics", targets: ["UnidocDiagnostics"]),
7579
.library(name: "UnidocLinker", targets: ["UnidocLinker"]),
76-
.library(name: "UnidocPages", targets: ["UnidocPages"]),
7780
.library(name: "UnidocQueries", targets: ["UnidocQueries"]),
7881
.library(name: "UnidocRecords", targets: ["UnidocRecords"]),
79-
.library(name: "URI", targets: ["URI"]),
8082

8183
.executable(name: "UnidocBuild", targets: ["UnidocBuild"]),
82-
.executable(name: "UnidocServer", targets: ["UnidocServer"]),
84+
85+
.library(name: "URI", targets: ["URI"]),
8386
],
8487
dependencies:
8588
[
@@ -372,6 +375,31 @@ let package:Package = .init(
372375
.target(name: "URI"),
373376
]),
374377

378+
.target(name: "SwiftinitAssets", dependencies:
379+
[
380+
.target(name: "SwiftinitPages"),
381+
.target(name: "System"),
382+
]),
383+
384+
.target(name: "SwiftinitPages", dependencies:
385+
[
386+
.target(name: "GitHubAPI"),
387+
.target(name: "MarkdownRendering"),
388+
.target(name: "SwiftinitRender"),
389+
.target(name: "UnidocAPI"),
390+
.target(name: "UnidocProfiling"),
391+
.target(name: "UnidocQueries"),
392+
]),
393+
394+
.target(name: "SwiftinitRender", dependencies:
395+
[
396+
.target(name: "HTTP"),
397+
.target(name: "HTML"),
398+
.target(name: "Media"),
399+
.target(name: "Swiftinit"),
400+
.target(name: "UnidocRecords"),
401+
]),
402+
375403
.target(name: "Symbols", dependencies:
376404
[
377405
.target(name: "Sources"),
@@ -452,12 +480,6 @@ let package:Package = .init(
452480
.target(name: "Unidoc"),
453481
]),
454482

455-
.target(name: "UnidocAssets", dependencies:
456-
[
457-
.target(name: "UnidocPages"),
458-
.target(name: "System"),
459-
]),
460-
461483
.target(name: "UnidocDB", dependencies:
462484
[
463485
.target(name: "GitHubAPI"),
@@ -481,18 +503,6 @@ let package:Package = .init(
481503
.target(name: "UnidocRecords"),
482504
]),
483505

484-
.target(name: "UnidocPages", dependencies:
485-
[
486-
.target(name: "GitHubAPI"),
487-
.target(name: "HTTP"),
488-
.target(name: "MarkdownRendering"),
489-
.target(name: "Swiftinit"),
490-
.target(name: "UnidocAPI"),
491-
.target(name: "UnidocProfiling"),
492-
.target(name: "UnidocQueries"),
493-
.target(name: "URI"),
494-
]),
495-
496506
.target(name: "UnidocProfiling", dependencies:
497507
[
498508
.target(name: "HTTPServer"),
@@ -510,7 +520,6 @@ let package:Package = .init(
510520
.target(name: "UnidocRecords", dependencies:
511521
[
512522
.target(name: "FNV1"),
513-
.target(name: "JSON"),
514523
.target(name: "MD5"),
515524
.target(name: "SymbolGraphs"),
516525
.target(name: "UnidocAPI"),
@@ -534,26 +543,25 @@ let package:Package = .init(
534543
[
535544
.target(name: "S3"),
536545
.target(name: "System"),
537-
.target(name: "UnidocAssets"),
546+
.target(name: "SwiftinitAssets"),
538547
]),
539548

540549
.executableTarget(name: "UnidocBuild", dependencies:
541550
[
542551
.target(name: "HTTPClient"),
543552
.target(name: "SymbolGraphBuilder"),
544-
.target(name: "UnidocAPI"),
545553
.target(name: "UnidocLinker"),
546554
.target(name: "UnidocRecords"),
547555
]),
548556

549-
.executableTarget(name: "UnidocServer", dependencies:
557+
.executableTarget(name: "SwiftinitServer", dependencies:
550558
[
551559
.target(name: "GitHubClient"),
552560
.target(name: "HTTPServer"),
553561
.target(name: "Multiparts"),
554562
.target(name: "Sitemaps"),
555-
.target(name: "UnidocAssets"),
556-
.target(name: "UnidocPages"),
563+
.target(name: "SwiftinitAssets"),
564+
.target(name: "SwiftinitPages"),
557565
]),
558566

559567

Sources/S3Export/Main.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import NIOPosix
44
import NIOSSL
55
import S3
66
import SemanticVersions
7+
import SwiftinitAssets
8+
import SwiftinitPages
79
import System
8-
import UnidocAssets
9-
import UnidocPages
1010

1111
@main
1212
enum Main
@@ -41,10 +41,10 @@ enum Main
4141
{
4242
@Sendable (connection:AWS.S3Client.Connection) in
4343

44-
for asset:Unidoc.RenderAsset in Unidoc.RenderAsset.allCases
44+
for asset:Swiftinit.Asset in Swiftinit.Asset.allCases
4545
{
4646
let content:[UInt8] = try assets.appending(asset.source).read()
47-
let path:String = asset.path(prepending: Unidoc.RenderFormat.Assets.version)
47+
let path:String = asset.path(prepending: Swiftinit.RenderFormat.Assets.version)
4848

4949
print("Uploading \(path)...")
5050

Sources/UnidocPages/Formats/Unidoc.RenderAsset.Versioning.swift renamed to Sources/Swiftinit/Assets/Swiftinit.Asset.Versioning.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
extension Unidoc.RenderAsset
1+
extension Swiftinit.Asset
22
{
33
@frozen public
44
enum Versioning:Comparable, Sendable
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
1-
import SemanticVersions
2-
3-
@available(*, deprecated, renamed: "Unidoc.RenderAsset")
4-
public
5-
typealias StaticAsset = Unidoc.RenderAsset
6-
7-
extension Unidoc
1+
extension Swiftinit
82
{
9-
@frozen public
10-
enum RenderAsset:String, CaseIterable, Hashable, Sendable
3+
public
4+
enum Asset:String, CaseIterable, Hashable, Sendable
115
{
126
case error404_jpg = "error404.jpg"
137

@@ -34,7 +28,32 @@ extension Unidoc
3428
case admin_css_map = "admin.css.map"
3529
}
3630
}
37-
extension Unidoc.RenderAsset
31+
extension Swiftinit.Asset:Swiftinit.StaticRoot
32+
{
33+
@inlinable public static
34+
var root:String { "asset" }
35+
}
36+
extension Swiftinit.Asset:CustomStringConvertible
37+
{
38+
@inlinable public
39+
var description:String { self.rawValue }
40+
}
41+
extension Swiftinit.Asset
42+
{
43+
@inlinable public
44+
init?(_ description:String)
45+
{
46+
guard
47+
let asset:Self = .init(rawValue: description)
48+
else
49+
{
50+
return nil
51+
}
52+
53+
self = asset
54+
}
55+
}
56+
extension Swiftinit.Asset
3857
{
3958
@inlinable public
4059
var versioning:Versioning
@@ -61,35 +80,4 @@ extension Unidoc.RenderAsset
6180
return .minor
6281
}
6382
}
64-
65-
@inlinable public
66-
func path(prepending version:MinorVersion) -> String
67-
{
68-
switch self.versioning
69-
{
70-
case .none: "/asset/\(self)"
71-
case .major: "/asset/\(version.major)/\(self)"
72-
case .minor: "/asset/\(version)/\(self)"
73-
}
74-
}
75-
}
76-
extension Unidoc.RenderAsset:CustomStringConvertible
77-
{
78-
@inlinable public
79-
var description:String { self.rawValue }
80-
}
81-
extension Unidoc.RenderAsset
82-
{
83-
@inlinable public
84-
init?(_ description:String)
85-
{
86-
guard
87-
let asset:Self = .init(rawValue: description)
88-
else
89-
{
90-
return nil
91-
}
92-
93-
self = asset
94-
}
9583
}

Sources/Swiftinit/Tree/Swiftinit.Asset.swift

Lines changed: 0 additions & 9 deletions
This file was deleted.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import Media
2+
import Swiftinit
3+
import System
4+
5+
extension Swiftinit.Asset
6+
{
7+
public
8+
var source:[FilePath.Component]
9+
{
10+
switch self
11+
{
12+
case .error404_jpg: ["icons", "error404.jpg"]
13+
case .favicon_ico: ["icons", "favicon.ico"]
14+
case .favicon_png: ["icons", "favicon.png"]
15+
case .literata45_woff2: ["woff2", "Literata_24pt-Regular.woff2"]
16+
case .literata47_woff2: ["woff2", "Literata_24pt-Italic.woff2"]
17+
case .literata75_woff2: ["woff2", "Literata_24pt-Bold.woff2"]
18+
case .literata77_woff2: ["woff2", "Literata_24pt-BoldItalic.woff2"]
19+
case .admin_css: ["css", "Admin.css"]
20+
case .admin_css_map: ["css", "Admin.css.map"]
21+
case .main_css: ["css", "Main.css"]
22+
case .main_css_map: ["css", "Main.css.map"]
23+
case .main_js: ["js", "Main.js"]
24+
case .main_js_map: ["js", "Main.js.map"]
25+
}
26+
}
27+
28+
public
29+
var type:MediaType
30+
{
31+
switch self
32+
{
33+
case .error404_jpg: .image(.jpeg)
34+
case .favicon_ico: .image(.x_icon)
35+
case .favicon_png: .image(.png)
36+
case .literata45_woff2,
37+
.literata47_woff2,
38+
.literata75_woff2,
39+
.literata77_woff2: .font(.woff2)
40+
case .admin_css,
41+
.main_css: .text(.css, charset: .utf8)
42+
case .main_js: .text(.javascript, charset: .utf8)
43+
case .admin_css_map,
44+
.main_css_map,
45+
.main_js_map: .application(.json, charset: .utf8)
46+
}
47+
}
48+
}

0 commit comments

Comments
 (0)