├── .editorconfig ├── .github ├── ci-gradle.properties └── workflows │ └── Build.yml ├── .gitignore ├── LICENSE ├── README.md ├── cacheable-compiler ├── build.gradle.kts ├── gradle.properties └── src │ └── main │ └── kotlin │ └── com │ └── moriatsushi │ └── cacheable │ └── compiler │ ├── CacheableCompilerPluginRegistrar.kt │ ├── CacheableIrElementTransformer.kt │ ├── CacheableIrGenerationExtension.kt │ ├── declaration │ ├── CacheStoreClassDeclaration.kt │ ├── CacheableAnnotationDeclaration.kt │ ├── CacheableDeclarations.kt │ └── CoroutineCacheStoreClassDeclaration.kt │ └── factory │ ├── IrActualFunctionFactory.kt │ ├── IrCacheStoreFieldFactory.kt │ └── IrCacheableFunctionBodyFactory.kt ├── cacheable-core ├── build.gradle.kts ├── gradle.properties └── src │ ├── commonMain │ └── kotlin │ │ └── com │ │ └── moriatsushi │ │ └── cacheable │ │ ├── Cacheable.kt │ │ ├── CacheableConfiguration.kt │ │ ├── CacheableTimeProvider.kt │ │ └── internal │ │ ├── BaseCacheStore.kt │ │ ├── CacheEntry.kt │ │ ├── CacheStore.kt │ │ ├── CoroutineCacheStore.kt │ │ ├── DefaultTimeProvider.kt │ │ └── LockStore.kt │ └── commonTest │ └── kotlin │ └── com │ └── moriatsushi │ └── cacheable │ └── internal │ ├── CacheStoreTest.kt │ ├── CoroutineCacheStoreTest.kt │ └── LockStoreTest.kt ├── cacheable-gradle-plugin ├── build.gradle.kts ├── gradle.properties └── src │ └── main │ └── kotlin │ └── com │ └── moriatsushi │ └── cacheable │ └── gradle │ └── plugin │ └── CacheableCompilerPluginSupportPlugin.kt ├── gradle.properties ├── gradle ├── libs.versions.toml └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── kotlin-js-store └── yarn.lock ├── renovate.json ├── settings.gradle.kts └── test ├── build.gradle.kts └── src ├── commonMain └── kotlin │ └── com │ └── moriatsushi │ └── cacheable │ └── test │ ├── ClassWithCompanionObject.kt │ ├── CoroutinesClass.kt │ ├── SimpleClass.kt │ ├── SimpleEnumClass.kt │ ├── SimpleObject.kt │ ├── TopLevelFunction.kt │ └── WithMaxCountClass.kt ├── commonTest └── kotlin │ └── com │ └── moriatsushi │ └── cacheable │ └── test │ ├── ClassWithCompanionObjectTest.kt │ ├── CoroutinesClassTest.kt │ ├── FakeTimeProvider.kt │ ├── SimpleClassTest.kt │ ├── SimpleEnumClassTest.kt │ ├── SimpleObjectTest.kt │ ├── TopLevelFunctionTest.kt │ └── WithMaxCountClassTest.kt ├── jvmMain └── kotlin │ └── com │ └── moriatsushi │ └── cacheable │ └── test │ └── MultiThreadClass.kt └── jvmTest └── kotlin └── com └── moriatsushi └── cacheable └── test └── MultiThreadClassTest.kt /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/ci-gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/.github/ci-gradle.properties -------------------------------------------------------------------------------- /.github/workflows/Build.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/.github/workflows/Build.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/README.md -------------------------------------------------------------------------------- /cacheable-compiler/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-compiler/build.gradle.kts -------------------------------------------------------------------------------- /cacheable-compiler/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-compiler/gradle.properties -------------------------------------------------------------------------------- /cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/CacheableCompilerPluginRegistrar.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/CacheableCompilerPluginRegistrar.kt -------------------------------------------------------------------------------- /cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/CacheableIrElementTransformer.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/CacheableIrElementTransformer.kt -------------------------------------------------------------------------------- /cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/CacheableIrGenerationExtension.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/CacheableIrGenerationExtension.kt -------------------------------------------------------------------------------- /cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/declaration/CacheStoreClassDeclaration.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/declaration/CacheStoreClassDeclaration.kt -------------------------------------------------------------------------------- /cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/declaration/CacheableAnnotationDeclaration.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/declaration/CacheableAnnotationDeclaration.kt -------------------------------------------------------------------------------- /cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/declaration/CacheableDeclarations.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/declaration/CacheableDeclarations.kt -------------------------------------------------------------------------------- /cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/declaration/CoroutineCacheStoreClassDeclaration.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/declaration/CoroutineCacheStoreClassDeclaration.kt -------------------------------------------------------------------------------- /cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/factory/IrActualFunctionFactory.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/factory/IrActualFunctionFactory.kt -------------------------------------------------------------------------------- /cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/factory/IrCacheStoreFieldFactory.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/factory/IrCacheStoreFieldFactory.kt -------------------------------------------------------------------------------- /cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/factory/IrCacheableFunctionBodyFactory.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-compiler/src/main/kotlin/com/moriatsushi/cacheable/compiler/factory/IrCacheableFunctionBodyFactory.kt -------------------------------------------------------------------------------- /cacheable-core/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-core/build.gradle.kts -------------------------------------------------------------------------------- /cacheable-core/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-core/gradle.properties -------------------------------------------------------------------------------- /cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/Cacheable.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/Cacheable.kt -------------------------------------------------------------------------------- /cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/CacheableConfiguration.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/CacheableConfiguration.kt -------------------------------------------------------------------------------- /cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/CacheableTimeProvider.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/CacheableTimeProvider.kt -------------------------------------------------------------------------------- /cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/internal/BaseCacheStore.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/internal/BaseCacheStore.kt -------------------------------------------------------------------------------- /cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/internal/CacheEntry.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/internal/CacheEntry.kt -------------------------------------------------------------------------------- /cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/internal/CacheStore.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/internal/CacheStore.kt -------------------------------------------------------------------------------- /cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/internal/CoroutineCacheStore.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/internal/CoroutineCacheStore.kt -------------------------------------------------------------------------------- /cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/internal/DefaultTimeProvider.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/internal/DefaultTimeProvider.kt -------------------------------------------------------------------------------- /cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/internal/LockStore.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-core/src/commonMain/kotlin/com/moriatsushi/cacheable/internal/LockStore.kt -------------------------------------------------------------------------------- /cacheable-core/src/commonTest/kotlin/com/moriatsushi/cacheable/internal/CacheStoreTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-core/src/commonTest/kotlin/com/moriatsushi/cacheable/internal/CacheStoreTest.kt -------------------------------------------------------------------------------- /cacheable-core/src/commonTest/kotlin/com/moriatsushi/cacheable/internal/CoroutineCacheStoreTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-core/src/commonTest/kotlin/com/moriatsushi/cacheable/internal/CoroutineCacheStoreTest.kt -------------------------------------------------------------------------------- /cacheable-core/src/commonTest/kotlin/com/moriatsushi/cacheable/internal/LockStoreTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-core/src/commonTest/kotlin/com/moriatsushi/cacheable/internal/LockStoreTest.kt -------------------------------------------------------------------------------- /cacheable-gradle-plugin/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-gradle-plugin/build.gradle.kts -------------------------------------------------------------------------------- /cacheable-gradle-plugin/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-gradle-plugin/gradle.properties -------------------------------------------------------------------------------- /cacheable-gradle-plugin/src/main/kotlin/com/moriatsushi/cacheable/gradle/plugin/CacheableCompilerPluginSupportPlugin.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/cacheable-gradle-plugin/src/main/kotlin/com/moriatsushi/cacheable/gradle/plugin/CacheableCompilerPluginSupportPlugin.kt -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/gradle.properties -------------------------------------------------------------------------------- /gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/gradle/libs.versions.toml -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/gradlew.bat -------------------------------------------------------------------------------- /kotlin-js-store/yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/kotlin-js-store/yarn.lock -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/renovate.json -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/settings.gradle.kts -------------------------------------------------------------------------------- /test/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/build.gradle.kts -------------------------------------------------------------------------------- /test/src/commonMain/kotlin/com/moriatsushi/cacheable/test/ClassWithCompanionObject.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/commonMain/kotlin/com/moriatsushi/cacheable/test/ClassWithCompanionObject.kt -------------------------------------------------------------------------------- /test/src/commonMain/kotlin/com/moriatsushi/cacheable/test/CoroutinesClass.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/commonMain/kotlin/com/moriatsushi/cacheable/test/CoroutinesClass.kt -------------------------------------------------------------------------------- /test/src/commonMain/kotlin/com/moriatsushi/cacheable/test/SimpleClass.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/commonMain/kotlin/com/moriatsushi/cacheable/test/SimpleClass.kt -------------------------------------------------------------------------------- /test/src/commonMain/kotlin/com/moriatsushi/cacheable/test/SimpleEnumClass.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/commonMain/kotlin/com/moriatsushi/cacheable/test/SimpleEnumClass.kt -------------------------------------------------------------------------------- /test/src/commonMain/kotlin/com/moriatsushi/cacheable/test/SimpleObject.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/commonMain/kotlin/com/moriatsushi/cacheable/test/SimpleObject.kt -------------------------------------------------------------------------------- /test/src/commonMain/kotlin/com/moriatsushi/cacheable/test/TopLevelFunction.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/commonMain/kotlin/com/moriatsushi/cacheable/test/TopLevelFunction.kt -------------------------------------------------------------------------------- /test/src/commonMain/kotlin/com/moriatsushi/cacheable/test/WithMaxCountClass.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/commonMain/kotlin/com/moriatsushi/cacheable/test/WithMaxCountClass.kt -------------------------------------------------------------------------------- /test/src/commonTest/kotlin/com/moriatsushi/cacheable/test/ClassWithCompanionObjectTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/commonTest/kotlin/com/moriatsushi/cacheable/test/ClassWithCompanionObjectTest.kt -------------------------------------------------------------------------------- /test/src/commonTest/kotlin/com/moriatsushi/cacheable/test/CoroutinesClassTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/commonTest/kotlin/com/moriatsushi/cacheable/test/CoroutinesClassTest.kt -------------------------------------------------------------------------------- /test/src/commonTest/kotlin/com/moriatsushi/cacheable/test/FakeTimeProvider.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/commonTest/kotlin/com/moriatsushi/cacheable/test/FakeTimeProvider.kt -------------------------------------------------------------------------------- /test/src/commonTest/kotlin/com/moriatsushi/cacheable/test/SimpleClassTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/commonTest/kotlin/com/moriatsushi/cacheable/test/SimpleClassTest.kt -------------------------------------------------------------------------------- /test/src/commonTest/kotlin/com/moriatsushi/cacheable/test/SimpleEnumClassTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/commonTest/kotlin/com/moriatsushi/cacheable/test/SimpleEnumClassTest.kt -------------------------------------------------------------------------------- /test/src/commonTest/kotlin/com/moriatsushi/cacheable/test/SimpleObjectTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/commonTest/kotlin/com/moriatsushi/cacheable/test/SimpleObjectTest.kt -------------------------------------------------------------------------------- /test/src/commonTest/kotlin/com/moriatsushi/cacheable/test/TopLevelFunctionTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/commonTest/kotlin/com/moriatsushi/cacheable/test/TopLevelFunctionTest.kt -------------------------------------------------------------------------------- /test/src/commonTest/kotlin/com/moriatsushi/cacheable/test/WithMaxCountClassTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/commonTest/kotlin/com/moriatsushi/cacheable/test/WithMaxCountClassTest.kt -------------------------------------------------------------------------------- /test/src/jvmMain/kotlin/com/moriatsushi/cacheable/test/MultiThreadClass.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/jvmMain/kotlin/com/moriatsushi/cacheable/test/MultiThreadClass.kt -------------------------------------------------------------------------------- /test/src/jvmTest/kotlin/com/moriatsushi/cacheable/test/MultiThreadClassTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mori-atsushi/kotlin-cacheable/HEAD/test/src/jvmTest/kotlin/com/moriatsushi/cacheable/test/MultiThreadClassTest.kt --------------------------------------------------------------------------------