// Low-Level Schemas
//-----------------------------------------------------------------------------
-
-/** @type {ObjectPropertySchema} */
-const numberSchema = {
- merge: "replace",
- validate: "number"
-};
-
/** @type {ObjectPropertySchema} */
const booleanSchema = {
merge: "replace",
}
};
+/** @type {ObjectPropertySchema} */
+const ecmaVersionSchema = {
+ merge: "replace",
+ validate(value) {
+ if (typeof value === "number" || value === "latest") {
+ return;
+ }
+
+ throw new TypeError("Expected a number or \"latest\".");
+ }
+};
+
/** @type {ObjectPropertySchema} */
const sourceTypeSchema = {
merge: "replace",
},
languageOptions: {
schema: {
- ecmaVersion: numberSchema,
+ ecmaVersion: ecmaVersionSchema,
sourceType: sourceTypeSchema,
globals: globalsSchema,
parser: parserSchema,