8000 fix: prevent duplicated component name by lumtis · Pull Request #850 · ignite/cli · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

fix: prevent duplicated component name #850

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Mar 15, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions starport/services/scaffolder/component.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,26 @@ import (
"path/filepath"
)

// isComponentCreated checks if the component has been already created with Starport in the project
func isComponentCreated(appPath, moduleName, compName string) (bool, error) {
// Check for type, packet or message creation
created, err := isTypeCreated(appPath, moduleName, compName)
if err != nil {
return false, err
}
if created {
return created, nil
}
created, err = isPacketCreated(appPath, moduleName, compName)
if err != nil {
return false, err
}
if created {
return created, nil
}
return isMsgCreated(appPath, moduleName, compName)
}

// isMsgServerDefined checks if the module uses the MsgServer convention for transactions
// this is checked by verifying the existence of the tx.proto file
func isMsgServerDefined(appPath, moduleName string) (bool, error) {
Expand Down
10 changes: 5 additions & 5 deletions starport/services/scaffolder/message.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,16 @@ func (s *Scaffolder) AddMessage(moduleName string, msgName string, msgDesc strin

// Ensure the name is valid, otherwise it would generate an incorrect code
if isForbiddenComponentName(msgName) {
return fmt.Errorf("%s can't be used as a packet name", msgName)
return fmt.Errorf("%s can't be used as a message name", msgName)
}

// Check msg is not already created
ok, err = isMsgCreated(s.path, moduleName, msgName)
// Check component name is not already used
ok, err = isComponentCreated(s.path, moduleName, msgName)
if err != nil {
return err
}
if ok {
return fmt.Errorf("%s message is already added", msgName)
return fmt.Errorf("%s component is already added", msgName)
}

// Parse provided fields
Expand Down Expand Up @@ -124,7 +124,7 @@ func isMsgCreated(appPath, moduleName, msgName string) (isCreated bool, err erro

_, err = os.Stat(absPath)
if os.IsNotExist(err) {
// Packet doesn't exist
// Message doesn't exist
return false, nil
}

Expand Down
6 changes: 3 additions & 3 deletions starport/services/scaffolder/packet.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,13 @@ func (s *Scaffolder) AddPacket(moduleName string, packetName string, packetField
return fmt.Errorf("%s can't be used as a packet name", packetName)
}

// Check packet doesn't exist
ok, err = isPacketCreated(s.path, moduleName, packetName)
// Check component name is not already used
ok, err = isComponentCreated(s.path, moduleName, packetName)
if err != nil {
return err
}
if ok {
return fmt.Errorf("the packet %s already exist", packetName)
return fmt.Errorf("the component %s already exist", packetName)
}

// Parse packet fields
Expand Down
A0A4
6 changes: 3 additions & 3 deletions starport/services/scaffolder/type.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,13 @@ func (s *Scaffolder) AddType(addTypeOptions AddTypeOption, moduleName string, ty
return fmt.Errorf("%s can't be used as a type name", typeName)
}

// Check type is not already created
ok, err = isTypeCreated(s.path, moduleName, typeName)
// Check component name is not already used
ok, err = isComponentCreated(s.path, moduleName, typeName)
if err != nil {
return err
}
if ok {
return fmt.Errorf("%s type is already added", typeName)
return fmt.Errorf("%s component is already added", typeName)
}

// Parse provided field
Expand Down
0