app-reviews/Libraries/Package.swift
Javier Cicchelli d19c1c15d1 [Framework] Feed Item coordinator (#17)
This PR contains the work done to implement the `FeedItemCoordinator` coordinator in the `Feed` framework.

Reviewed-on: #17
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
2024-03-21 22:56:38 +00:00

140 lines
3.5 KiB
Swift

// swift-tools-version: 5.10
import PackageDescription
let package = Package(
name: .Package.name,
platforms: [
.iOS(.v14)
],
products: [
.library(
name: .Product.name.kit,
targets: [
.Target.coordination.kit,
.Target.feed.kit,
.Target.filter.kit,
.Target.foundation.kit,
.Target.iTunes.kit,
.Target.ui.kit,
]
),
],
targets: [
.target(
name: .Target.coordination.kit,
dependencies: [
.byName(name: .Target.foundation.kit),
.byName(name: .Target.ui.kit),
],
path: "Coordination/Kit"
),
.target(
name: .Target.feed.kit,
dependencies: [
.byName(name: .Target.foundation.kit),
],
path: "Feed/Kit"
),
.target(
name: .Target.filter.kit,
dependencies: [
.byName(name: .Target.foundation.kit),
],
path: "Filter/Kit"
),
.target(
name: .Target.foundation.kit,
path: "Foundation/Kit"
),
.target(
name: .Target.iTunes.kit,
dependencies: [
.byName(name: .Target.feed.kit),
.byName(name: .Target.foundation.kit),
],
path: "iTunes/Kit"
),
.target(
name: .Target.ui.kit,
dependencies: [
.byName(name: .Target.foundation.kit),
],
path: "UI/Kit"
),
.testTarget(
name: .Target.coordination.test,
dependencies: [
.byName(name: .Target.coordination.kit),
],
path: "Coordination/Test"
),
.testTarget(
name: .Target.feed.test,
dependencies: [
.byName(name: .Target.feed.kit),
],
path: "Feed/Test"
),
.testTarget(
name: .Target.filter.test,
dependencies: [
.byName(name: .Target.filter.kit),
],
path: "Filter/Test"
),
.testTarget(
name: .Target.foundation.test,
dependencies: [
.byName(name: .Target.foundation.kit),
],
path: "Foundation/Test"
),
.testTarget(
name: .Target.iTunes.test,
dependencies: [
.byName(name: .Target.iTunes.kit),
],
path: "iTunes/Test"
),
.testTarget(
name: .Target.ui.test,
dependencies: [
.byName(name: .Target.ui.kit),
],
path: "UI/Test"
),
]
)
// MARK: - String+Constants
private extension String {
enum Package {
static let name = "reviews-kit"
}
enum Product {
static let name = "Reviews"
}
enum Target {
static let coordination = "\(String.Product.name)Coordination"
static let feed = "\(String.Product.name)Feed"
static let filter = "\(String.Product.name)Filter"
static let foundation = "\(String.Product.name)Foundation"
static let iTunes = "\(String.Product.name)iTunes"
static let ui = "\(String.Product.name)UI"
}
}
// MARK: - String+Computed
private extension String {
var kit: String {
"\(self)Kit"
}
var test: String {
"\(self)Test"
}
}