proton_config

Typed CLI project configuration and JSON decoding for Proton.

moon add moonbit-community/proton_config@0.2.1
Download zip
Version
0.2.1
License
Apache-2.0
Last updated
7 hours ago
Downloads
470

Dependencies

README

moonbit-community/proton_config does not have a README file

#
ProjectConfigError

pub(all) suberror ProjectConfigError {
FileRead(path~ : String, detail~ : String)
Syntax(name~ : String, diagnostics~ : String)
InvalidRoot
Validation(errors~ : Array[ProjectConfigError])
MissingField(path~ : String)
DuplicateValue(path~ : String, value~ : String)
UnknownField(path~ : String)
InvalidField(path~ : String, expectation~ : String)
UnsupportedValue(path~ : String, value~ : String)
} derive(Eq,
Debug
)

Failures produced while loading and validating proton.project.json.

#
ProjectConfigError::equal

#
ProjectConfigError::message

fn ProjectConfigError::message(self : ProjectConfigError) -> String

#
ProjectConfigError::not_equal

#
ProjectConfigError::output

fn ProjectConfigError::output(self : ProjectConfigError, logger : &Logger) -> Unit

#
ProjectConfigError::to_string

fn ProjectConfigError::to_string(self : ProjectConfigError) -> String

#
ProjectBackendConfig

pub(all) struct ProjectBackendConfig {
path : String
app_package : String
} derive(Eq,
Debug
)

The MoonBit backend that proton_cli builds and launches.

#
ProjectBackendConfig::app_package

fn ProjectBackendConfig::app_package(self : ProjectBackendConfig) -> String

#
ProjectBackendConfig::equal

#
ProjectBackendConfig::new

fn ProjectBackendConfig::new(path : String, app_package : String) -> ProjectBackendConfig

#
ProjectBackendConfig::not_equal

#
ProjectBackendConfig::path

fn ProjectBackendConfig::path(self : ProjectBackendConfig) -> String

#
ProjectConfig

pub(all) struct ProjectConfig {
base_dir : String
backend : ProjectBackendConfig?
frontend : ProjectFrontendConfig?
package_config : ProjectPackageConfig?
} derive(Eq,
Debug
)

CLI-only project description. Application runtime behavior belongs in MoonBit code and is intentionally absent from this type.

#
ProjectConfig::backend

#
ProjectConfig::base_dir

fn ProjectConfig::base_dir(self : ProjectConfig) -> String

#
ProjectConfig::equal

#
ProjectConfig::frontend

#
ProjectConfig::new

fn ProjectConfig::new(base_dir : String, backend? : ProjectBackendConfig?, frontend? : ProjectFrontendConfig?, package_config? : ProjectPackageConfig?) -> ProjectConfig

#
ProjectConfig::not_equal

fn ProjectConfig::not_equal(x : ProjectConfig, y : ProjectConfig) -> Bool

#
ProjectConfig::package_config

fn ProjectConfig::package_config(self : ProjectConfig) -> ProjectPackageConfig?

#
ProjectDocumentType

pub(all) struct ProjectDocumentType {
name : String
extensions : Array[String]
role : String
} derive(Eq,
Debug
)

#
ProjectDocumentType::equal

#
ProjectDocumentType::extensions

fn ProjectDocumentType::extensions(self : ProjectDocumentType) -> Array[String]

#
ProjectDocumentType::new

fn ProjectDocumentType::new(name : String, extensions : Array[String], role? : String) -> ProjectDocumentType

#
ProjectDocumentType::not_equal

#
ProjectFrontendConfig

pub(all) struct ProjectFrontendConfig {
dev_url : String?
dist : String?
before_dev : String?
before_build : String?
path : String?
} derive(Eq,
Debug
)

Frontend commands and paths needed before the application can run.

#
ProjectFrontendConfig::before_build

fn ProjectFrontendConfig::before_build(self : ProjectFrontendConfig) -> String?

#
ProjectFrontendConfig::before_dev

fn ProjectFrontendConfig::before_dev(self : ProjectFrontendConfig) -> String?

#
ProjectFrontendConfig::dev_url

fn ProjectFrontendConfig::dev_url(self : ProjectFrontendConfig) -> String?

#
ProjectFrontendConfig::dist

fn ProjectFrontendConfig::dist(self : ProjectFrontendConfig) -> String?

#
ProjectFrontendConfig::equal

#
ProjectFrontendConfig::new

fn ProjectFrontendConfig::new(dev_url? : String?, dist? : String?, before_dev? : String?, before_build? : String?, path? : String?) -> ProjectFrontendConfig

#
ProjectFrontendConfig::not_equal

#
ProjectFrontendConfig::path

fn ProjectFrontendConfig::path(self : ProjectFrontendConfig) -> String?

#
ProjectPackageConfig

pub(all) struct ProjectPackageConfig {
product_name : String
identifier : String
version : String
formats : Array[String]
icons : Array[String]
resources : Array[String]
sign : ProjectSignConfig?
url_schemes : Array[String]
document_types : Array[ProjectDocumentType]
output : String
} derive(Eq,
Debug
)

Static metadata and payload inputs consumed by proton_cli package.

#
ProjectPackageConfig::document_types

#
ProjectPackageConfig::equal

#
ProjectPackageConfig::formats

fn ProjectPackageConfig::formats(self : ProjectPackageConfig) -> Array[String]

#
ProjectPackageConfig::icons

fn ProjectPackageConfig::icons(self : ProjectPackageConfig) -> Array[String]

#
ProjectPackageConfig::new

fn ProjectPackageConfig::new(product_name : String, identifier : String, version : String, formats? : Array[String], icons? : Array[String], resources? : Array[String], sign? : ProjectSignConfig?, url_schemes? : Array[String], document_types? : Array[ProjectDocumentType], output? : String) -> ProjectPackageConfig

#
ProjectPackageConfig::not_equal

#
ProjectPackageConfig::output

fn ProjectPackageConfig::output(self : ProjectPackageConfig) -> String

#
ProjectPackageConfig::resources

fn ProjectPackageConfig::resources(self : ProjectPackageConfig) -> Array[String]

#
ProjectPackageConfig::sign

#
ProjectPackageConfig::url_schemes

fn ProjectPackageConfig::url_schemes(self : ProjectPackageConfig) -> Array[String]

#
ProjectPackageConfig::version

fn ProjectPackageConfig::version(self : ProjectPackageConfig) -> String

#
ProjectSignConfig

pub(all) struct ProjectSignConfig {
binaries : Array[String]
} derive(Eq,
Debug
)

#
ProjectSignConfig::binaries

fn ProjectSignConfig::binaries(self : ProjectSignConfig) -> Array[String]

#
ProjectSignConfig::equal

#
ProjectSignConfig::new

fn ProjectSignConfig::new(binaries? : Array[String]) -> ProjectSignConfig

#
ProjectSignConfig::not_equal

fn ProjectSignConfig::not_equal(x : ProjectSignConfig, y : ProjectSignConfig) -> Bool

#
load_project_config_from_file

fn load_project_config_from_file(path : String) -> ProjectConfig raise ProjectConfigError

#
load_project_config_from_json

fn load_project_config_from_json(json : Json, base_dir : String) -> ProjectConfig raise ProjectConfigError

#
load_project_config_from_text

fn load_project_config_from_text(source : String, base_dir : String, name? : String) -> ProjectConfig raise ProjectConfigError

Powered by MoonBit

Site sourceReport issuePackagesBuild queueSkillsStatistics

© 2026 mooncakes.io