Skip to content

Commit dac6e4b

Browse files
authored
fix: prevent duplicated component name (ignite#850)
* Component general file * iscomponentcreated * Small fix
1 parent cd5752a commit dac6e4b

File tree

4 files changed

+31
-11
lines changed

4 files changed

+31
-11
lines changed

starport/services/scaffolder/component.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,26 @@ import (
66
"path/filepath"
77
)
88

9+
// isComponentCreated checks if the component has been already created with Starport in the project
10+
func isComponentCreated(appPath, moduleName, compName string) (bool, error) {
11+
// Check for type, packet or message creation
12+
created, err := isTypeCreated(appPath, moduleName, compName)
13+
if err != nil {
14+
return false, err
15+
}
16+
if created {
17+
return created, nil
18+
}
19+
created, err = isPacketCreated(appPath, moduleName, compName)
20+
if err != nil {
21+
return false, err
22+
}
23+
if created {
24+
return created, nil
25+
}
26+
return isMsgCreated(appPath, moduleName, compName)
27+
}
28+
929
// isMsgServerDefined checks if the module uses the MsgServer convention for transactions
1030
// this is checked by verifying the existence of the tx.proto file
1131
func isMsgServerDefined(appPath, moduleName string) (bool, error) {

starport/services/scaffolder/message.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,16 @@ func (s *Scaffolder) AddMessage(moduleName string, msgName string, msgDesc strin
3939

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

45-
// Check msg is not already created
46-
ok, err = isMsgCreated(s.path, moduleName, msgName)
45+
// Check component name is not already used
46+
ok, err = isComponentCreated(s.path, moduleName, msgName)
4747
if err != nil {
4848
return err
4949
}
5050
if ok {
51-
return fmt.Errorf("%s message is already added", msgName)
51+
return fmt.Errorf("%s component is already added", msgName)
5252
}
5353

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

125125
_, err = os.Stat(absPath)
126126
if os.IsNotExist(err) {
127-
// Packet doesn't exist
127+
// Message doesn't exist
128128
return false, nil
129129
}
130130

starport/services/scaffolder/packet.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,13 @@ func (s *Scaffolder) AddPacket(moduleName string, packetName string, packetField
5959
return fmt.Errorf("%s can't be used as a packet name", packetName)
6060
}
6161

62-
// Check packet doesn't exist
63-
ok, err = isPacketCreated(s.path, moduleName, packetName)
62+
// Check component name is not already used
63+
ok, err = isComponentCreated(s.path, moduleName, packetName)
6464
if err != nil {
6565
return err
6666
}
6767
if ok {
68-
return fmt.Errorf("the packet %s already exist", packetName)
68+
return fmt.Errorf("the component %s already exist", packetName)
6969
}
7070

7171
// Parse packet fields

starport/services/scaffolder/type.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,13 @@ func (s *Scaffolder) AddType(addTypeOptions AddTypeOption, moduleName string, ty
5959
return fmt.Errorf("%s can't be used as a type name", typeName)
6060
}
6161

62-
// Check type is not already created
63-
ok, err = isTypeCreated(s.path, moduleName, typeName)
62+
// Check component name is not already used
63+
ok, err = isComponentCreated(s.path, moduleName, typeName)
6464
if err != nil {
6565
return err
6666
}
6767
if ok {
68-
return fmt.Errorf("%s type is already added", typeName)
68+
return fmt.Errorf("%s component is already added", typeName)
6969
}
7070

7171
// Parse provided field

0 commit comments

Comments
 (0)