ddex-json-codec 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +2 -1
- package/dist/index.mjs +34 -9
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -12,6 +12,7 @@ interface Title {
|
|
|
12
12
|
titleText: string;
|
|
13
13
|
subTitle?: string;
|
|
14
14
|
titleType?: string;
|
|
15
|
+
languageAndScriptCode?: string;
|
|
15
16
|
}
|
|
16
17
|
interface PLine {
|
|
17
18
|
year?: string;
|
|
@@ -54,7 +55,7 @@ interface ArtistRole {
|
|
|
54
55
|
interface Artist {
|
|
55
56
|
/** 解決済みのデフォルト名(3.8系: FullNameから直接取得、4系: PartyListの最初のFullName) */
|
|
56
57
|
name: string;
|
|
57
|
-
/** 4
|
|
58
|
+
/** 多言語名(4系: PartyListから取得、3.8系: 複数PartyNameから取得) */
|
|
58
59
|
names?: PartyName[];
|
|
59
60
|
/** 4系のみ: 元の参照ID(ラウンドトリップ用) */
|
|
60
61
|
partyReference?: string;
|
package/dist/index.mjs
CHANGED
|
@@ -427,13 +427,29 @@ var Ern38Converter = class {
|
|
|
427
427
|
if (!raw) return void 0;
|
|
428
428
|
const artists = ensureArray(raw);
|
|
429
429
|
if (artists.length === 0) return void 0;
|
|
430
|
-
return artists.map((a) =>
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
430
|
+
return artists.map((a) => {
|
|
431
|
+
const partyNames = ensureArray(a.PartyName);
|
|
432
|
+
const firstName = partyNames[0]?.FullName ?? "";
|
|
433
|
+
let names;
|
|
434
|
+
if (partyNames.length > 1) names = partyNames.map((pn) => ({
|
|
435
|
+
fullName: pn.FullName ?? "",
|
|
436
|
+
fullNameIndexed: pn.FullNameIndexed ?? void 0,
|
|
437
|
+
languageAndScriptCode: pn["@_LanguageAndScriptCode"] ?? void 0
|
|
438
|
+
}));
|
|
439
|
+
else if (partyNames.length === 1 && partyNames[0]["@_LanguageAndScriptCode"]) names = [{
|
|
440
|
+
fullName: firstName,
|
|
441
|
+
fullNameIndexed: partyNames[0].FullNameIndexed ?? void 0,
|
|
442
|
+
languageAndScriptCode: partyNames[0]["@_LanguageAndScriptCode"]
|
|
443
|
+
}];
|
|
444
|
+
return {
|
|
445
|
+
artist: {
|
|
446
|
+
name: firstName,
|
|
447
|
+
names,
|
|
448
|
+
roles: a.ArtistRole ? this.parseArtistRoles(a.ArtistRole) : void 0
|
|
449
|
+
},
|
|
450
|
+
sequenceNumber: a["@_SequenceNumber"] ? Number(a["@_SequenceNumber"]) : void 0
|
|
451
|
+
};
|
|
452
|
+
});
|
|
437
453
|
}
|
|
438
454
|
parseArtistRoles(raw) {
|
|
439
455
|
return ensureArray(raw).map((r) => {
|
|
@@ -488,7 +504,8 @@ var Ern38Converter = class {
|
|
|
488
504
|
return titles.map((t) => ({
|
|
489
505
|
titleText: t.TitleText ?? "",
|
|
490
506
|
subTitle: t.SubTitle && t.SubTitle !== "" ? t.SubTitle : void 0,
|
|
491
|
-
titleType: t["@_TitleType"] ?? void 0
|
|
507
|
+
titleType: t["@_TitleType"] ?? void 0,
|
|
508
|
+
languageAndScriptCode: t["@_LanguageAndScriptCode"] ?? void 0
|
|
492
509
|
}));
|
|
493
510
|
}
|
|
494
511
|
parsePLine(raw) {
|
|
@@ -1140,7 +1157,14 @@ var Ern38Builder = class {
|
|
|
1140
1157
|
buildDisplayArtist(da) {
|
|
1141
1158
|
const result = {};
|
|
1142
1159
|
if (da.sequenceNumber != null) result["@_SequenceNumber"] = String(da.sequenceNumber);
|
|
1143
|
-
result.PartyName =
|
|
1160
|
+
if (da.artist.names?.length) result.PartyName = da.artist.names.map((pn) => {
|
|
1161
|
+
const r = {};
|
|
1162
|
+
if (pn.languageAndScriptCode) r["@_LanguageAndScriptCode"] = pn.languageAndScriptCode;
|
|
1163
|
+
r.FullName = pn.fullName;
|
|
1164
|
+
if (pn.fullNameIndexed) r.FullNameIndexed = pn.fullNameIndexed;
|
|
1165
|
+
return r;
|
|
1166
|
+
});
|
|
1167
|
+
else result.PartyName = { FullName: da.artist.name };
|
|
1144
1168
|
if (da.artist.roles?.length) {
|
|
1145
1169
|
const builtRoles = da.artist.roles.map((r) => this.buildArtistRole(r));
|
|
1146
1170
|
result.ArtistRole = builtRoles.length === 1 ? builtRoles[0] : builtRoles;
|
|
@@ -1178,6 +1202,7 @@ var Ern38Builder = class {
|
|
|
1178
1202
|
buildTitle(t) {
|
|
1179
1203
|
const result = {};
|
|
1180
1204
|
if (t.titleType) result["@_TitleType"] = t.titleType;
|
|
1205
|
+
if (t.languageAndScriptCode) result["@_LanguageAndScriptCode"] = t.languageAndScriptCode;
|
|
1181
1206
|
result.TitleText = t.titleText;
|
|
1182
1207
|
if (t.subTitle) result.SubTitle = t.subTitle;
|
|
1183
1208
|
return result;
|