Skip to content

Commit

Permalink
Release 28.9.0
Browse files Browse the repository at this point in the history
  • Loading branch information
robot-divkit committed Nov 7, 2023
1 parent ae162ff commit ba65588
Show file tree
Hide file tree
Showing 79 changed files with 571 additions and 250 deletions.
6 changes: 6 additions & 0 deletions .mapping.json
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,7 @@
"DivKitExtensions/ExtensionHandlers/ImageThemeExtensionHandler.swift":"divkit/public-ios/DivKitExtensions/ExtensionHandlers/ImageThemeExtensionHandler.swift",
"DivKitExtensions/ExtensionHandlers/PinchToZoomExtensionHandler.swift":"divkit/public-ios/DivKitExtensions/ExtensionHandlers/PinchToZoomExtensionHandler.swift",
"DivKitExtensions/ExtensionHandlers/TextExtensionHandler.swift":"divkit/public-ios/DivKitExtensions/ExtensionHandlers/TextExtensionHandler.swift",
"DivKitExtensions/ExtensionHandlers/VideoDurationExtensionHandler.swift":"divkit/public-ios/DivKitExtensions/ExtensionHandlers/VideoDurationExtensionHandler.swift",
"DivKitExtensions/Shimmer/DefaultShimmerViewFactory.swift":"divkit/public-ios/DivKitExtensions/Shimmer/DefaultShimmerViewFactory.swift",
"DivKitExtensions/Shimmer/ShimmerImagePreviewExtensions.swift":"divkit/public-ios/DivKitExtensions/Shimmer/ShimmerImagePreviewExtensions.swift",
"DivKitExtensions/Shimmer/ShimmerStyle.swift":"divkit/public-ios/DivKitExtensions/Shimmer/ShimmerStyle.swift",
Expand Down Expand Up @@ -820,6 +821,7 @@
"Specs/DivKit/28.6.0/DivKit.podspec":"divkit/public-ios/Specs/DivKit/28.6.0/DivKit.podspec",
"Specs/DivKit/28.7.0/DivKit.podspec":"divkit/public-ios/Specs/DivKit/28.7.0/DivKit.podspec",
"Specs/DivKit/28.8.0/DivKit.podspec":"divkit/public-ios/Specs/DivKit/28.8.0/DivKit.podspec",
"Specs/DivKit/28.9.0/DivKit.podspec":"divkit/public-ios/Specs/DivKit/28.9.0/DivKit.podspec",
"Specs/DivKitExtensions/24.3.0/DivKitExtensions.podspec":"divkit/public-ios/Specs/DivKitExtensions/24.3.0/DivKitExtensions.podspec",
"Specs/DivKitExtensions/25.0.0/DivKitExtensions.podspec":"divkit/public-ios/Specs/DivKitExtensions/25.0.0/DivKitExtensions.podspec",
"Specs/DivKitExtensions/25.1.0/DivKitExtensions.podspec":"divkit/public-ios/Specs/DivKitExtensions/25.1.0/DivKitExtensions.podspec",
Expand Down Expand Up @@ -847,6 +849,7 @@
"Specs/DivKitExtensions/28.6.0/DivKitExtensions.podspec":"divkit/public-ios/Specs/DivKitExtensions/28.6.0/DivKitExtensions.podspec",
"Specs/DivKitExtensions/28.7.0/DivKitExtensions.podspec":"divkit/public-ios/Specs/DivKitExtensions/28.7.0/DivKitExtensions.podspec",
"Specs/DivKitExtensions/28.8.0/DivKitExtensions.podspec":"divkit/public-ios/Specs/DivKitExtensions/28.8.0/DivKitExtensions.podspec",
"Specs/DivKitExtensions/28.9.0/DivKitExtensions.podspec":"divkit/public-ios/Specs/DivKitExtensions/28.9.0/DivKitExtensions.podspec",
"Specs/DivKit_LayoutKit/28.0.1/DivKit_LayoutKit.podspec":"divkit/public-ios/Specs/DivKit_LayoutKit/28.0.1/DivKit_LayoutKit.podspec",
"Specs/DivKit_LayoutKit/28.1.0/DivKit_LayoutKit.podspec":"divkit/public-ios/Specs/DivKit_LayoutKit/28.1.0/DivKit_LayoutKit.podspec",
"Specs/DivKit_LayoutKit/28.2.0/DivKit_LayoutKit.podspec":"divkit/public-ios/Specs/DivKit_LayoutKit/28.2.0/DivKit_LayoutKit.podspec",
Expand All @@ -856,6 +859,7 @@
"Specs/DivKit_LayoutKit/28.6.0/DivKit_LayoutKit.podspec":"divkit/public-ios/Specs/DivKit_LayoutKit/28.6.0/DivKit_LayoutKit.podspec",
"Specs/DivKit_LayoutKit/28.7.0/DivKit_LayoutKit.podspec":"divkit/public-ios/Specs/DivKit_LayoutKit/28.7.0/DivKit_LayoutKit.podspec",
"Specs/DivKit_LayoutKit/28.8.0/DivKit_LayoutKit.podspec":"divkit/public-ios/Specs/DivKit_LayoutKit/28.8.0/DivKit_LayoutKit.podspec",
"Specs/DivKit_LayoutKit/28.9.0/DivKit_LayoutKit.podspec":"divkit/public-ios/Specs/DivKit_LayoutKit/28.9.0/DivKit_LayoutKit.podspec",
"Specs/DivKit_LayoutKitInterface/28.0.1/DivKit_LayoutKitInterface.podspec":"divkit/public-ios/Specs/DivKit_LayoutKitInterface/28.0.1/DivKit_LayoutKitInterface.podspec",
"Specs/DivKit_LayoutKitInterface/28.1.0/DivKit_LayoutKitInterface.podspec":"divkit/public-ios/Specs/DivKit_LayoutKitInterface/28.1.0/DivKit_LayoutKitInterface.podspec",
"Specs/DivKit_LayoutKitInterface/28.2.0/DivKit_LayoutKitInterface.podspec":"divkit/public-ios/Specs/DivKit_LayoutKitInterface/28.2.0/DivKit_LayoutKitInterface.podspec",
Expand All @@ -865,6 +869,7 @@
"Specs/DivKit_LayoutKitInterface/28.6.0/DivKit_LayoutKitInterface.podspec":"divkit/public-ios/Specs/DivKit_LayoutKitInterface/28.6.0/DivKit_LayoutKitInterface.podspec",
"Specs/DivKit_LayoutKitInterface/28.7.0/DivKit_LayoutKitInterface.podspec":"divkit/public-ios/Specs/DivKit_LayoutKitInterface/28.7.0/DivKit_LayoutKitInterface.podspec",
"Specs/DivKit_LayoutKitInterface/28.8.0/DivKit_LayoutKitInterface.podspec":"divkit/public-ios/Specs/DivKit_LayoutKitInterface/28.8.0/DivKit_LayoutKitInterface.podspec",
"Specs/DivKit_LayoutKitInterface/28.9.0/DivKit_LayoutKitInterface.podspec":"divkit/public-ios/Specs/DivKit_LayoutKitInterface/28.9.0/DivKit_LayoutKitInterface.podspec",
"Specs/DivKit_Serialization/28.0.1/DivKit_Serialization.podspec":"divkit/public-ios/Specs/DivKit_Serialization/28.0.1/DivKit_Serialization.podspec",
"Specs/DivKit_Serialization/28.1.0/DivKit_Serialization.podspec":"divkit/public-ios/Specs/DivKit_Serialization/28.1.0/DivKit_Serialization.podspec",
"Specs/DivKit_Serialization/28.2.0/DivKit_Serialization.podspec":"divkit/public-ios/Specs/DivKit_Serialization/28.2.0/DivKit_Serialization.podspec",
Expand All @@ -874,6 +879,7 @@
"Specs/DivKit_Serialization/28.6.0/DivKit_Serialization.podspec":"divkit/public-ios/Specs/DivKit_Serialization/28.6.0/DivKit_Serialization.podspec",
"Specs/DivKit_Serialization/28.7.0/DivKit_Serialization.podspec":"divkit/public-ios/Specs/DivKit_Serialization/28.7.0/DivKit_Serialization.podspec",
"Specs/DivKit_Serialization/28.8.0/DivKit_Serialization.podspec":"divkit/public-ios/Specs/DivKit_Serialization/28.8.0/DivKit_Serialization.podspec",
"Specs/DivKit_Serialization/28.9.0/DivKit_Serialization.podspec":"divkit/public-ios/Specs/DivKit_Serialization/28.9.0/DivKit_Serialization.podspec",
"Specs/LayoutKit/24.3.0/LayoutKit.podspec":"divkit/public-ios/Specs/LayoutKit/24.3.0/LayoutKit.podspec",
"Specs/LayoutKit/25.0.0/LayoutKit.podspec":"divkit/public-ios/Specs/LayoutKit/25.0.0/LayoutKit.podspec",
"Specs/LayoutKit/25.1.0/LayoutKit.podspec":"divkit/public-ios/Specs/LayoutKit/25.1.0/LayoutKit.podspec",
Expand Down
2 changes: 1 addition & 1 deletion DivKit/Actions/ArrayInsertValueActionHandler.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ final class ArrayInsertValueActionHandler {
}

