diff --git a/LICENSE b/LICENSE index 0804e5f..d867f51 100644 --- a/LICENSE +++ b/LICENSE @@ -1,24 +1,6 @@ -COPYRIGHT (C) LIMITED USE SOFTWARE LICENSE AGREEMENT +Copyright (C) 2021 adam@adamko.dev -All rights are reserved by the copyright holder. +This file is part of the Kafkatorio project. -Permission is granted to use this software as a Factorio mod. - -Permission is granted distribute this software under the -condition that the distribution is publicly accessible, -and no payment or registration is required. Additionally, -all distributions must include the full source code of the -software, without restrictions or limitations. - -Permission is granted to make modifications to this software -under the condition that any claim of ownership is -relinquished, and any modification becomes the property of -the original copyright holder of this software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT -NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -For more information contact fredthedeadhead@gmail.com +The Kafkatorio project cannot be copied and/or distributed +without the express permission of the author - adam@adamko.dev diff --git a/README.md b/README.md index 0c1acaa..b2ee244 100644 --- a/README.md +++ b/README.md @@ -6,13 +6,20 @@ 1. converts data to images 2. hosts a web map + + +## License + +While this project is under development, [no license](https://choosealicense.com/no-permission/) +is provided. + ## todo * add settings * is active - whether files are exported or not * delete files - clean up all files - * tick-rate - how often reports are generated ( - * requires on some sort of in-mod cache of map) + * tick-rate - how often reports are generated + * requires on some sort of in-mod cache of map * also divide by game-speed? to keep ratio the same ### to investigate: @@ -48,4 +55,7 @@ https://github.com/dvidelabs/flatcc #### CBOR https://www.zash.se/lua-cbor.html -https://code.zash.se/lua-cbor/archive/68b3a36d0816.tar.gz \ No newline at end of file +https://code.zash.se/lua-cbor/archive/68b3a36d0816.tar.gz + + + diff --git a/build.gradle.kts b/build.gradle.kts index a569d76..582d59f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,13 +5,32 @@ plugins { `build-dashboard` } -group = "dev.adamko" -version = "0.1.1" +group = "dev.adamko.kafkatorio" +version = "0.1.2" + +val licenseFile: RegularFile by extra(layout.projectDirectory.file("LICENSE")) + +val projectTokens: MutableMap by extra( + mutableMapOf( + "project.version" to "$version", + "rootProject.name" to rootProject.name, + "date.year" to "${java.time.LocalDate.now().year}", + "author.email" to "adam@adamko.dev", + ) +) + +idea { + module { + isDownloadSources = true + isDownloadJavadoc = true + } +} tasks.wrapper { - gradleVersion = "7.3" + gradleVersion = "7.3.1" distributionType = Wrapper.DistributionType.ALL } +tasks.assemble { dependsOn(tasks.wrapper) } val startInfra by tasks.registering { group = project.name diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 1b93bce..c61dbe9 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -60,4 +60,4 @@ idea { } } -tasks.assemble { dependsOn(tasks.htmlDependencyReport) } +//tasks.assemble { dependsOn(tasks.htmlDependencyReport) } diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/base.gradle.kts b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/base.gradle.kts index a23eaa1..732bd75 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/base.gradle.kts +++ b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/base.gradle.kts @@ -8,14 +8,6 @@ plugins { group = "${rootProject.group}.${project.name}" version = rootProject.version -val licenseFile: RegularFile by extra(rootProject.layout.projectDirectory.file("LICENSE")) - -val tokens: MutableMap by extra( - mutableMapOf( - "project.version" to "$version", - ) -) - idea { module { isDownloadSources = true diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/gradle/artifactDistributions.kt b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/gradle/artifactDistributions.kt index e4a9181..02bf554 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/gradle/artifactDistributions.kt +++ b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/gradle/artifactDistributions.kt @@ -32,7 +32,7 @@ fun Configuration.factorioModAttributes(objects: ObjectFactory): Configuration = attribute(BUNDLING_ATTRIBUTE, objects.named(Bundling.EMBEDDED)) } -fun Configuration.typescriptAttributes(objects: ObjectFactory) = +fun Configuration.typescriptAttributes(objects: ObjectFactory): Configuration = attributes { attribute(USAGE_ATTRIBUTE, objects.named("typescript")) attribute(CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY)) diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/kotlin-js.gradle.kts b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/kotlin-js.gradle.kts index a7ce394..2304d8b 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/kotlin-js.gradle.kts +++ b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/kotlin-js.gradle.kts @@ -1,16 +1,8 @@ package dev.adamko.kafkatorio.lang import org.gradle.kotlin.dsl.kotlin -import com.github.gradle.node.npm.task.NpmTask -import com.github.gradle.node.task.NodeTask -import org.gradle.kotlin.dsl.dependencies -import org.gradle.kotlin.dsl.extra -import org.gradle.kotlin.dsl.getting -import org.jetbrains.kotlin.gradle.targets.js.dukat.DtsResolver -import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.RootPackageJsonTask -import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinPackageJsonTask -import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject +import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.RootPackageJsonTask plugins { @@ -19,6 +11,8 @@ plugins { id("dev.adamko.kafkatorio.lang.node") } +// not in use at the moment + kotlin { js(IR) { binaries.executable() @@ -31,9 +25,9 @@ kotlin { dependencies { val kotlinWrappersVersion = "0.0.1-pre.270-kotlin-1.6.0" implementation( - project.dependencies.enforcedPlatform( - "org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom:${kotlinWrappersVersion}" - ) + project.dependencies.enforcedPlatform( + "org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom:${kotlinWrappersVersion}" + ) ) } diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/node.gradle.kts b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/node.gradle.kts index 7561bd9..53475e4 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/node.gradle.kts +++ b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/node.gradle.kts @@ -28,16 +28,16 @@ val updatePackageJson by tasks.registering(UpdatePackageJson::class) { group = NodePlugin.NODE_GROUP description = "Read the package.json file and update the version and name, based on the project." - propertiesToCheck["version"] = "${project.version}" + propertiesToCheck.put("version", "${project.version}") // check to see if the properties are already up-to-date - onlyIf(!areJsonPropertiesUpToDate(packageJsonFile) { propertiesToCheck }) + onlyIf(!areJsonPropertiesUpToDate(packageJsonFile) { propertiesToCheck.get() }) doLast { val packageJsonContent = packageJsonFile.get().asFile.readText() val packageJson = jsonMapper.parseToJsonElement(packageJsonContent).jsonObject - val newJsonProps = propertiesToCheck.mapValues { (_, newVal) -> JsonPrimitive(newVal) } + val newJsonProps = propertiesToCheck.get().mapValues { (_, newVal) -> JsonPrimitive(newVal) } val packageJsonUpdate = JsonObject(packageJson + newJsonProps) val packageJsonContentUpdated = diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/UpdatePackageJson.kt b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/UpdatePackageJson.kt index 2dc7b99..9017d20 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/UpdatePackageJson.kt +++ b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/UpdatePackageJson.kt @@ -2,12 +2,20 @@ package dev.adamko.kafkatorio.task import org.gradle.api.DefaultTask import org.gradle.api.file.RegularFileProperty +import org.gradle.api.provider.MapProperty import org.gradle.api.tasks.Input import org.gradle.api.tasks.OutputFile abstract class UpdatePackageJson : DefaultTask() { @get:Input - val propertiesToCheck: MutableMap = mutableMapOf() + abstract val propertiesToCheck: MapProperty @get:OutputFile abstract val packageJsonFile: RegularFileProperty + + init { + super.doFirst { + propertiesToCheck.disallowChanges() + packageJsonFile.disallowChanges() + } + } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 439b18d..2107b2b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,6 +15,7 @@ log4j2 = "2.14.1" qosLogback = "1.2.5" kafka = "3.0.0" kotlinx-serialization = "1.3.1" +kvision = "5.6.1" ## test ## junit = "5.8.1" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index fbce071..3cd8500 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/modules/events-mod/build.gradle.kts b/modules/events-mod/build.gradle.kts index e0f5ecc..ff7582b 100644 --- a/modules/events-mod/build.gradle.kts +++ b/modules/events-mod/build.gradle.kts @@ -5,6 +5,7 @@ import dev.adamko.kafkatorio.gradle.factorioModAttributes import dev.adamko.kafkatorio.gradle.typescriptAttributes import groovy.json.JsonOutput import org.apache.tools.ant.filters.ReplaceTokens +import org.jetbrains.kotlin.gradle.targets.js.npm.SemVer import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs plugins { @@ -23,16 +24,18 @@ description = val modName: String by extra("${rootProject.name}-events") val distributionZipName: String by extra("${modName}_${project.version}.zip") +// version of Factorio that the mod is compatible with (must only be "major.minor" - patch causes error) +val modFactorioCompatibility = SemVer.from(libs.versions.factorio.get()).run { "$major.$minor" } -val tokens: MutableMap by project.extra -tokens += mapOf( +val licenseFile: RegularFile by rootProject.extra +val projectTokens: MutableMap by rootProject.extra +projectTokens += mapOf( "mod.name" to modName, "mod.title" to "Kafkatorio Events", "mod.description" to (project.description ?: ""), - "factorio.version" to libs.versions.factorio.get().substringBeforeLast("."), + "factorio.version" to modFactorioCompatibility, ) -val licenseFile: RegularFile by project.extra val tsSrcDir: Directory = layout.projectDirectory.dir("src/main/typescript") node { @@ -52,7 +55,7 @@ val typescriptToLua by tasks.registering(NpmTask::class) { description = "Convert Typescript To Lua" group = project.name - dependsOn(tasks.npmInstall, fetchEventsSchema) + dependsOn(tasks.npmInstall, installEventsSchema) execOverrides { standardOutput = System.out } @@ -84,7 +87,7 @@ val typescriptToLua by tasks.registering(NpmTask::class) { } -val fetchEventsSchema by tasks.registering(Sync::class) { +val installEventsSchema by tasks.registering(Sync::class) { description = "Fetch the latest shared data-model" group = project.name @@ -124,10 +127,10 @@ distributions { } from(licenseFile) from(typescriptToLua.map { it.outputs }) - filter("tokens" to tokens) + filter("tokens" to projectTokens) includeEmptyDirs = false exclude { - // exclude empty lines + // exclude empty files it.file.run { isFile && useLines { lines -> lines.all { line -> line.isBlank() } } } @@ -196,7 +199,6 @@ val downloadFactorioApiDocs by tasks.registering { } } - val factorioModProvider by configurations.registering { asProvider() factorioModAttributes(objects) @@ -204,13 +206,11 @@ val factorioModProvider by configurations.registering { } tasks.updatePackageJson { - propertiesToCheck["name"] = "${rootProject.name}-${project.name}" + propertiesToCheck.put("name", "${rootProject.name}-${project.name}") packageJsonFile.set(layout.projectDirectory.file("src/main/typescript/package.json")) } -tasks.assemble { dependsOn(fetchEventsSchema, tasks.updatePackageJson) } -//tasks.build { dependsOn(packageMod) } - +tasks.assemble { dependsOn(installEventsSchema, tasks.updatePackageJson) } // //idea { diff --git a/modules/events-mod/src/main/resources/mod-data/info.json b/modules/events-mod/src/main/resources/mod-data/info.json index b9244ca..68f245b 100644 --- a/modules/events-mod/src/main/resources/mod-data/info.json +++ b/modules/events-mod/src/main/resources/mod-data/info.json @@ -3,7 +3,7 @@ "version": "@project.version@", "title": "@mod.title@", "description": "@mod.description@", - "author": "fredthedeadhead", + "author": "@author.email@", "factorio_version": "@factorio.version@", "dependencies": [] } diff --git a/modules/events-mod/src/main/typescript/package-lock.json b/modules/events-mod/src/main/typescript/package-lock.json index 800094c..c83bfc6 100644 --- a/modules/events-mod/src/main/typescript/package-lock.json +++ b/modules/events-mod/src/main/typescript/package-lock.json @@ -1,6 +1,6 @@ { "name": "kafkatorio-events-mod", - "version": "0.1.0", + "version": "0.1.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/modules/events-mod/src/main/typescript/package.json b/modules/events-mod/src/main/typescript/package.json index bec800c..772d947 100644 --- a/modules/events-mod/src/main/typescript/package.json +++ b/modules/events-mod/src/main/typescript/package.json @@ -1,6 +1,6 @@ { "name": "kafkatorio-events-mod", - "version": "0.1.1", + "version": "0.1.2", "private": true, "scripts": { "build": "tstl", @@ -9,8 +9,7 @@ "engines": { "node": ">=10.13.0" }, - "devDependencies": { - }, + "devDependencies": {}, "dependencies": { "lua-types": "^2.11.0", "@types/node": "^12.0.8", @@ -21,10 +20,8 @@ "//": { "typed-factorio": "0.10.0" }, - "peerDependencies": { - }, - "optionalDependencies": { - }, - "bundledDependencies": [ - ] + "license": "UNLICENSED", + "peerDependencies": {}, + "optionalDependencies": {}, + "bundledDependencies": [] } diff --git a/modules/events-mod/src/main/typescript/schema/events-schema.ts b/modules/events-mod/src/main/typescript/schema/events-schema.ts index 4443f16..27a14dd 100644 --- a/modules/events-mod/src/main/typescript/schema/events-schema.ts +++ b/modules/events-mod/src/main/typescript/schema/events-schema.ts @@ -1,6 +1,4 @@ - -// Generated code - do edit this file manually - +// Generated by TypeScriptGenerator - do edit this file manually interface FactorioObjectData { object_name: string; } diff --git a/modules/events-schema/src/main/kotlin/dev/adamko/kafkatorio/events/schema/kt2ts.kt b/modules/events-schema/src/main/kotlin/dev/adamko/kafkatorio/events/schema/kt2ts.kt index c650bf6..d16ec4f 100644 --- a/modules/events-schema/src/main/kotlin/dev/adamko/kafkatorio/events/schema/kt2ts.kt +++ b/modules/events-schema/src/main/kotlin/dev/adamko/kafkatorio/events/schema/kt2ts.kt @@ -53,11 +53,9 @@ fun main(args: Array) { @Language("TypeScript") val header = """ - - // Generated code - do edit this file manually - - -""".trimIndent() + |// Generated by TypeScriptGenerator - do edit this file manually + | +""".trimMargin() object PropertyNameTransformer : ClassTransformer { override fun transformPropertyName( diff --git a/modules/web-map/.gettext.json b/modules/web-map/.gettext.json new file mode 100644 index 0000000..796d539 --- /dev/null +++ b/modules/web-map/.gettext.json @@ -0,0 +1,39 @@ +{ + "js": { + "parsers": [ + { + "expression": "tr", + "arguments": { + "text": 0 + } + }, + { + "expression": "ntr", + "arguments": { + "text": 0, + "textPlural": 1 + } + }, + { + "expression": "gettext", + "arguments": { + "text": 0 + } + }, + { + "expression": "ngettext", + "arguments": { + "text": 0, + "textPlural": 1 + } + } + ], + "glob": { + "pattern": "src/**/*.kt" + } + }, + "headers": { + "Language": "" + }, + "output": "src/main/resources/i18n/messages.pot" +} diff --git a/modules/web-map/.gitignore b/modules/web-map/.gitignore new file mode 100644 index 0000000..b1959ee --- /dev/null +++ b/modules/web-map/.gitignore @@ -0,0 +1,8 @@ +.*/ +build/ +out/ +/refresh.sh +*.imp +*.ipr +*.iws +*.idea diff --git a/modules/web-map/build.gradle.kts b/modules/web-map/build.gradle.kts new file mode 100644 index 0000000..56e7897 --- /dev/null +++ b/modules/web-map/build.gradle.kts @@ -0,0 +1,72 @@ +import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig + +plugins { + id("dev.adamko.kafkatorio.base") + kotlin("plugin.serialization") + kotlin("js") // version kotlinVersion + id("io.kvision") version "5.6.1" +} + +kotlin { + js(IR) { + browser { + runTask { + outputFileName = "main.bundle.js" + sourceMaps = false + devServer = KotlinWebpackConfig.DevServer( + open = false, + port = 3000, + proxy = mutableMapOf( + "/kv/*" to "http://localhost:8080", + "/kvws/*" to mapOf("target" to "ws://localhost:8080", "ws" to true) + ), + static = mutableListOf("$buildDir/processedResources/js/main") + ) + } + webpackTask { + outputFileName = "main.bundle.js" + } + testTask { + useKarma { + useChromeHeadless() + } + } + } + binaries.executable() + } + + sourceSets { + val kvisionVersion: String = libs.versions.kvision.get() + + main { + dependencies { + + implementation("org.jetbrains.kotlinx:kotlinx-nodejs:0.0.7") + + implementation("io.kvision:kvision:$kvisionVersion") + implementation("io.kvision:kvision-bootstrap:$kvisionVersion") + implementation("io.kvision:kvision-bootstrap-css:$kvisionVersion") + implementation("io.kvision:kvision-bootstrap-icons:$kvisionVersion") + implementation("io.kvision:kvision-fontawesome:$kvisionVersion") + implementation("io.kvision:kvision-state:$kvisionVersion") + implementation("io.kvision:kvision-chart:$kvisionVersion") + + val kotlinWrappersVersion = "0.0.1-pre.270-kotlin-1.6.0" + implementation( + project.dependencies.enforcedPlatform( + "org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom:${kotlinWrappersVersion}" + ) + ) + } + + val webDir = file("src/main/web") + resources.srcDir(webDir) + } + test { + dependencies { + implementation(kotlin("test-js")) + implementation("io.kvision:kvision-testutils:$kvisionVersion") + } + } + } +} diff --git a/modules/web-map/src/main/kotlin/dev/adamko/kafkatorio/webmap/App.kt b/modules/web-map/src/main/kotlin/dev/adamko/kafkatorio/webmap/App.kt new file mode 100644 index 0000000..0e6bcce --- /dev/null +++ b/modules/web-map/src/main/kotlin/dev/adamko/kafkatorio/webmap/App.kt @@ -0,0 +1,34 @@ +package dev.adamko.kafkatorio.webmap + +import io.kvision.Application +import io.kvision.CoreModule +import io.kvision.BootstrapModule +import io.kvision.BootstrapCssModule +import io.kvision.BootstrapIconsModule +import io.kvision.FontAwesomeModule +import io.kvision.ChartModule +import io.kvision.html.div +import io.kvision.module +import io.kvision.panel.root +import io.kvision.startApplication + +class App : Application() { + override fun start() { + root("kvapp") { + div("Hello world") + } + } +} + +fun main() { + startApplication( + ::App, + module.hot, + BootstrapModule, + BootstrapCssModule, + BootstrapIconsModule, + FontAwesomeModule, + ChartModule, + CoreModule + ) +} diff --git a/modules/web-map/src/main/web/index.html b/modules/web-map/src/main/web/index.html new file mode 100644 index 0000000..f7c610c --- /dev/null +++ b/modules/web-map/src/main/web/index.html @@ -0,0 +1,12 @@ + + + + + + KVision Template + + + +
+ + diff --git a/modules/web-map/src/test/kotlin/test/dev/adamko/kafkatorio/webmap/AppSpec.kt b/modules/web-map/src/test/kotlin/test/dev/adamko/kafkatorio/webmap/AppSpec.kt new file mode 100644 index 0000000..cce7cab --- /dev/null +++ b/modules/web-map/src/test/kotlin/test/dev/adamko/kafkatorio/webmap/AppSpec.kt @@ -0,0 +1,15 @@ +package test.dev.adamko.kafkatorio.webmap + +import io.kvision.test.SimpleSpec +import kotlin.test.Test +import kotlin.test.assertTrue + +class AppSpec : SimpleSpec { + + @Test + fun render() { + run { + assertTrue(true, "Dummy test") + } + } +} diff --git a/modules/web-map/webpack.config.d/bootstrap.js b/modules/web-map/webpack.config.d/bootstrap.js new file mode 100644 index 0000000..c9ac06d --- /dev/null +++ b/modules/web-map/webpack.config.d/bootstrap.js @@ -0,0 +1,3 @@ +config.module.rules.push({test: /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/, type: 'asset'}); +config.module.rules.push({test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, type: 'asset'}); +config.module.rules.push({test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, type: 'asset/resource'}); diff --git a/modules/web-map/webpack.config.d/css.js b/modules/web-map/webpack.config.d/css.js new file mode 100644 index 0000000..3ed3ebc --- /dev/null +++ b/modules/web-map/webpack.config.d/css.js @@ -0,0 +1,2 @@ +config.module.rules.push({ test: /\.css$/, use: ["style-loader", { loader: "css-loader", options: {sourceMap: false} } ] }); + diff --git a/modules/web-map/webpack.config.d/file.js b/modules/web-map/webpack.config.d/file.js new file mode 100644 index 0000000..aa64925 --- /dev/null +++ b/modules/web-map/webpack.config.d/file.js @@ -0,0 +1,6 @@ +config.module.rules.push( + { + test: /\.(jpe?g|png|gif|svg)$/i, + type: 'asset/resource' + } +); diff --git a/modules/web-map/webpack.config.d/handlebars.js b/modules/web-map/webpack.config.d/handlebars.js new file mode 100644 index 0000000..d17c90e --- /dev/null +++ b/modules/web-map/webpack.config.d/handlebars.js @@ -0,0 +1,6 @@ +config.module.rules.push( + { + test: /\.hbs$/i, + loader: 'handlebars-loader' + } +); diff --git a/modules/web-map/webpack.config.d/jquery.js b/modules/web-map/webpack.config.d/jquery.js new file mode 100644 index 0000000..e6c6b21 --- /dev/null +++ b/modules/web-map/webpack.config.d/jquery.js @@ -0,0 +1,9 @@ +;(function() { + const webpack = require('webpack') + + config.plugins.push(new webpack.ProvidePlugin({ + $: "jquery", + jQuery: "jquery", + "window.jQuery": "jquery" + })); +})(); diff --git a/modules/web-map/webpack.config.d/moment.js b/modules/web-map/webpack.config.d/moment.js new file mode 100644 index 0000000..1dac35c --- /dev/null +++ b/modules/web-map/webpack.config.d/moment.js @@ -0,0 +1,15 @@ +;(function() { + const webpack = require('webpack') + try { + const moment = require("moment"); + config.plugins.push(new webpack.IgnorePlugin({ + resourceRegExp: /^\.\/locale$/, + contextRegExp: /moment$/, + })); + config.plugins.push(new webpack.ProvidePlugin({ + moment: "moment", + "window.moment": "moment" + })); + } catch (e) { + } +})(); diff --git a/modules/web-map/webpack.config.d/webpack.js b/modules/web-map/webpack.config.d/webpack.js new file mode 100644 index 0000000..4ce4481 --- /dev/null +++ b/modules/web-map/webpack.config.d/webpack.js @@ -0,0 +1,15 @@ +config.resolve.modules.push("../../processedResources/js/main"); + +if (config.devServer) { + config.devServer.hot = true; + config.devtool = 'eval-cheap-source-map'; +} else { + config.devtool = undefined; +} + +// disable bundle size warning +config.performance = { + assetFilter: function (assetFilename) { + return !assetFilename.endsWith('.js'); + }, +}; diff --git a/settings.gradle.kts b/settings.gradle.kts index 5c78149..22060ee 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -12,6 +12,7 @@ include( ":modules:infra-kafka-pipe", ":modules:kt-rcon", + ":modules:web-map", ) enableFeaturePreview("VERSION_CATALOGS")