Add OMS WMS ERP platform
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

This commit is contained in:
2026-07-27 00:45:39 +09:00
parent 15dc3685df
commit b34b0dd7d6
163 changed files with 32596 additions and 0 deletions
@@ -0,0 +1,95 @@
#!/usr/bin/env node
import fs from 'fs'
import path from 'path'
const componentName = process.argv[2]
const componentDir = `src/components/primitives/${componentName}`
if (!componentName) {
console.error('Usage: node scripts/generate-primitive.mjs ComponentName')
process.exit(1)
}
// Create directory
if (!fs.existsSync(componentDir)) {
fs.mkdirSync(componentDir, { recursive: true })
console.log(`✓ Created directory: ${componentDir}`)
}
// Create Vue component
const vueTemplate = `<template>
<div class="component-root">
<slot />
</div>
</template>
<script setup lang="ts">
interface Props {
// Add props here
}
withDefaults(defineProps<Props>(), {})
defineEmits<{
// Add emits here
}>()
</script>
<style scoped>
.component-root {
/* Add styles here */
}
</style>
`
const vueFile = path.join(componentDir, `${componentName}.vue`)
if (!fs.existsSync(vueFile)) {
fs.writeFileSync(vueFile, vueTemplate)
console.log(`✓ Created: ${vueFile}`)
}
// Create Storybook stories
const storiesTemplate = `import type { Meta, StoryObj } from '@storybook/vue3'
import ${componentName} from './${componentName}.vue'
const meta = {
title: 'Primitives/${componentName}',
component: ${componentName},
tags: ['autodocs']
} satisfies Meta<typeof ${componentName}>
export default meta
type Story = StoryObj<typeof meta>
export const Default: Story = {
args: {}
}
`
const storiesFile = path.join(componentDir, `${componentName}.stories.ts`)
if (!fs.existsSync(storiesFile)) {
fs.writeFileSync(storiesFile, storiesTemplate)
console.log(`✓ Created: ${storiesFile}`)
}
// Create unit tests
const specTemplate = `import { describe, it, expect } from 'vitest'
import { mount } from '@vue/test-utils'
import ${componentName} from './${componentName}.vue'
describe('${componentName}', () => {
it('renders', () => {
const wrapper = mount(${componentName})
expect(wrapper.exists()).toBe(true)
})
})
`
const specFile = path.join(componentDir, `${componentName}.spec.ts`)
if (!fs.existsSync(specFile)) {
fs.writeFileSync(specFile, specTemplate)
console.log(`✓ Created: ${specFile}`)
}
console.log(`✓ Component "${componentName}" generated successfully!`)
+164
View File
@@ -0,0 +1,164 @@
#!/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}`)
}