diff --git a/src/models/Language.js b/src/models/Language.js index 682deb3..047da59 100644 --- a/src/models/Language.js +++ b/src/models/Language.js @@ -4,10 +4,15 @@ import MultiLangString from './MultiLangString.js'; /** * A class representing a language, formatted according to the [DLx Data Format for a language]{@link https://format.digitallinguistics.io/schemas/Language.html} * @memberof models - * @extends Model + * @extends core.Model */ class Language extends Model { + /** + * The name of this language, as a [MultiLangString]{@link models.MultiLangString} + * @name models.Language#name + * @type {Map} + */ #name; /** @@ -18,20 +23,19 @@ class Language extends Model { super(data); - this.name = new MultiLangString(data.name); - - } + this.#name = new MultiLangString(data.name); - /** - * The name of this language, as a [MultiLangString]{@link models.MultiLangString} - * @type {Map} - */ - get name() { - return this.#name; - } + Object.defineProperty(this, `name`, { + configurable: true, + enumerable: true, + get() { + return this.#name; + }, + set(val) { + this.#name = new MultiLangString(val); + }, + }); - set name(val) { - this.#name = new MultiLangString(val); } } diff --git a/src/models/Language.test.js b/src/models/Language.test.js index 1f2103b..f267086 100644 --- a/src/models/Language.test.js +++ b/src/models/Language.test.js @@ -22,6 +22,11 @@ describe(`Language`, () => { expect(lang.name).toBeInstanceOf(MultiLangString); }); + it(`enumerable`, () => { + const lang = new Language({ name: 'Chitimacha' }); + expect(Object.keys(lang)).toContain(`name`); + }); + it(`Success: String`, () => { const name = `Chitimacha`;