TsSimpleAst

Enums

Enums can be retrieved from source files, namespaces, or function bodies:

const enums = sourceFile.getEnums();
const enum1 = sourceFile.getEnum("Enum1");
const enum2 = sourceFile.getEnum(e => e.getMembers().length === 5);

Adding

You can add enums to a source file or namespace by calling addEnum():

const enumDeclaration = sourceFile.addEnum({
    name: "EnumName",
    members: [{
        name: "member"
    }]
});

Add member

Members can be added by calling addMember():

const member = enumDeclaration.addMember({
    name: "newMember",
    value: 10
});

Get all members

Use getMembers():

const members = enumDeclaration.getMembers();

Get member

Use getMember():

const member1 = enumDeclaration.getMember("member1");
const member2 = enumDeclaration.getMember(m => m.getValue() === 1);

Const enum

Check if it’s a const enum via isConstEnum():

enumDeclaration.isConstEnum(); // returns: boolean

Get the const keyword via getConstKeyword():

enumDeclaration.getConstKeyword(); // returns: Node | undefined

Set if it’s a const enum via setIsConstEnum(value):

enumDeclaration.setIsConstEnum(true);
enumDeclaration.setIsConstEnum(false);

Enum Members

const member = enumDeclaration.getMember("member");

Get the value

The value can be retrieved whether it is implicitly or explicitly defined:

member.getValue(); // returns: number

Following comma

Enum members may have a comma after them. You can check for that via:

member.hasFollowingComma(); // returns: boolean

And get it via:

member.getFollowingComma(); // returns: node | undefined

Remove a Member

Call remove() on it:

member.remove();