less annotations to god of lessannotations

This commit is contained in:
2020-10-15 17:33:35 +06:00
parent f8a8808508
commit 87230d010c
32 changed files with 25 additions and 52 deletions

View File

@@ -1,6 +1,7 @@
package dev.inmo.micro_utils.pagination
import kotlin.js.JsExport
import kotlin.js.JsName
import kotlin.math.ceil
import kotlin.math.floor
@@ -27,7 +28,6 @@ interface Pagination {
/**
* First number in index of objects. It can be used as offset for databases or other data sources
*/
@JsExport
val Pagination.firstIndex: Int
get() = page * size
@@ -37,7 +37,6 @@ val Pagination.firstIndex: Int
* [[firstIndex], [lastIndex]]; That means, that for [Pagination] with [Pagination.size] == 10 and [Pagination.page] == 1
* you will retrieve [Pagination.firstIndex] == 10 and [Pagination.lastIndex] == 19.
*/
@JsExport
val Pagination.lastIndex: Int
get() = firstIndex + size - 1
@@ -52,6 +51,7 @@ fun calculatePagesNumber(datasetSize: Long, pageSize: Int): Int {
* Calculates pages count for given [datasetSize]
*/
@JsExport
@JsName("calculatePagesNumberWithInt")
fun calculatePagesNumber(datasetSize: Int, pageSize: Int): Int =
calculatePagesNumber(
datasetSize.toLong(),

View File

@@ -2,6 +2,7 @@ package dev.inmo.micro_utils.pagination
import kotlinx.serialization.Serializable
import kotlin.js.JsExport
import kotlin.js.JsName
@JsExport
@Serializable
@@ -16,6 +17,7 @@ data class PaginationResult<T>(
fun <T> emptyPaginationResult() = PaginationResult<T>(0, 0, emptyList(), 0)
@JsExport
@JsName("createPaginationResultWithPagination")
fun <T> List<T>.createPaginationResult(
pagination: Pagination,
commonObjectsNumber: Long
@@ -30,6 +32,7 @@ fun <T> List<T>.createPaginationResult(
)
@JsExport
@JsName("createPaginationResultWithFirstIndex")
fun <T> List<T>.createPaginationResult(
firstIndex: Int,
commonObjectsNumber: Long
@@ -44,6 +47,7 @@ fun <T> List<T>.createPaginationResult(
)
@JsExport
@JsName("createPaginationResultWithPair")
fun <T> Pair<Long, List<T>>.createPaginationResult(
pagination: Pagination
) = second.createPaginationResult(pagination, first)

View File

@@ -2,6 +2,7 @@ package dev.inmo.micro_utils.pagination
import kotlinx.serialization.Serializable
import kotlin.js.JsExport
import kotlin.js.JsName
const val defaultSmallPageSize = 2
const val defaultMediumPageSize = 5
@@ -32,6 +33,7 @@ data class SimplePagination(
) : Pagination
@JsExport
@JsName("PaginationFactory")
fun Pagination(
page: Int,
size: Int

View File

@@ -2,6 +2,7 @@ package dev.inmo.micro_utils.pagination.utils
import dev.inmo.micro_utils.pagination.*
import kotlin.js.JsExport
import kotlin.js.JsName
@JsExport
fun <T> Iterable<T>.paginate(with: Pagination): PaginationResult<T> {
@@ -23,6 +24,7 @@ fun <T> Iterable<T>.paginate(with: Pagination): PaginationResult<T> {
}
@JsExport
@JsName("paginateList")
fun <T> List<T>.paginate(with: Pagination): PaginationResult<T> {
return subList(with.firstIndex, with.lastIndex + 1).createPaginationResult(
with,
@@ -31,6 +33,7 @@ fun <T> List<T>.paginate(with: Pagination): PaginationResult<T> {
}
@JsExport
@JsName("paginateSet")
fun <T> Set<T>.paginate(with: Pagination): PaginationResult<T> {
return this.drop(with.firstIndex).take(with.size).createPaginationResult(
with,

View File

@@ -7,21 +7,18 @@ const val paginationPageKey = "ppage"
@JsExport
const val paginationSizeKey = "psize"
@JsExport
val Pagination.asUrlQueryParts
get() = mapOf(
paginationPageKey to page.toString(),
paginationSizeKey to size.toString()
)
@JsExport
val Pagination.asUrlQueryArrayParts
get() = arrayOf(
paginationPageKey to page.toString(),
paginationSizeKey to size.toString()
)
@JsExport
val Map<String, String?>.extractPagination: Pagination
get() = SimplePagination(
get(paginationPageKey) ?.toIntOrNull() ?: 0,