if let index = action.resolveIndex(expressionResolver) {
guard index >= 0 && index <= array.count else {
guard index >= 0, index <= array.count else {
DivKitLogger
.error(
"Index out of bound \(index) for inserting value in \(variableName) with length \(array.count)"
Expand Down
2 changes: 1 addition & 1 deletion DivKit/Actions/ArrayRemoveValueActionHandler.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ final class ArrayRemoveValueActionHandler {
return
}

guard index >= 0 && index < array.count else {
guard index >= 0, index < array.count else {
DivKitLogger
.error(
"Index out of bound \(index) for removing value of \(variableName) with length \(array.count)"
Expand Down
2 changes: 1 addition & 1 deletion DivKit/Debug/ErrorListView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ private func makeErrorListBlock(errors: [String]) -> Block {
}

return try! GalleryBlock(
gaps: [0] + Array.init(repeating: 10, count: errorBlocks.count),
gaps: [0] + Array(repeating: 10, count: errorBlocks.count),
children: errorBlocks,
path: rootPath,
direction: .vertical,
Expand Down
2 changes: 1 addition & 1 deletion DivKit/DivBlockModelingContext.swift
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ public struct DivBlockModelingContext {
}
return extensions.compactMap {
let id = $0.id
if !extensionHandlers.keys.contains(id) && !stateInterceptors.keys.contains(id) {
if !extensionHandlers.keys.contains(id), !stateInterceptors.keys.contains(id) {
addError(message: "No DivExtensionHandler for: \(id)")
}
return extensionHandlers[id]
Expand Down
26 changes: 13 additions & 13 deletions DivKit/DivError.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ public protocol DivError: CustomStringConvertible {
}

public enum DivErrorKind: String {
case deserialization = "deserialization"
case deserialization
case blockModeling = "divModeling"
case expression = "expression"
case unknown = "unknown"
case expression
case unknown
}

extension DivError {
Expand All @@ -39,20 +39,20 @@ extension DivError {
public var description: String {
"[\(path)]: \(message)" + (
causes.isEmpty
? ""
: " caused by \(rootCauses.map { $0.description }.joined(separator: "; "))"
? ""
: " caused by \(rootCauses.map { $0.description }.joined(separator: "; "))"
)
}
}

extension DivError {
public var prettyMessage: String {
return "\(message)" +
"\nLevel: \(level)" +
"\nPath: \(path)" +
(
causes.isEmpty ? "" : "\nCauses:\n- " + rootCauses.map { "\($0)" }.joined(separator: "\n- ")
)
"\(message)" +
"\nLevel: \(level)" +
"\nPath: \(path)" +
(
causes.isEmpty ? "" : "\nCauses:\n- " + rootCauses.map { "\($0)" }.joined(separator: "\n- ")
)
}
}

Expand All @@ -64,8 +64,8 @@ public enum DivErrorLevel {
extension DeserializationError: DivError {
private func getPath(parent: UIElementPath?) -> UIElementPath? {
switch self {
case .nestedObjectError(let field, let error):
return error.getPath(parent: parent.map {$0 + field} ?? UIElementPath(field))
case let .nestedObjectError(field, error):
return error.getPath(parent: parent.map { $0 + field } ?? UIElementPath(field))
default:
return parent
}
Expand Down
2 changes: 1 addition & 1 deletion DivKit/DivKitInfo.swift
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
public enum DivKitInfo {
public static let version = "28.8.0"
public static let version = "28.9.0"
}
4 changes: 2 additions & 2 deletions DivKit/DivKitLogger.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Foundation

private var externalLogger: (DivErrorLevel, String) -> Void = { _, _ in }
private var externalLogger: (DivErrorLevel, String) -> Void = { _, _ in }

public enum DivKitLogger {
public static var isEnabled: Bool = false
Expand Down Expand Up @@ -32,6 +32,6 @@ public enum DivKitLogger {
}

public static func setLogger(_ logger: @escaping (String) -> Void) {
setLogger({ logger($1) })
setLogger { logger($1) }
}
}
16 changes: 8 additions & 8 deletions DivKit/Expressions/CalcExpression/AnyCalcExpression.swift
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ struct AnyCalcExpression: CustomStringConvertible {
return $0
case let .number(value):
guard let doubleValue = loadNumber(value) else {
throw Error.typeMismatch(symbol, try args.map(box.load))
throw try Error.typeMismatch(symbol, args.map(box.load))
}
return .number(doubleValue)
case .string:
Expand Down Expand Up @@ -175,9 +175,9 @@ struct AnyCalcExpression: CustomStringConvertible {
}
}
func equalArgs(_ lhs: CalcExpression.Value, _ rhs: CalcExpression.Value) throws -> Bool {
switch (
AnyCalcExpression.unwrap(try box.load(lhs)),
AnyCalcExpression.unwrap(try box.load(rhs))
switch try (
AnyCalcExpression.unwrap(box.load(lhs)),
AnyCalcExpression.unwrap(box.load(rhs))
) {
case (nil, nil):
return true
Expand Down Expand Up @@ -274,15 +274,15 @@ struct AnyCalcExpression: CustomStringConvertible {
throw Error.undefinedSymbol(symbol)
}
guard let doubleValue = loadNumber(args[0].value) else {
throw Error.typeMismatch(symbol, try args.map(box.load))
throw try Error.typeMismatch(symbol, args.map(box.load))
}
switch doubleValue {
case 1:
return args[1]
case 0:
return args[2]
default:
throw Error.typeMismatch(symbol, try args.map(box.load))
throw try Error.typeMismatch(symbol, args.map(box.load))
}
}
default:
Expand Down Expand Up @@ -336,7 +336,7 @@ struct AnyCalcExpression: CustomStringConvertible {
case let fn as CalcExpression.SymbolEvaluator:
return try fn(argsToDouble(Array(args.dropFirst()), for: symbol))
default:
throw Error.typeMismatch(symbol, try args.map(box.load))
throw try Error.typeMismatch(symbol, args.map(box.load))
}
}
} else if case let .function(name, _) = symbol {
Expand All @@ -354,7 +354,7 @@ struct AnyCalcExpression: CustomStringConvertible {
}
} else if let fn = pureSymbols(.variable(name)) {
do {
if let fn = funcEvaluator(for: symbol, try fn([])) {
if let fn = try funcEvaluator(for: symbol, fn([])) {
return fn
}
} catch {
Expand Down
2 changes: 1 addition & 1 deletion DivKit/Expressions/ExpressionLink.swift
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ extension StringProtocol {
return i
}
}
if char == "'" && notEscaped(at: i) {
if char == "'", notEscaped(at: i) {
stringStarted[nestedExpressionCounter] = !stringStarted[nestedExpressionCounter]!
}
}
Expand Down
66 changes: 33 additions & 33 deletions DivKit/Expressions/Functions/Function.swift
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ struct FunctionNullary<R>: SimpleFunction {

var signature: FunctionSignature {
get throws {
.init(
try .init(
arguments: [],
resultType: try .from(type: R.self)
resultType: .from(type: R.self)
)
}
}
Expand All @@ -48,11 +48,11 @@ struct FunctionUnary<T1, R>: SimpleFunction {

var signature: FunctionSignature {
get throws {
.init(
try .init(
arguments: [
.init(type: try .from(type: T1.self)),
try .init(type: .from(type: T1.self)),
],
resultType: try .from(type: R.self)
resultType: .from(type: R.self)
)
}
}
Expand All @@ -74,12 +74,12 @@ struct FunctionBinary<T1, T2, R>: SimpleFunction {

var signature: FunctionSignature {
get throws {
.init(
try .init(
arguments: [
.init(type: try .from(type: T1.self)),
.init(type: try .from(type: T2.self)),
try .init(type: .from(type: T1.self)),
try .init(type: .from(type: T2.self)),
],
resultType: try .from(type: R.self)
resultType: .from(type: R.self)
)
}
}
Expand All @@ -101,13 +101,13 @@ struct FunctionTernary<T1, T2, T3, R>: SimpleFunction {

var signature: FunctionSignature {
get throws {
.init(
try .init(
arguments: [
.init(type: try .from(type: T1.self)),
.init(type: try .from(type: T2.self)),
.init(type: try .from(type: T3.self)),
try .init(type: .from(type: T1.self)),
try .init(type: .from(type: T2.self)),
try .init(type: .from(type: T3.self)),
],
resultType: try .from(type: R.self)
resultType: .from(type: R.self)
)
}
}
Expand All @@ -129,14 +129,14 @@ struct FunctionQuaternary<T1, T2, T3, T4, R>: SimpleFunction {

var signature: FunctionSignature {
get throws {
.init(
try .init(
arguments: [
.init(type: try .from(type: T1.self)),
.init(type: try .from(type: T2.self)),
.init(type: try .from(type: T3.self)),
.init(type: try .from(type: T4.self)),
try .init(type: .from(type: T1.self)),
try .init(type: .from(type: T2.self)),
try .init(type: .from(type: T3.self)),
try .init(type: .from(type: T4.self)),
],
resultType: try .from(type: R.self)
resultType: .from(type: R.self)
)
}
}
Expand All @@ -159,11 +159,11 @@ struct FunctionVarUnary<T1, R>: SimpleFunction {

var signature: FunctionSignature {
get throws {
.init(
try .init(
arguments: [
.init(type: try .from(type: T1.self), vararg: true),
try .init(type: .from(type: T1.self), vararg: true),
],
resultType: try .from(type: R.self)
resultType: .from(type: R.self)
)
}
}
Expand All @@ -185,12 +185,12 @@ struct FunctionVarBinary<T1, T2, R>: SimpleFunction {

var signature: FunctionSignature {
get throws {
.init(
try .init(
arguments: [
.init(type: try .from(type: T1.self)),
.init(type: try .from(type: T2.self), vararg: true),
try .init(type: .from(type: T1.self)),
try .init(type: .from(type: T2.self), vararg: true),
],
resultType: try .from(type: R.self)
resultType: .from(type: R.self)
)
}
}
Expand All @@ -213,13 +213,13 @@ struct FunctionVarTernary<T1, T2, T3, R>: SimpleFunction {

var signature: FunctionSignature {
get throws {
.init(
try .init(
arguments: [
.init(type: try .from(type: T1.self)),
.init(type: try .from(type: T2.self)),
.init(type: try .from(type: T3.self), vararg: true),
try .init(type: .from(type: T1.self)),
try .init(type: .from(type: T2.self)),
try .init(type: .from(type: T3.self), vararg: true),
],
resultType: try .from(type: R.self)
resultType: .from(type: R.self)
)
}
}
Expand Down Expand Up @@ -256,7 +256,7 @@ struct OverloadedFunction: Function {
}

func invoke(args: [Any]) throws -> Any {
let arguments = try args.map { FunctionSignature.Argument(type: try .from(type: type(of: $0))) }
let arguments = try args.map { try FunctionSignature.Argument(type: .from(type: type(of: $0))) }
guard let function = try functions
.first(where: { try $0.signature.allArguments(arguments.count) == arguments })
else {
Expand Down
4 changes: 3 additions & 1 deletion DivKit/Extensions/ArrayExtensions.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ extension Array where Element == Div {
}
let block: Block
do {
block = try modifyError({ DivBlockModelingError($0.message, path: itemContext.parentPath) }) {
block = try modifyError({
DivBlockModelingError($0.message, path: itemContext.parentPath)
}) {
try div.value.makeBlock(context: itemContext)
}
} catch {
Expand Down
Loading

0 comments on commit ba65588

Please sign in to comment.