Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions Sources/PklSwift/EvaluatorOptions.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ public struct EvaluatorOptions: Sendable {
http: Http? = nil,
declaredProjectDependencies: [String: ProjectDependency]? = nil,
externalModuleReaders: [String: ExternalReader]? = nil,
externalResourceReaders: [String: ExternalReader]? = nil
externalResourceReaders: [String: ExternalReader]? = nil,
traceMode: TraceMode? = nil
) {
self.allowedModules = allowedModules
self.allowedResources = allowedResources
Expand All @@ -53,6 +54,7 @@ public struct EvaluatorOptions: Sendable {
self.declaredProjectDependencies = declaredProjectDependencies
self.externalModuleReaders = externalModuleReaders
self.externalResourceReaders = externalResourceReaders
self.traceMode = traceMode
}

/// Regular expression patterns that control what modules are allowed to be imported in a Pkl program.
Expand Down Expand Up @@ -139,6 +141,12 @@ public struct EvaluatorOptions: Sendable {
/// Added in Pkl 0.27.
/// If the underlying Pkl does not support external readers, evaluation will fail when a registered scheme is used.
public var externalResourceReaders: [String: ExternalReader]?

/// Dictates how Pkl will format messages logged by `trace()`.
///
/// Added in Pkl 0.30.
/// If the underlying Pkl does not support trace modes, this option will be ignored.
public var traceMode: TraceMode?
}

extension EvaluatorOptions {
Expand Down Expand Up @@ -180,7 +188,8 @@ extension EvaluatorOptions {
project: self.project(),
http: self.http,
externalModuleReaders: self.externalModuleReaders,
externalResourceReaders: self.externalResourceReaders
externalResourceReaders: self.externalResourceReaders,
traceMode: self.traceMode?.rawValue
)
}

Expand Down Expand Up @@ -351,3 +360,8 @@ public struct ProjectLocalDependency: Codable, Sendable {

let dependencies: [String: ProjectDependency]
}

public enum TraceMode: String, CaseIterable, CodingKeyRepresentable, Codable, Sendable {
case compact
case pretty
}
1 change: 1 addition & 0 deletions Sources/PklSwift/Message.swift
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ struct CreateEvaluatorRequest: ClientRequestMessage, Sendable {
var http: Http?
var externalModuleReaders: [String: ExternalReader]?
var externalResourceReaders: [String: ExternalReader]?
var traceMode: String?
}

struct ProjectOrDependency: Codable, Sendable {
Expand Down