Files
QuantEngineByItz/oms-wms-erp/scripts/generate-primitive.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

96 lines
2.2 KiB
JavaScript

#!/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!`)