Skip to content

Commit 56bc368

Browse files
authored
FIX: Language.name is now enumerable (#122)
closes #122
1 parent d1db2b5 commit 56bc368

2 files changed

Lines changed: 22 additions & 13 deletions

File tree

src/models/Language.js

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,15 @@ import MultiLangString from './MultiLangString.js';
44
/**
55
* A class representing a language, formatted according to the [DLx Data Format for a language]{@link https://format.digitallinguistics.io/schemas/Language.html}
66
* @memberof models
7-
* @extends Model
7+
* @extends core.Model
88
*/
99
class Language extends Model {
1010

11+
/**
12+
* The name of this language, as a [MultiLangString]{@link models.MultiLangString}
13+
* @name models.Language#name
14+
* @type {Map}
15+
*/
1116
#name;
1217

1318
/**
@@ -18,20 +23,19 @@ class Language extends Model {
1823

1924
super(data);
2025

21-
this.name = new MultiLangString(data.name);
22-
23-
}
26+
this.#name = new MultiLangString(data.name);
2427

25-
/**
26-
* The name of this language, as a [MultiLangString]{@link models.MultiLangString}
27-
* @type {Map}
28-
*/
29-
get name() {
30-
return this.#name;
31-
}
28+
Object.defineProperty(this, `name`, {
29+
configurable: true,
30+
enumerable: true,
31+
get() {
32+
return this.#name;
33+
},
34+
set(val) {
35+
this.#name = new MultiLangString(val);
36+
},
37+
});
3238

33-
set name(val) {
34-
this.#name = new MultiLangString(val);
3539
}
3640

3741
}

src/models/Language.test.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ describe(`Language`, () => {
2222
expect(lang.name).toBeInstanceOf(MultiLangString);
2323
});
2424

25+
it(`enumerable`, () => {
26+
const lang = new Language({ name: 'Chitimacha' });
27+
expect(Object.keys(lang)).toContain(`name`);
28+
});
29+
2530
it(`Success: String`, () => {
2631

2732
const name = `Chitimacha`;

0 commit comments

Comments
 (0)