Files
QuantEngineByItz/oms-wms-erp/scripts/generate-store.mjs
T
kjh2064 b34b0dd7d6
Validators (Pushes and Pull Requests) / UI & Storage Validation (pull_request) Failing after 12s
Validators (Pushes and Pull Requests) / Database & Schema Validation (pull_request) Successful in 13s
Validators (Pushes and Pull Requests) / Core Validators & Database Setup (pull_request) Failing after 28s
Validators (Pushes and Pull Requests) / WBS & Audit Validations (pull_request) Has been skipped
Validators (Pushes and Pull Requests) / .NET Contracts (pull_request) Has been skipped
Validators (Pushes and Pull Requests) / Calibration & Performance (pull_request) Has been skipped
Validators (Pushes and Pull Requests) / Operational Report & Decision Packet (pull_request) Has been skipped
Validators (Pushes and Pull Requests) / CI Workflow Lint (pull_request) Failing after 10s
Validators (Pushes and Pull Requests) / Security & Secrets (pull_request) Successful in 12s
Validators (Pushes and Pull Requests) / Notify PR Results (pull_request) Successful in 2s
Frontend CI Pipeline / ci-frontend-8-steps (pull_request) Failing after 2m50s
Add OMS WMS ERP platform
2026-07-27 00:45:39 +09:00

165 lines
4.1 KiB
JavaScript

#!/usr/bin/env node
import fs from 'fs'
import path from 'path'
const storeName = process.argv[2]
const storeType = process.argv[3] || 'default'
if (!storeName) {
console.error('Usage: node scripts/generate-store.mjs StoreName [type]')
process.exit(1)
}
const storeDir = `src/stores/modules`
const fileName = `${storeName.charAt(0).toLowerCase()}${storeName.slice(1)}.ts`
if (!fs.existsSync(storeDir)) {
fs.mkdirSync(storeDir, { recursive: true })
}
// Store templates by type
const templates = {
default: `/**
* Pinia Store: ${storeName}
* State management for ${storeName.toLowerCase()}-related data
*/
import { defineStore } from 'pinia'
import { ref, computed } from 'vue'
export const use${storeName}Store = defineStore('${fileName.replace('.ts', '')}', () => {
// State
const items = ref<any[]>([])
const selectedItem = ref<any | null>(null)
const loading = ref(false)
const error = ref<string | null>(null)
const filters = ref<Record<string, any>>({})
// Computed
const itemCount = computed(() => items.value.length)
const filteredItems = computed(() => items.value)
// Actions
const fetchItems = async (limit = 100, offset = 0) => {
loading.value = true
error.value = null
try {
// TODO: Call API endpoint
// const response = await ${fileName.replace('.ts', '')}Api.list${storeName}({ limit, offset })
// items.value = response.data
} catch (err) {
error.value = (err as Error).message
} finally {
loading.value = false
}
}
const fetchItemById = async (itemId: string) => {
loading.value = true
error.value = null
try {
// TODO: Call API endpoint
// const response = await ${fileName.replace('.ts', '')}Api.get${storeName}(itemId)
// selectedItem.value = response.data
} catch (err) {
error.value = (err as Error).message
} finally {
loading.value = false
}
}
const createItem = async (payload: any) => {
loading.value = true
error.value = null
try {
// TODO: Call API endpoint
// const response = await ${fileName.replace('.ts', '')}Api.create${storeName}(payload)
// items.value.push(response.data)
// selectedItem.value = response.data
// return response.data
} catch (err) {
error.value = (err as Error).message
throw err
} finally {
loading.value = false
}
}
const updateItem = async (itemId: string, payload: any) => {
loading.value = true
error.value = null
try {
// TODO: Call API endpoint
// const response = await ${fileName.replace('.ts', '')}Api.update${storeName}(itemId, payload)
// const index = items.value.findIndex((i) => i.id === itemId)
// if (index !== -1) items.value[index] = response.data
// if (selectedItem.value?.id === itemId) selectedItem.value = response.data
// return response.data
} catch (err) {
error.value = (err as Error).message
throw err
} finally {
loading.value = false
}
}
const deleteItem = async (itemId: string) => {
loading.value = true
error.value = null
try {
// TODO: Call API endpoint
// await ${fileName.replace('.ts', '')}Api.delete${storeName}(itemId)
// items.value = items.value.filter((i) => i.id !== itemId)
// if (selectedItem.value?.id === itemId) selectedItem.value = null
} catch (err) {
error.value = (err as Error).message
throw err
} finally {
loading.value = false
}
}
const setFilter = (key: string, value: any) => {
filters.value[key] = value
}
const clearFilters = () => {
filters.value = {}
}
return {
// State
items,
selectedItem,
loading,
error,
filters,
// Computed
itemCount,
filteredItems,
// Actions
fetchItems,
fetchItemById,
createItem,
updateItem,
deleteItem,
setFilter,
clearFilters
}
})
`
}
const template = templates[storeType] || templates.default
const storeFile = path.join(storeDir, fileName)
if (!fs.existsSync(storeFile)) {
fs.writeFileSync(storeFile, template)
console.log(`✓ Created: ${storeFile}`)
} else {
console.log(`⚠ Already exists: ${storeFile}`)
}