Skip to content

Commit 8fb7bd2

Browse files
authored
Deprecate apollo-adapters (#6012)
* Remove apollo-adapters * update custom-scalars.mdx * deprecate apollo-adapters * update migration guide
1 parent 8262729 commit 8fb7bd2

File tree

23 files changed

+110
-98
lines changed

23 files changed

+110
-98
lines changed

docs/source/essentials/custom-scalars.mdx

Lines changed: 13 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -119,47 +119,20 @@ This method takes a type-safe generated class from `Types`, along with its corre
119119

120120
> If you can't find `Types`, build your project to trigger codegen.
121121
122-
## Apollo-provided adapters
122+
## Built-in adapters
123123

124-
The following built-in adapters can be used with common custom scalar types:
124+
`apollo-api` provides the following built-in adapters:
125125

126-
| Adapter | Description |
127-
|----------------------------------------------|---------------------------------------------------|
128-
| `com.apollographql.apollo3.api.FloatAdapter` | Converts from/to `kotlin.Float`/`java.lang.Float` |
129-
| `com.apollographql.apollo3.api.LongAdapter` | Converts from/to `kotlin.Long`/`java.lang.Long` |
126+
| Adapter | Description |
127+
|------------------------------------------------|-------------------------------------------------------|
128+
| `com.apollographql.apollo3.api.StringAdapter` | Converts from/to `kotlin.String`/`java.lang.String` |
129+
| `com.apollographql.apollo3.api.IntAdapter` | Converts from/to `kotlin.Int`/`java.lang.Int` |
130+
| `com.apollographql.apollo3.api.BooleanAdapter` | Converts from/to `kotlin.Boolean`/`java.lang.Boolean` |
131+
| `com.apollographql.apollo3.api.DoubleAdapter` | Converts from/to `kotlin.Double`/`java.lang.Double` |
132+
| `com.apollographql.apollo3.api.FloatAdapter` | Converts from/to `kotlin.Float`/`java.lang.Float` |
133+
| `com.apollographql.apollo3.api.LongAdapter` | Converts from/to `kotlin.Long`/`java.lang.Long` |
134+
| `com.apollographql.apollo3.api.AnyAdapter` | Converts from/to `kotlin.Any`/`java.lang.Object` |
130135

131-
In addition, the `com.apollographql.apollo3:apollo-adapters` artifact provides these adapters:
136+
## Extra adapters
132137

133-
| Adapter | Description |
134-
|-----------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|
135-
| `com.apollographql.apollo3.adapter.KotlinxInstantAdapter` | For `kotlinx.datetime.Instant` ISO8601 dates |
136-
| `com.apollographql.apollo3.adapter.JavaInstantAdapter` | For `java.time.Instant` ISO8601 dates |
137-
| `com.apollographql.apollo3.adapter.KotlinxLocalDateAdapter` | For `kotlinx.datetime.LocalDate` ISO8601 dates |
138-
| `com.apollographql.apollo3.adapter.JavaLocalDateAdapter` | For `java.time.LocalDate` ISO8601 dates |
139-
| `com.apollographql.apollo3.adapter.KotlinxLocalDateTimeAdapter` | For `kotlinx.datetime.LocalDateTime` ISO8601 dates |
140-
| `com.apollographql.apollo3.adapter.JavaLocalDateTimeAdapter` | For `java.time.LocalDateTime` ISO8601 dates |
141-
| `com.apollographql.apollo3.adapter.KotlinxLocalTimeAdapter` | For `kotlinx.datetime.LocalTime` ISO8601 dates |
142-
| `com.apollographql.apollo3.adapter.JavaLocalTimeAdapter` | For `java.time.LocalTime` ISO8601 dates |
143-
| `com.apollographql.apollo3.adapter.JavaOffsetDateTimeAdapter` | For `java.time.OffsetDateTime` ISO8601 dates |
144-
| `com.apollographql.apollo3.adapter.DateAdapter` | For `java.util.Date` ISO8601 dates |
145-
| `com.apollographql.apollo3.adapter.BigDecimalAdapter` | For a Multiplatform `com.apollographql.apollo3.adapter.BigDecimal` class holding big decimal values |
146-
147-
<Note>
148-
149-
Because some adapters use `kotlinx.datetime` (which itself uses `java.time`), you need to enable [core library desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring) on Android API levels < 26
150-
151-
</Note>
152-
153-
For example, to use `DateAdapter`, configure your Gradle scripts like so:
154-
155-
```kotlin title="build.gradle[.kts]"
156-
dependencies {
157-
implementation("com.apollographql.apollo3:apollo-adapters:4.0.0-beta.7")
158-
}
159-
160-
apollo {
161-
service("service") {
162-
mapScalar("Date", "java.util.Date", "com.apollographql.apollo3.adapter.DateAdapter")
163-
}
164-
}
165-
```
138+
Extra adapters for dates and big decimals are available at https://github.com/apollographql/apollo-kotlin-adapters

docs/source/migration/4.0.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ Other artifacts are moved to new maven coordinates and GitHub repositories.
3333

3434
| Old coordinates | New coordinates | New Repository |
3535
|---------------------------------------------------------------------|------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------|
36+
| com.apollographql.apollo3:apollo-adapters | com.apollographql.adapters:apollo-adapters-core | [apollographql/apollo-kotlin-adapters](https://github.com/apollographql/apollo-kotlin-adapters) |
37+
| | com.apollographql.adapters:apollo-adapters-datetime | [apollographql/apollo-kotlin-adapters](https://github.com/apollographql/apollo-kotlin-adapters) |
3638
| com.apollographql.apollo3:apollo-compose-support-incubating | com.apollographql.compose:compose-support | [apollographql/apollo-kotlin-compose-support](https://github.com/apollographql/apollo-kotlin-compose-support) |
3739
| com.apollographql.apollo3:apollo-compose-paging-support-incubating | com.apollographql.compose:compose-paging-support | [apollographql/apollo-kotlin-compose-support](https://github.com/apollographql/apollo-kotlin-compose-support) |
3840
| com.apollographql.apollo3:apollo-cli-incubating | com.apollographql.cli:apollo-cli | [apollographql/apollo-kotlin-cli](https://github.com/apollographql/apollo-kotlin-cli) |

gradle/libraries.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ androidx-profileinstaller = "androidx.profileinstaller:profileinstaller:1.3.1"
6363
androidx-sqlite = { group = "androidx.sqlite", name = "sqlite", version.ref = "androidx-sqlite" }
6464
androidx-sqlite-framework = { group = "androidx.sqlite", name = "sqlite-framework", version.ref = "androidx-sqlite" }
6565
androidx-startup-runtime = { group = "androidx.startup", name = "startup-runtime", version = "1.1.1" }
66-
apollo-adapters = { group = "com.apollographql.apollo3", name = "apollo-adapters", version.ref = "apollo" }
6766
apollo-api = { group = "com.apollographql.apollo3", name = "apollo-api", version.ref = "apollo" }
6867
apollo-api-java = { group = "com.apollographql.apollo3", name = "apollo-api-java", version.ref = "apollo" }
6968
apollo-httpCache = { group = "com.apollographql.apollo3", name = "apollo-http-cache", version.ref = "apollo" }

libraries/apollo-adapters/src/appleMain/kotlin/com/apollographql/apollo3/adapter/BigDecimal.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package com.apollographql.apollo3.adapter
22

3+
import com.apollographql.apollo3.annotations.ApolloDeprecatedSince
34
import platform.Foundation.NSDecimalNumber
45

6+
@ApolloDeprecatedSince(ApolloDeprecatedSince.Version.v4_0_0)
57
actual class BigDecimal internal constructor(private val raw: NSDecimalNumber) : Number() {
68

79
actual constructor(strVal: String) : this(NSDecimalNumber(strVal))

libraries/apollo-adapters/src/commonMain/kotlin/com/apollographql/apollo3/adapter/BigDecimal.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
@file:Suppress("DEPRECATION")
2+
13
package com.apollographql.apollo3.adapter
24

5+
import com.apollographql.apollo3.annotations.ApolloDeprecatedSince
36
import com.apollographql.apollo3.api.Adapter
47
import com.apollographql.apollo3.api.CustomScalarAdapters
58
import com.apollographql.apollo3.api.json.JsonReader
@@ -9,6 +12,8 @@ import com.apollographql.apollo3.api.json.JsonWriter
912
/**
1013
* An [Adapter] that converts to/from [BigDecimal]
1114
*/
15+
@Deprecated("BigDecimalAdapter has new maven coordinates at 'com.apollographql.adapters:apollo-adapters-core. See https://go.apollo.dev/ak-4-migration-guide for more details.")
16+
@ApolloDeprecatedSince(ApolloDeprecatedSince.Version.v4_0_0)
1217
object BigDecimalAdapter : Adapter<BigDecimal> {
1318
override fun fromJson(reader: JsonReader, customScalarAdapters: CustomScalarAdapters): BigDecimal {
1419
return BigDecimal(reader.nextString()!!)
@@ -27,6 +32,8 @@ object BigDecimalAdapter : Adapter<BigDecimal> {
2732
* BigDecimal cannot subclass `Number` in JS, as it will cause runtime trap in any compiled Kotlin/JS product in the module initialization
2833
* script.
2934
*/
35+
@Deprecated("BigDecimal has new maven coordinates at 'com.apollographql.adapters:apollo-adapters-core. See https://go.apollo.dev/ak-4-migration-guide for more details.")
36+
@ApolloDeprecatedSince(ApolloDeprecatedSince.Version.v4_0_0)
3037
expect class BigDecimal {
3138
constructor(strVal: String)
3239
constructor(doubleVal: Double)

libraries/apollo-adapters/src/commonMain/kotlin/com/apollographql/apollo3/adapter/KotlinxTimeAdapters.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.apollographql.apollo3.adapter
22

3+
import com.apollographql.apollo3.annotations.ApolloDeprecatedSince
34
import com.apollographql.apollo3.api.Adapter
45
import com.apollographql.apollo3.api.CustomScalarAdapters
56
import com.apollographql.apollo3.api.json.JsonReader
@@ -15,6 +16,8 @@ import kotlinx.datetime.LocalTime
1516
*
1617
* It requires Android Gradle plugin 4.0 or newer and [core library desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring).
1718
*/
19+
@Deprecated("KotlinxInstantAdapter has new maven coordinates at 'com.apollographql.adapters:apollo-adapters-datetime. See https://go.apollo.dev/ak-4-migration-guide for more details.")
20+
@ApolloDeprecatedSince(ApolloDeprecatedSince.Version.v4_0_0)
1821
object KotlinxInstantAdapter : Adapter<Instant> {
1922
override fun fromJson(reader: JsonReader, customScalarAdapters: CustomScalarAdapters): Instant {
2023
return Instant.parse(reader.nextString()!!)
@@ -31,6 +34,8 @@ object KotlinxInstantAdapter : Adapter<Instant> {
3134
*
3235
* It requires Android Gradle plugin 4.0 or newer and [core library desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring).
3336
*/
37+
@Deprecated("KotlinxLocalDateTimeAdapter has new maven coordinates at 'com.apollographql.adapters:apollo-adapters-datetime. See https://go.apollo.dev/ak-4-migration-guide for more details.")
38+
@ApolloDeprecatedSince(ApolloDeprecatedSince.Version.v4_0_0)
3439
object KotlinxLocalDateTimeAdapter : Adapter<LocalDateTime> {
3540
override fun fromJson(reader: JsonReader, customScalarAdapters: CustomScalarAdapters): LocalDateTime {
3641
return LocalDateTime.parse(reader.nextString()!!)
@@ -47,6 +52,8 @@ object KotlinxLocalDateTimeAdapter : Adapter<LocalDateTime> {
4752
*
4853
* It requires Android Gradle plugin 4.0 or newer and [core library desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring).
4954
*/
55+
@Deprecated("KotlinxLocalDateAdapter has new maven coordinates at 'com.apollographql.adapters:apollo-adapters-datetime. See https://go.apollo.dev/ak-4-migration-guide for more details.")
56+
@ApolloDeprecatedSince(ApolloDeprecatedSince.Version.v4_0_0)
5057
object KotlinxLocalDateAdapter : Adapter<LocalDate> {
5158
override fun fromJson(reader: JsonReader, customScalarAdapters: CustomScalarAdapters): LocalDate {
5259
return LocalDate.parse(reader.nextString()!!)
@@ -63,6 +70,8 @@ object KotlinxLocalDateAdapter : Adapter<LocalDate> {
6370
*
6471
* It requires Android Gradle plugin 4.0 or newer and [core library desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring).
6572
*/
73+
@Deprecated("KotlinxLocalTimeAdapter has new maven coordinates at 'com.apollographql.adapters:apollo-adapters-datetime. See https://go.apollo.dev/ak-4-migration-guide for more details.")
74+
@ApolloDeprecatedSince(ApolloDeprecatedSince.Version.v4_0_0)
6675
object KotlinxLocalTimeAdapter : Adapter<LocalTime> {
6776
override fun fromJson(reader: JsonReader, customScalarAdapters: CustomScalarAdapters): LocalTime {
6877
return LocalTime.parse(reader.nextString()!!)

libraries/apollo-adapters/src/jsCommonTest/kotlin/com/apollographql/apollo3/adapter/test/BigDecimalTests.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
@file:Suppress("DEPRECATION")
2+
13
package com.apollographql.apollo3.adapter.test
24

35
import com.apollographql.apollo3.adapter.BigDecimal

libraries/apollo-adapters/src/jsMain/kotlin/com/apollographql/apollo3/adapter/BigDecimal.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.apollographql.apollo3.adapter
22

3+
import com.apollographql.apollo3.annotations.ApolloDeprecatedSince
4+
35
@JsModule("big.js")
46
@JsNonModule
57
internal external fun jsBig(raw: dynamic): Big
@@ -17,6 +19,7 @@ internal external class Big {
1719
fun round(dp: Int, rm: Int): Big
1820
}
1921

22+
@ApolloDeprecatedSince(ApolloDeprecatedSince.Version.v4_0_0)
2023
actual class BigDecimal {
2124
internal val raw: Big
2225

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
1+
@file:Suppress("ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT")
2+
13
package com.apollographql.apollo3.adapter
24

5+
import com.apollographql.apollo3.annotations.ApolloDeprecatedSince
36
import java.math.BigDecimal as JBigDecimal
47

8+
@Deprecated("BigDecimal has new maven coordinates at 'com.apollographql.adapters:apollo-adapters-core. See https://go.apollo.dev/ak-4-migration-guide for more details.")
9+
@ApolloDeprecatedSince(ApolloDeprecatedSince.Version.v4_0_0)
510
actual typealias BigDecimal = JBigDecimal
611

12+
@Suppress("DEPRECATION")
713
actual fun BigDecimal.toNumber(): Number = this

libraries/apollo-adapters/src/jvmMain/kotlin/com/apollographql/apollo3/adapter/DateAdapter.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.apollographql.apollo3.adapter
22

3+
import com.apollographql.apollo3.annotations.ApolloDeprecatedSince
34
import com.apollographql.apollo3.api.Adapter
45
import com.apollographql.apollo3.api.CustomScalarAdapters
56
import com.apollographql.apollo3.api.json.JsonReader
@@ -18,6 +19,8 @@ import java.util.Date
1819
*
1920
* It requires Android Gradle plugin 4.0 or newer and [core library desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring).
2021
*/
22+
@Deprecated("DateAdapter has new maven coordinates at 'com.apollographql.adapters:apollo-adapters-core. See https://go.apollo.dev/ak-4-migration-guide for more details.")
23+
@ApolloDeprecatedSince(ApolloDeprecatedSince.Version.v4_0_0)
2124
object DateAdapter : Adapter<Date> {
2225
override fun fromJson(reader: JsonReader, customScalarAdapters: CustomScalarAdapters): Date {
2326
return Date(OffsetDateTime.parse(reader.nextString()!!).toInstant().toEpochMilli())

0 commit comments

Comments
 (0)