Skip to content

Commit b07e166

Browse files
committed
Define types for seeded release data
Tried my best to derive these from lib/MusicBrainz/Server/Controller/ReleaseEditor.pm.
1 parent 4e83264 commit b07e166

1 file changed

Lines changed: 95 additions & 0 deletions

File tree

root/types/releaseeditor.js

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
/*
2+
* @flow strict
3+
* Copyright (C) 2025 MetaBrainz Foundation
4+
*
5+
* This file is part of MusicBrainz, the open internet music database,
6+
* and is licensed under the GPL version 2, or (at your option) any
7+
* later version: http://www.gnu.org/licenses/gpl-2.0.txt
8+
*/
9+
10+
/* eslint-disable no-unused-vars */
11+
12+
/*
13+
* Global release editor types which are referenced from other global type
14+
* definitions under root/types/.
15+
*/
16+
17+
declare type ReleaseEditorSeededArtistCreditNameT = {
18+
+artist?: ArtistT | {+name?: string} | null,
19+
+joinPhrase: string,
20+
+name: string,
21+
};
22+
23+
declare type ReleaseEditorSeededArtistCreditT = {
24+
+names: $ReadOnlyArray<ReleaseEditorSeededArtistCreditNameT | {}> | null,
25+
};
26+
27+
declare type ReleaseEditorSeededTrackT = {
28+
+artistCredit?: ReleaseEditorSeededArtistCreditT | null,
29+
+length?: number,
30+
+name?: string,
31+
+number: StrOrNum,
32+
+position: number,
33+
+recording?: RecordingT,
34+
};
35+
36+
declare type ReleaseEditorSeededMediumT = {
37+
+format_id?: number,
38+
+name?: string,
39+
+toc?: string,
40+
+tracks?: $ReadOnlyArray<ReleaseEditorSeededTrackT | {}> | null,
41+
};
42+
43+
declare type ReleaseEditorSeededReleaseGroupT =
44+
| ReleaseGroupT
45+
| {
46+
+name: string,
47+
+secondaryTypeIDs?: $ReadOnlyArray<number>,
48+
+typeID?: number,
49+
};
50+
51+
declare type ReleaseEditorSeededReleaseEventT = {
52+
+country?: AreaT,
53+
+date?: {
54+
+day?: number,
55+
+month?: number,
56+
+year?: number,
57+
},
58+
};
59+
60+
declare type ReleaseEditorSeededReleaseLabelT = {
61+
+catalogNumber: string,
62+
+label?: LabelT | {+name: string},
63+
};
64+
65+
declare type ReleaseEditorSeededUrlRelationshipT = {
66+
+id: null,
67+
+linkTypeID?: number,
68+
+target: {
69+
+entityType: 'url',
70+
+name: string,
71+
},
72+
};
73+
74+
declare type ReleaseEditorSeededReleaseT = {
75+
+annotation?: string,
76+
+artistCredit?: ReleaseEditorSeededArtistCreditT | null,
77+
+barcode?: string,
78+
+comment?: string,
79+
+events?: $ReadOnlyArray<ReleaseEditorSeededReleaseEventT | {}> | null,
80+
+labels?: $ReadOnlyArray<ReleaseEditorSeededReleaseLabelT | {}> | null,
81+
+languageID?: number,
82+
+mediums?: $ReadOnlyArray<ReleaseEditorSeededMediumT> | null,
83+
+name?: string,
84+
+packagingID?: number,
85+
+relationships?:
86+
$ReadOnlyArray<ReleaseEditorSeededUrlRelationshipT | {}> | null,
87+
+releaseGroup?: ReleaseEditorSeededReleaseGroupT | null,
88+
+scriptID?: number,
89+
+statusID?: number,
90+
};
91+
92+
declare type ReleaseEditorSeedT = {
93+
+errors: $ReadOnlyArray<string>,
94+
+seed: ReleaseEditorSeededReleaseT,
95+
};

0 commit comments

Comments
 (0)