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
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:
@@ -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!`)
|
||||
Reference in New Issue
Block a user