eslint-plugin-import:
specifier: ^2.29.1
version: 2.29.1(@typescript-eslint/parser@7.1.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
+ eslint-plugin-simple-import-sort:
+ specifier: ^12.0.0
+ version: 12.0.0(eslint@8.57.0)
eslint-plugin-vue:
specifier: ^9.22.0
version: 9.22.0(eslint@8.57.0)
eslint: 8.57.0
dev: true
+ /eslint-plugin-simple-import-sort@12.0.0(eslint@8.57.0):
+ resolution: {integrity: sha512-8o0dVEdAkYap0Cn5kNeklaKcT1nUsa3LITWEuFk3nJifOoD+5JQGoyDUW2W/iPWwBsNBJpyJS9y4je/BgxLcyQ==}
+ peerDependencies:
+ eslint: '>=5.0.0'
+ dependencies:
+ eslint: 8.57.0
+ dev: true
+
/eslint-plugin-tsdoc@0.2.17:
resolution: {integrity: sha512-xRmVi7Zx44lOBuYqG8vzTXuL6IdGOeF9nHX17bjJ8+VE6fsxpdGem0/SBTmAwgYMKYB1WBkqRJVQ+n8GK041pA==}
dependencies:
node: true
},
- plugins: ['import'],
+ plugins: ['simple-import-sort', 'import'],
extends: [
'eslint:recommended',
'plugin:import/recommended',
+ 'plugin:import/typescript',
'plugin:vue/vue3-recommended',
'@vue/eslint-config-typescript/recommended',
'@vue/eslint-config-prettier'
},
parserOptions: {
+ sourceType: 'module',
ecmaVersion: 'latest'
},
rules: {
'no-console': env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': env.NODE_ENV === 'production' ? 'warn' : 'off',
- 'vue/require-v-for-key': 'off',
- 'vue/multi-word-component-names': 'off',
- 'sort-imports': [
- 'error',
- {
- ignoreDeclarationSort: true
- }
- ],
- 'import/order': 'error'
+ 'simple-import-sort/imports': 'error',
+ 'simple-import-sort/exports': 'error',
+ 'vue/multi-word-component-names': 'off'
}
})
"eslint-define-config": "^2.1.0",
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-import": "^2.29.1",
+ "eslint-plugin-simple-import-sort": "^12.0.0",
"eslint-plugin-vue": "^9.22.0",
"jsdom": "^24.0.0",
"prettier": "^3.2.5",
<option
v-for="template in $templates.value"
v-show="Array.isArray($templates.value) && $templates.value.length > 0"
+ :key="template"
>
{{ template }}
</option>
<script setup lang="ts">
import { getCurrentInstance, ref, watch } from 'vue'
+
import Button from '@/components/buttons/Button.vue'
import { convertToBoolean, randomUUID } from '@/composables'
<script setup lang="ts">
import { ref } from 'vue'
+
import Button from '@/components/buttons/Button.vue'
defineProps<{
<script setup lang="ts">
import { ref } from 'vue'
+
import Button from '@/components/buttons/Button.vue'
import { convertToInt } from '@/composables'
<script setup lang="ts">
import { ref } from 'vue'
+
import Button from '@/components/buttons/Button.vue'
import { getFromLocalStorage, setToLocalStorage } from '@/composables'
<script setup lang="ts">
import { useToast } from 'vue-toast-notification'
+
import Button from '@/components/buttons/Button.vue'
-import type { ConnectorStatus, Status } from '@/types'
import ToggleButton from '@/components/buttons/ToggleButton.vue'
import { useUIClient } from '@/composables'
+import type { ConnectorStatus, Status } from '@/types'
const props = defineProps<{
hashId: string
</tr>
</thead>
<tbody id="connectors-table__body">
- <!-- eslint-disable-next-line vue/valid-v-for -->
<CSConnector
v-for="(connector, index) in getConnectorStatuses()"
+ :key="index + 1"
:hash-id="chargingStation.stationInfo.hashId"
:charging-station-id="chargingStation.stationInfo.chargingStationId"
:connector-id="index + 1"
<script setup lang="ts">
import { useToast } from 'vue-toast-notification'
-import CSConnector from '@/components/charging-stations/CSConnector.vue'
+
import Button from '@/components/buttons/Button.vue'
-import type { ChargingStationData, ConnectorStatus, Status } from '@/types'
import ToggleButton from '@/components/buttons/ToggleButton.vue'
+import CSConnector from '@/components/charging-stations/CSConnector.vue'
import { useUIClient } from '@/composables'
+import type { ChargingStationData, ConnectorStatus, Status } from '@/types'
const props = defineProps<{
chargingStation: ChargingStationData
import { useToast } from 'vue-toast-notification'
-import { randomUUID } from './Utils'
+
import {
ApplicationProtocol,
AuthenticationType,
type UIServerConfigurationSection
} from '@/types'
+import { randomUUID } from './Utils'
+
type ResponseHandler = {
procedureName: ProcedureName
resolve: (value: ResponsePayload | PromiseLike<ResponsePayload>) => void
+import 'vue-toast-notification/dist/theme-bootstrap.css'
+
import { type App as AppType, createApp, ref } from 'vue'
import ToastPlugin from 'vue-toast-notification'
-import type { ChargingStationData, ConfigurationData, UIServerConfigurationSection } from '@/types'
-import { router } from '@/router'
-import { UIClient, getFromLocalStorage, setToLocalStorage } from '@/composables'
+
import App from '@/App.vue'
-import 'vue-toast-notification/dist/theme-bootstrap.css'
+import { getFromLocalStorage, setToLocalStorage, UIClient } from '@/composables'
+import { router } from '@/router'
+import type { ChargingStationData, ConfigurationData, UIServerConfigurationSection } from '@/types'
const app = createApp(App)
import { createRouter, createWebHistory } from 'vue-router'
-import ChargingStationsView from '@/views/ChargingStationsView.vue'
-import StartTransaction from '@/components/actions/StartTransaction.vue'
+
import AddChargingStations from '@/components/actions/AddChargingStations.vue'
import SetSupervisionUrl from '@/components/actions/SetSupervisionUrl.vue'
+import StartTransaction from '@/components/actions/StartTransaction.vue'
+import ChargingStationsView from '@/views/ChargingStationsView.vue'
import NotFoundView from '@/views/NotFoundView.vue'
export const router = createRouter({
>
<option
v-for="uiServerConfiguration in uiServerConfigurations"
+ :key="uiServerConfiguration.index"
:value="uiServerConfiguration.index"
>
{{
<script setup lang="ts">
import { computed, getCurrentInstance, onMounted, onUnmounted, ref, watch } from 'vue'
import { useToast } from 'vue-toast-notification'
+
+import ReloadButton from '@/components/buttons/ReloadButton.vue'
+import ToggleButton from '@/components/buttons/ToggleButton.vue'
import CSTable from '@/components/charging-stations/CSTable.vue'
-import type {
- ChargingStationData,
- ResponsePayload,
- SimulatorState,
- UIServerConfigurationSection
-} from '@/types'
import Container from '@/components/Container.vue'
-import ReloadButton from '@/components/buttons/ReloadButton.vue'
import {
deleteFromLocalStorage,
getFromLocalStorage,
setToLocalStorage,
useUIClient
} from '@/composables'
-import ToggleButton from '@/components/buttons/ToggleButton.vue'
+import type {
+ ChargingStationData,
+ ResponsePayload,
+ SimulatorState,
+ UIServerConfigurationSection
+} from '@/types'
const simulatorState = ref<SimulatorState | undefined>(undefined)
import { dirname, join } from 'node:path'
import { env } from 'node:process'
import { fileURLToPath } from 'node:url'
+
import finalhandler from 'finalhandler'
import serveStatic from 'serve-static'
-import { expect, test } from 'vitest'
import { shallowMount } from '@vue/test-utils'
+import { expect, test } from 'vitest'
+
import CSTable from '@/components/charging-stations/CSTable.vue'
import type { ChargingStationData } from '@/types'
-import { URL, fileURLToPath } from 'node:url'
-import { defineConfig } from 'vite'
+import { fileURLToPath, URL } from 'node:url'
+
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
+import { defineConfig } from 'vite'
export default defineConfig({
plugins: [vue(), vueJsx()],
import { fileURLToPath } from 'node:url'
-import { configDefaults, defineConfig } from 'vitest/config'
+
import { mergeConfig } from 'vite'
+import { configDefaults, defineConfig } from 'vitest/config'
+
import viteConfig from './vite.config'
export default mergeConfig(