diff --git a/packages/netlify-cms-core/src/formats/frontmatter.ts b/packages/netlify-cms-core/src/formats/frontmatter.ts
index 5a733164..6b6a4f45 100644
--- a/packages/netlify-cms-core/src/formats/frontmatter.ts
+++ b/packages/netlify-cms-core/src/formats/frontmatter.ts
@@ -3,11 +3,13 @@ import tomlFormatter from './toml';
 import yamlFormatter from './yaml';
 import jsonFormatter from './json';
 
-enum Language {
-  YAML = 'yaml',
-  TOML = 'toml',
-  JSON = 'json',
-}
+const Languages = {
+  YAML: 'yaml',
+  TOML: 'toml',
+  JSON: 'json',
+} as const;
+
+type Language = typeof Languages[keyof typeof Languages];
 
 export type Delimiter = string | [string, string];
 type Format = { language: Language; delimiters: Delimiter };
@@ -58,11 +60,11 @@ function inferFrontmatterFormat(str: string) {
   }
   switch (firstLine) {
     case '---':
-      return getFormatOpts(Language.YAML);
+      return getFormatOpts(Languages.YAML);
     case '+++':
-      return getFormatOpts(Language.TOML);
+      return getFormatOpts(Languages.TOML);
     case '{':
-      return getFormatOpts(Language.JSON);
+      return getFormatOpts(Languages.JSON);
     default:
       console.warn('Unrecognized front-matter format.');
   }
@@ -74,9 +76,9 @@ export function getFormatOpts(format?: Language, customDelimiter?: Delimiter) {
   }
 
   const formats: { [key in Language]: Format } = {
-    yaml: { language: Language.YAML, delimiters: '---' },
-    toml: { language: Language.TOML, delimiters: '+++' },
-    json: { language: Language.JSON, delimiters: ['{', '}'] },
+    yaml: { language: Languages.YAML, delimiters: '---' },
+    toml: { language: Languages.TOML, delimiters: '+++' },
+    json: { language: Languages.JSON, delimiters: ['{', '}'] },
   };
 
   const { language, delimiters } = formats[format];
@@ -113,7 +115,7 @@ export class FrontmatterFormatter {
     const { body = '', ...meta } = data;
 
     // Stringify to YAML if the format was not set
-    const format = this.format || getFormatOpts(Language.YAML);
+    const format = this.format || getFormatOpts(Languages.YAML);
 
     // gray-matter always adds a line break at the end which trips our
     // change detection logic
@@ -134,13 +136,13 @@ export class FrontmatterFormatter {
 export const FrontmatterInfer = new FrontmatterFormatter();
 
 export function frontmatterYAML(customDelimiter?: Delimiter) {
-  return new FrontmatterFormatter(Language.YAML, customDelimiter);
+  return new FrontmatterFormatter(Languages.YAML, customDelimiter);
 }
 
 export function frontmatterTOML(customDelimiter?: Delimiter) {
-  return new FrontmatterFormatter(Language.TOML, customDelimiter);
+  return new FrontmatterFormatter(Languages.TOML, customDelimiter);
 }
 
 export function frontmatterJSON(customDelimiter?: Delimiter) {
-  return new FrontmatterFormatter(Language.JSON, customDelimiter);
+  return new FrontmatterFormatter(Languages.JSON, customDelimiter);
 }