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

@@ -10,6 +10,11 @@ import Foundation
extension AnalyticsConfiguration: Runnable {
func run(projectDirectory: String, force: Bool) {
let args = getArguments(projectDirectory: projectDirectory, force: force)
Analytics.main(args)
}
func getArguments(projectDirectory: String, force: Bool) -> [String] {
var args = [String]()
if force {
@@ -20,25 +25,23 @@ extension AnalyticsConfiguration: Runnable {
inputFile.prependIfRelativePath(projectDirectory),
"--target",
target,
"--extension-output-path",
extensionOutputPath.prependIfRelativePath(projectDirectory),
"--static-members",
"\(staticMembersOptions)"
"--output-file",
outputFile.prependIfRelativePath(projectDirectory)
]
if let extensionName {
args += [
"--extension-name",
extensionName
]
}
if let extensionSuffix {
args += [
"--extension-suffix",
extensionSuffix
]
// Add optional parameters
[
("--visibility", visibility),
("--static-members", staticMembers?.description)
].forEach { argumentName, argumentValue in
if let argumentValue {
args += [
argumentName,
argumentValue
]
}
}
Analytics.main(args)
return args
}
}

View File

@@ -26,9 +26,7 @@ extension ColorsConfiguration: Runnable {
"--style",
style,
"--xcassets-path",
xcassetsPath.prependIfRelativePath(projectDirectory),
"--static-members",
"\(staticMembersOptions)"
xcassetsPath.prependIfRelativePath(projectDirectory)
]
// Add optional parameters
@@ -36,7 +34,9 @@ extension ColorsConfiguration: Runnable {
("--extension-output-path", extensionOutputPath?.prependIfRelativePath(projectDirectory)),
("--extension-name", extensionName),
("--extension-name-ui-kit", extensionNameUIKit),
("--extension-suffix", extensionSuffix)
("--extension-suffix", extensionSuffix),
("--visibility", visibility),
("--static-members", staticMembers?.description)
].forEach { argumentName, argumentValue in
if let argumentValue {
args += [

View File

@@ -22,9 +22,7 @@ extension FontsConfiguration: Runnable {
}
args += [
inputFile.prependIfRelativePath(projectDirectory),
"--static-members",
"\(staticMembersOptions)"
inputFile.prependIfRelativePath(projectDirectory)
]
// Add optional parameters
@@ -32,7 +30,9 @@ extension FontsConfiguration: Runnable {
("--extension-output-path", extensionOutputPath?.prependIfRelativePath(projectDirectory)),
("--extension-name", extensionName),
("--extension-name-ui-kit", extensionNameUIKit),
("--extension-suffix", extensionSuffix)
("--extension-suffix", extensionSuffix),
("--visibility", visibility),
("--static-members", staticMembers?.description)
].forEach { argumentName, argumentValue in
if let argumentValue {
args += [

View File

@@ -24,9 +24,7 @@ extension ImagesConfiguration: Runnable {
args += [
inputFile.prependIfRelativePath(projectDirectory),
"--xcassets-path",
xcassetsPath.prependIfRelativePath(projectDirectory),
"--static-members",
"\(staticMembersOptions)"
xcassetsPath.prependIfRelativePath(projectDirectory)
]
// Add optional parameters
@@ -34,7 +32,9 @@ extension ImagesConfiguration: Runnable {
("--extension-output-path", extensionOutputPath?.prependIfRelativePath(projectDirectory)),
("--extension-name", extensionName),
("--extension-name-ui-kit", extensionNameUIKit),
("--extension-suffix", extensionSuffix)
("--extension-suffix", extensionSuffix),
("--visibility", visibility),
("--static-members", staticMembers?.description)
].forEach { argumentName, argumentValue in
if let argumentValue {
args += [

View File

@@ -10,6 +10,11 @@ import Foundation
extension StringsConfiguration: Runnable {
func run(projectDirectory: String, force: Bool) {
let args = getArguments(projectDirectory: projectDirectory, force: force)
Stringium.main(args)
}
func getArguments(projectDirectory: String, force: Bool) -> [String] {
var args = [String]()
if force {
@@ -23,18 +28,17 @@ extension StringsConfiguration: Runnable {
"--langs",
langs,
"--default-lang",
defaultLang,
"--static-members",
"\(staticMembersOptions)",
"--xc-strings",
"\(xcStringsOptions)"
defaultLang
]
// Add optional parameters
[
("--extension-output-path", extensionOutputPath?.prependIfRelativePath(projectDirectory)),
("--extension-name", extensionName),
("--extension-suffix", extensionSuffix)
("--extension-suffix", extensionSuffix),
("--visibility", visibility),
("--xc-strings", staticMembers?.description),
("--static-members", xcStrings?.description)
].forEach { argumentName, argumentValue in
if let argumentValue {
args += [
@@ -44,6 +48,6 @@ extension StringsConfiguration: Runnable {
}
}
Stringium.main(args)
return args
}
}

View File

@@ -10,6 +10,11 @@ import Foundation
extension TagsConfiguration: Runnable {
func run(projectDirectory: String, force: Bool) {
let args = getArguments(projectDirectory: projectDirectory, force: force)
Tags.main(args)
}
func getArguments(projectDirectory: String, force: Bool) -> [String] {
var args = [String]()
if force {
@@ -21,24 +26,24 @@ extension TagsConfiguration: Runnable {
"--lang",
lang,
"--extension-output-path",
extensionOutputPath.prependIfRelativePath(projectDirectory),
"--static-members",
"\(staticMembersOptions)"
extensionOutputPath.prependIfRelativePath(projectDirectory)
]
if let extensionName {
args += [
"--extension-name",
extensionName
]
}
if let extensionSuffix {
args += [
"--extension-suffix",
extensionSuffix
]
// Add optional parameters
[
("--extension-name", extensionName),
("--extension-suffix", extensionSuffix),
("--visibility", visibility),
("--static-members", staticMembers?.description)
].forEach { argumentName, argumentValue in
if let argumentValue {
args += [
argumentName,
argumentValue
]
}
}
Tags.main(args)
return args
}
}