fix(vue-generator): fix globalstate codegen error (#547)

This commit is contained in:
chilingling 2024-07-04 20:06:11 -07:00 committed by GitHub
parent 2c478ce391
commit 277be2f11e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 71 additions and 7 deletions

View File

@ -47,7 +47,7 @@
"fs-extra": "^10.0.1", "fs-extra": "^10.0.1",
"prettier": "^2.6.1", "prettier": "^2.6.1",
"vite": "^4.3.7", "vite": "^4.3.7",
"vite-plugin-static-copy": "^1.0.4", "vite-plugin-static-copy": "^0.16.0",
"vitest": "^1.4.0", "vitest": "^1.4.0",
"winston": "^3.10.0" "winston": "^3.10.0"
}, },

View File

@ -44,8 +44,8 @@ function genDependenciesPlugin(options = {}) {
.map((item) => { .map((item) => {
let [key, value] = item let [key, value] = item
if (value === '') { if (typeof value === 'string') {
value = "''" value = `'${value}'`
} }
if (value && typeof value === 'object') { if (value && typeof value === 'object') {
@ -57,19 +57,19 @@ function genDependenciesPlugin(options = {}) {
.join(',')} })` .join(',')} })`
const getterExpression = Object.entries(getters) const getterExpression = Object.entries(getters)
.filter((item) => item.value?.type === 'JSFunction') .filter((item) => item[1]?.type === 'JSFunction')
.map(([key, value]) => `${key}: ${value.value}`) .map(([key, value]) => `${key}: ${value.value}`)
.join(',') .join(',')
const actionExpressions = Object.entries(actions) const actionExpressions = Object.entries(actions)
.filter((item) => item.value?.type === 'JSFunction') .filter((item) => item[1]?.type === 'JSFunction')
.map(([key, value]) => `${key}: ${value.value}`) .map(([key, value]) => `${key}: ${value.value}`)
.join(',') .join(',')
const storeFiles = ` const storeFiles = `
${importStatement} ${importStatement}
export const ${id} = defineStore({ export const ${id} = defineStore({
id: ${id}, id: '${id}',
state: ${stateExpression}, state: ${stateExpression},
getters: { ${getterExpression} }, getters: { ${getterExpression} },
actions: { ${actionExpressions} } actions: { ${actionExpressions} }

View File

@ -0,0 +1 @@
export { testState } from './testState'

View File

@ -0,0 +1,27 @@
import { defineStore } from 'pinia'
export const testState = defineStore({
id: 'testState',
state: () => ({
name: 'testName',
license: '',
age: 18,
food: ['apple', 'orange', 'banana', 19],
desc: { description: 'hello world', money: 100, other: '', rest: ['a', 'b', 'c', 20] }
}),
getters: {
getAge: function getAge() {
return this.age
},
getName: function getName() {
return this.name
}
},
actions: {
setAge: function setAge(age) {
this.age = age
},
setName: function setName(name) {
this.name = name
}
}
})

View File

@ -676,7 +676,43 @@ export const appSchemaDemo01 = {
value: 'function dataHanlder(res){\n return res;\n}' value: 'function dataHanlder(res){\n return res;\n}'
} }
}, },
globalState: [], globalState: [
{
id: 'testState',
state: {
name: 'testName',
license: '',
age: 18,
food: ['apple', 'orange', 'banana', 19],
desc: {
description: 'hello world',
money: 100,
other: '',
rest: ['a', 'b', 'c', 20]
}
},
getters: {
getAge: {
type: 'JSFunction',
value: 'function getAge() {\n return this.age \n}'
},
getName: {
type: 'JSFunction',
value: 'function getName() {\n return this.name \n}'
}
},
actions: {
setAge: {
type: 'JSFunction',
value: 'function setAge(age) {\n this.age = age; \n}'
},
setName: {
type: 'JSFunction',
value: 'function setName(name) {\n this.name = name; \n}'
}
}
}
],
utils: [ utils: [
{ {
name: 'axios', name: 'axios',