feat(RES-57): Add visibility to control scope of generated code (#18)
All checks were successful
gitea-openium/resgen.swift/pipeline/head This commit looks good

Add visibility parameter: public, package, internal, private
Impacted command: analytics, colors, fonts, images, strings, tags

Reviewed-on: #18
This commit is contained in:
2025-07-21 16:56:05 +02:00
parent beca2c6b2b
commit 5ad219ae89
62 changed files with 1526 additions and 794 deletions

View File

@@ -37,17 +37,23 @@ final class ParsedImageTests: XCTestCase {
func test_uiKit_GeneratedProperty() {
// Given
let imageName = "the_name"
let parsedImage = ParsedImage(name: imageName,
tags: "id",
width: 10,
height: 10)
let parsedImage = ParsedImage(
name: imageName,
tags: "id",
width: 10,
height: 10
)
// When
let property = parsedImage.getImageProperty(isStatic: false, isSwiftUI: false)
let property = parsedImage.getImageProperty(
isStatic: false,
isSwiftUI: false,
visibility: .public
)
// Expect
let expect = """
var \(imageName): UIImage {
public var \(imageName): UIImage {
UIImage(named: "\(imageName)")!
}
"""
@@ -58,17 +64,23 @@ final class ParsedImageTests: XCTestCase {
func test_uiKit_GeneratedStaticProperty() {
// Given
let imageName = "the_name"
let parsedImage = ParsedImage(name: imageName,
tags: "id",
width: 10,
height: 10)
let parsedImage = ParsedImage(
name: imageName,
tags: "id",
width: 10,
height: 10
)
// When
let property = parsedImage.getImageProperty(isStatic: true, isSwiftUI: false)
let property = parsedImage.getImageProperty(
isStatic: true,
isSwiftUI: false,
visibility: .internal
)
// Expect
let expect = """
static var \(imageName): UIImage {
internal static var \(imageName): UIImage {
UIImage(named: "\(imageName)")!
}
"""
@@ -79,17 +91,23 @@ final class ParsedImageTests: XCTestCase {
func test_swiftUI_GeneratedProperty() {
// Given
let imageName = "the_name"
let parsedImage = ParsedImage(name: imageName,
tags: "id",
width: 10,
height: 10)
let parsedImage = ParsedImage(
name: imageName,
tags: "id",
width: 10,
height: 10
)
// When
let property = parsedImage.getImageProperty(isStatic: false, isSwiftUI: true)
let property = parsedImage.getImageProperty(
isStatic: false,
isSwiftUI: true,
visibility: .private
)
// Expect
let expect = """
var \(imageName): Image {
private var \(imageName): Image {
Image("\(imageName)")
}
"""
@@ -100,17 +118,23 @@ final class ParsedImageTests: XCTestCase {
func test_swiftUI_GeneratedStaticProperty() {
// Given
let imageName = "the_name"
let parsedImage = ParsedImage(name: imageName,
tags: "id",
width: 10,
height: 10)
let parsedImage = ParsedImage(
name: imageName,
tags: "id",
width: 10,
height: 10
)
// When
let property = parsedImage.getImageProperty(isStatic: true, isSwiftUI: true)
let property = parsedImage.getImageProperty(
isStatic: true,
isSwiftUI: true,
visibility: .package
)
// Expect
let expect = """
static var \(imageName): Image {
package static var \(imageName): Image {
Image("\(imageName)")
}
"""
@@ -121,10 +145,12 @@ final class ParsedImageTests: XCTestCase {
func testAssetContentJson() {
// Given
let imageName = "the_name"
let parsedImage = ParsedImage(name: imageName,
tags: "id",
width: 10,
height: 10)
let parsedImage = ParsedImage(
name: imageName,
tags: "id",
width: 10,
height: 10
)
// When
let property = parsedImage.generateImageContent(isVector: false)