@dan-uni/dan-any 1.3.3 → 1.3.4

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.
@@ -11461,7 +11461,7 @@ __webpack_require__.d(platform_namespaceObject, {
11461
11461
  PlatformVideoSource: ()=>platform_PlatformVideoSource,
11462
11462
  PlatformVideoSources: ()=>PlatformVideoSources
11463
11463
  });
11464
- var package_namespaceObject = JSON.parse('{"UU":"@dan-uni/dan-any","rE":"1.3.3","TB":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
11464
+ var package_namespaceObject = JSON.parse('{"UU":"@dan-uni/dan-any","rE":"1.3.4","TB":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
11465
11465
  const color_pad = (s)=>s.length < 2 ? `0${s}` : s;
11466
11466
  const decimalToHex = (n)=>color_pad(n.toString(16));
11467
11467
  const isDarkColor = ({ r, g, b })=>0.299 * r + 0.587 * g + 0.114 * b < 0x30;
@@ -13128,21 +13128,56 @@ class UniPool {
13128
13128
  }
13129
13129
  throw new Error(errmesg ?? err);
13130
13130
  }
13131
- convert2(format, continue_on_error = false) {
13131
+ convert2(format, file_wrapper = false, continue_on_error = false) {
13132
13132
  switch(format){
13133
- case 'danuni.json':
13133
+ case "danuni.json":
13134
+ if (file_wrapper) return new File([
13135
+ src_JSON.stringify(this.dans)
13136
+ ], "danuni.json", {
13137
+ type: 'application/json'
13138
+ });
13134
13139
  return this.dans;
13135
- case 'danuni.min.json':
13140
+ case "danuni.min.json":
13141
+ if (file_wrapper) return new File([
13142
+ src_JSON.stringify(this.minify())
13143
+ ], "danuni.min.json", {
13144
+ type: 'application/json'
13145
+ });
13136
13146
  return this.minify();
13137
- case 'danuni.binpb':
13147
+ case "danuni.binpb":
13148
+ if (file_wrapper) return new File([
13149
+ this.toPb()
13150
+ ], "danuni.binpb", {
13151
+ type: 'application/protobuf'
13152
+ });
13138
13153
  return this.toPb();
13139
- case 'bili.xml':
13154
+ case "bili.xml":
13155
+ if (file_wrapper) return new File([
13156
+ this.toBiliXML()
13157
+ ], "bili.xml", {
13158
+ type: 'application/xml'
13159
+ });
13140
13160
  return this.toBiliXML();
13141
- case 'dplayer.json':
13161
+ case "dplayer.json":
13162
+ if (file_wrapper) return new File([
13163
+ src_JSON.stringify(this.toDplayer())
13164
+ ], "dplayer.json", {
13165
+ type: 'application/json'
13166
+ });
13142
13167
  return this.toDplayer();
13143
- case 'artplayer.json':
13168
+ case "artplayer.json":
13169
+ if (file_wrapper) return new File([
13170
+ src_JSON.stringify(this.toArtplayer())
13171
+ ], "artplayer.json", {
13172
+ type: 'application/json'
13173
+ });
13144
13174
  return this.toArtplayer();
13145
- case 'ddplay.json':
13175
+ case "ddplay.json":
13176
+ if (file_wrapper) return new File([
13177
+ src_JSON.stringify(this.toDDplay())
13178
+ ], "ddplay.json", {
13179
+ type: 'application/json'
13180
+ });
13146
13181
  return this.toDDplay();
13147
13182
  default:
13148
13183
  {
@@ -141,6 +141,22 @@ export interface Options {
141
141
  */
142
142
  dmid?: boolean | number | UniIDTools.DMIDGenerator;
143
143
  }
144
+ type Convert2Format = DM_format.DanuniJson | DM_format.DanuniMinJson | DM_format.DanuniPbBin | DM_format.BiliXml | DM_format.DplayerJson | DM_format.ArtplayerJson | DM_format.DdplayJson;
145
+ type Convert2ResultMap = {
146
+ [DM_format.DanuniJson]: UniDM[];
147
+ [DM_format.DanuniMinJson]: DM_JSON_DanuniMin;
148
+ [DM_format.DanuniPbBin]: Uint8Array;
149
+ [DM_format.BiliXml]: string;
150
+ [DM_format.DplayerJson]: DM_JSON_Dplayer & {
151
+ danuni?: DanUniConvertTip;
152
+ };
153
+ [DM_format.ArtplayerJson]: DM_JSON_Artplayer & {
154
+ danuni?: DanUniConvertTip;
155
+ };
156
+ [DM_format.DdplayJson]: DM_JSON_DDPlay & {
157
+ danuni?: DanUniConvertTip;
158
+ };
159
+ };
144
160
  export declare class UniPool {
145
161
  dans: UniDM[];
146
162
  options: Options;
@@ -207,13 +223,8 @@ export declare class UniPool {
207
223
  pool: UniPool;
208
224
  fmt: DM_format;
209
225
  };
210
- convert2(format: DM_format, continue_on_error?: boolean): string | Uint8Array<ArrayBuffer> | UniDM[] | (Partial<UniDMTools.UniDMObj> & Pick<UniDMTools.UniDMObj, "SOID">)[] | (DM_JSON_Dplayer & {
211
- danuni?: DanUniConvertTip;
212
- }) | (DM_JSON_Artplayer & {
213
- danuni?: DanUniConvertTip;
214
- }) | (DM_JSON_DDPlay & {
215
- danuni?: DanUniConvertTip;
216
- });
226
+ convert2<T extends Convert2Format>(format: T, file_wrapper: true, continue_on_error?: boolean): File;
227
+ convert2<T extends Convert2Format>(format: T, file_wrapper?: false, continue_on_error?: boolean): Convert2ResultMap[T];
217
228
  static fromMin(json: DM_JSON_DanuniMin, options?: Options): UniPool;
218
229
  static fromPb(bin: Uint8Array | ArrayBuffer, options?: Options): UniPool;
219
230
  /**
@@ -39,7 +39,7 @@ __webpack_require__.d(platform_namespaceObject, {
39
39
  PlatformVideoSource: ()=>platform_PlatformVideoSource,
40
40
  PlatformVideoSources: ()=>PlatformVideoSources
41
41
  });
42
- var package_namespaceObject = JSON.parse('{"UU":"@dan-uni/dan-any","rE":"1.3.3","TB":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
42
+ var package_namespaceObject = JSON.parse('{"UU":"@dan-uni/dan-any","rE":"1.3.4","TB":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
43
43
  const color_pad = (s)=>s.length < 2 ? `0${s}` : s;
44
44
  const decimalToHex = (n)=>color_pad(n.toString(16));
45
45
  const isDarkColor = ({ r, g, b })=>0.299 * r + 0.587 * g + 0.114 * b < 0x30;
@@ -1703,21 +1703,56 @@ class UniPool {
1703
1703
  }
1704
1704
  throw new Error(errmesg ?? err);
1705
1705
  }
1706
- convert2(format, continue_on_error = false) {
1706
+ convert2(format, file_wrapper = false, continue_on_error = false) {
1707
1707
  switch(format){
1708
- case 'danuni.json':
1708
+ case "danuni.json":
1709
+ if (file_wrapper) return new File([
1710
+ src_JSON.stringify(this.dans)
1711
+ ], "danuni.json", {
1712
+ type: 'application/json'
1713
+ });
1709
1714
  return this.dans;
1710
- case 'danuni.min.json':
1715
+ case "danuni.min.json":
1716
+ if (file_wrapper) return new File([
1717
+ src_JSON.stringify(this.minify())
1718
+ ], "danuni.min.json", {
1719
+ type: 'application/json'
1720
+ });
1711
1721
  return this.minify();
1712
- case 'danuni.binpb':
1722
+ case "danuni.binpb":
1723
+ if (file_wrapper) return new File([
1724
+ this.toPb()
1725
+ ], "danuni.binpb", {
1726
+ type: 'application/protobuf'
1727
+ });
1713
1728
  return this.toPb();
1714
- case 'bili.xml':
1729
+ case "bili.xml":
1730
+ if (file_wrapper) return new File([
1731
+ this.toBiliXML()
1732
+ ], "bili.xml", {
1733
+ type: 'application/xml'
1734
+ });
1715
1735
  return this.toBiliXML();
1716
- case 'dplayer.json':
1736
+ case "dplayer.json":
1737
+ if (file_wrapper) return new File([
1738
+ src_JSON.stringify(this.toDplayer())
1739
+ ], "dplayer.json", {
1740
+ type: 'application/json'
1741
+ });
1717
1742
  return this.toDplayer();
1718
- case 'artplayer.json':
1743
+ case "artplayer.json":
1744
+ if (file_wrapper) return new File([
1745
+ src_JSON.stringify(this.toArtplayer())
1746
+ ], "artplayer.json", {
1747
+ type: 'application/json'
1748
+ });
1719
1749
  return this.toArtplayer();
1720
- case 'ddplay.json':
1750
+ case "ddplay.json":
1751
+ if (file_wrapper) return new File([
1752
+ src_JSON.stringify(this.toDDplay())
1753
+ ], "ddplay.json", {
1754
+ type: 'application/json'
1755
+ });
1721
1756
  return this.toDDplay();
1722
1757
  default:
1723
1758
  {
@@ -141,6 +141,22 @@ export interface Options {
141
141
  */
142
142
  dmid?: boolean | number | UniIDTools.DMIDGenerator;
143
143
  }
144
+ type Convert2Format = DM_format.DanuniJson | DM_format.DanuniMinJson | DM_format.DanuniPbBin | DM_format.BiliXml | DM_format.DplayerJson | DM_format.ArtplayerJson | DM_format.DdplayJson;
145
+ type Convert2ResultMap = {
146
+ [DM_format.DanuniJson]: UniDM[];
147
+ [DM_format.DanuniMinJson]: DM_JSON_DanuniMin;
148
+ [DM_format.DanuniPbBin]: Uint8Array;
149
+ [DM_format.BiliXml]: string;
150
+ [DM_format.DplayerJson]: DM_JSON_Dplayer & {
151
+ danuni?: DanUniConvertTip;
152
+ };
153
+ [DM_format.ArtplayerJson]: DM_JSON_Artplayer & {
154
+ danuni?: DanUniConvertTip;
155
+ };
156
+ [DM_format.DdplayJson]: DM_JSON_DDPlay & {
157
+ danuni?: DanUniConvertTip;
158
+ };
159
+ };
144
160
  export declare class UniPool {
145
161
  dans: UniDM[];
146
162
  options: Options;
@@ -207,13 +223,8 @@ export declare class UniPool {
207
223
  pool: UniPool;
208
224
  fmt: DM_format;
209
225
  };
210
- convert2(format: DM_format, continue_on_error?: boolean): string | Uint8Array<ArrayBuffer> | UniDM[] | (Partial<UniDMTools.UniDMObj> & Pick<UniDMTools.UniDMObj, "SOID">)[] | (DM_JSON_Dplayer & {
211
- danuni?: DanUniConvertTip;
212
- }) | (DM_JSON_Artplayer & {
213
- danuni?: DanUniConvertTip;
214
- }) | (DM_JSON_DDPlay & {
215
- danuni?: DanUniConvertTip;
216
- });
226
+ convert2<T extends Convert2Format>(format: T, file_wrapper: true, continue_on_error?: boolean): File;
227
+ convert2<T extends Convert2Format>(format: T, file_wrapper?: false, continue_on_error?: boolean): Convert2ResultMap[T];
217
228
  static fromMin(json: DM_JSON_DanuniMin, options?: Options): UniPool;
218
229
  static fromPb(bin: Uint8Array | ArrayBuffer, options?: Options): UniPool;
219
230
  /**
@@ -21770,7 +21770,7 @@ and limitations under the License.
21770
21770
  function timestamp_timestampMs(timestamp) {
21771
21771
  return 1000 * Number(timestamp.seconds) + Math.round(timestamp.nanos / 1000000);
21772
21772
  }
21773
- var package_namespaceObject = JSON.parse('{"UU":"@dan-uni/dan-any","rE":"1.3.3","TB":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
21773
+ var package_namespaceObject = JSON.parse('{"UU":"@dan-uni/dan-any","rE":"1.3.4","TB":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
21774
21774
  const color_pad = (s)=>s.length < 2 ? `0${s}` : s;
21775
21775
  const decimalToHex = (n)=>color_pad(n.toString(16));
21776
21776
  const isDarkColor = ({ r, g, b })=>0.299 * r + 0.587 * g + 0.114 * b < 0x30;
@@ -25616,21 +25616,56 @@ and limitations under the License.
25616
25616
  }
25617
25617
  throw new Error(errmesg ?? err);
25618
25618
  }
25619
- convert2(format, continue_on_error = false) {
25619
+ convert2(format, file_wrapper = false, continue_on_error = false) {
25620
25620
  switch(format){
25621
- case 'danuni.json':
25621
+ case "danuni.json":
25622
+ if (file_wrapper) return new File([
25623
+ src_JSON.stringify(this.dans)
25624
+ ], "danuni.json", {
25625
+ type: 'application/json'
25626
+ });
25622
25627
  return this.dans;
25623
- case 'danuni.min.json':
25628
+ case "danuni.min.json":
25629
+ if (file_wrapper) return new File([
25630
+ src_JSON.stringify(this.minify())
25631
+ ], "danuni.min.json", {
25632
+ type: 'application/json'
25633
+ });
25624
25634
  return this.minify();
25625
- case 'danuni.binpb':
25635
+ case "danuni.binpb":
25636
+ if (file_wrapper) return new File([
25637
+ this.toPb()
25638
+ ], "danuni.binpb", {
25639
+ type: 'application/protobuf'
25640
+ });
25626
25641
  return this.toPb();
25627
- case 'bili.xml':
25642
+ case "bili.xml":
25643
+ if (file_wrapper) return new File([
25644
+ this.toBiliXML()
25645
+ ], "bili.xml", {
25646
+ type: 'application/xml'
25647
+ });
25628
25648
  return this.toBiliXML();
25629
- case 'dplayer.json':
25649
+ case "dplayer.json":
25650
+ if (file_wrapper) return new File([
25651
+ src_JSON.stringify(this.toDplayer())
25652
+ ], "dplayer.json", {
25653
+ type: 'application/json'
25654
+ });
25630
25655
  return this.toDplayer();
25631
- case 'artplayer.json':
25656
+ case "artplayer.json":
25657
+ if (file_wrapper) return new File([
25658
+ src_JSON.stringify(this.toArtplayer())
25659
+ ], "artplayer.json", {
25660
+ type: 'application/json'
25661
+ });
25632
25662
  return this.toArtplayer();
25633
- case 'ddplay.json':
25663
+ case "ddplay.json":
25664
+ if (file_wrapper) return new File([
25665
+ src_JSON.stringify(this.toDDplay())
25666
+ ], "ddplay.json", {
25667
+ type: 'application/json'
25668
+ });
25634
25669
  return this.toDDplay();
25635
25670
  default:
25636
25671
  {
@@ -21060,7 +21060,7 @@
21060
21060
  function timestamp_timestampMs(timestamp) {
21061
21061
  return 1000 * Number(timestamp.seconds) + Math.round(timestamp.nanos / 1000000);
21062
21062
  }
21063
- var package_namespaceObject = JSON.parse('{"UU":"@dan-uni/dan-any","rE":"1.3.3","TB":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
21063
+ var package_namespaceObject = JSON.parse('{"UU":"@dan-uni/dan-any","rE":"1.3.4","TB":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
21064
21064
  const color_pad = (s)=>s.length < 2 ? `0${s}` : s;
21065
21065
  const decimalToHex = (n)=>color_pad(n.toString(16));
21066
21066
  const isDarkColor = ({ r, g, b })=>0.299 * r + 0.587 * g + 0.114 * b < 0x30;
@@ -24872,21 +24872,56 @@
24872
24872
  }
24873
24873
  throw new Error(errmesg ?? err);
24874
24874
  }
24875
- convert2(format, continue_on_error = false) {
24875
+ convert2(format, file_wrapper = false, continue_on_error = false) {
24876
24876
  switch(format){
24877
- case 'danuni.json':
24877
+ case "danuni.json":
24878
+ if (file_wrapper) return new File([
24879
+ src_JSON.stringify(this.dans)
24880
+ ], "danuni.json", {
24881
+ type: 'application/json'
24882
+ });
24878
24883
  return this.dans;
24879
- case 'danuni.min.json':
24884
+ case "danuni.min.json":
24885
+ if (file_wrapper) return new File([
24886
+ src_JSON.stringify(this.minify())
24887
+ ], "danuni.min.json", {
24888
+ type: 'application/json'
24889
+ });
24880
24890
  return this.minify();
24881
- case 'danuni.binpb':
24891
+ case "danuni.binpb":
24892
+ if (file_wrapper) return new File([
24893
+ this.toPb()
24894
+ ], "danuni.binpb", {
24895
+ type: 'application/protobuf'
24896
+ });
24882
24897
  return this.toPb();
24883
- case 'bili.xml':
24898
+ case "bili.xml":
24899
+ if (file_wrapper) return new File([
24900
+ this.toBiliXML()
24901
+ ], "bili.xml", {
24902
+ type: 'application/xml'
24903
+ });
24884
24904
  return this.toBiliXML();
24885
- case 'dplayer.json':
24905
+ case "dplayer.json":
24906
+ if (file_wrapper) return new File([
24907
+ src_JSON.stringify(this.toDplayer())
24908
+ ], "dplayer.json", {
24909
+ type: 'application/json'
24910
+ });
24886
24911
  return this.toDplayer();
24887
- case 'artplayer.json':
24912
+ case "artplayer.json":
24913
+ if (file_wrapper) return new File([
24914
+ src_JSON.stringify(this.toArtplayer())
24915
+ ], "artplayer.json", {
24916
+ type: 'application/json'
24917
+ });
24888
24918
  return this.toArtplayer();
24889
- case 'ddplay.json':
24919
+ case "ddplay.json":
24920
+ if (file_wrapper) return new File([
24921
+ src_JSON.stringify(this.toDDplay())
24922
+ ], "ddplay.json", {
24923
+ type: 'application/json'
24924
+ });
24890
24925
  return this.toDDplay();
24891
24926
  default:
24892
24927
  {
@@ -21060,7 +21060,7 @@
21060
21060
  function timestamp_timestampMs(timestamp) {
21061
21061
  return 1000 * Number(timestamp.seconds) + Math.round(timestamp.nanos / 1000000);
21062
21062
  }
21063
- var package_namespaceObject = JSON.parse('{"UU":"@dan-uni/dan-any","rE":"1.3.3","TB":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
21063
+ var package_namespaceObject = JSON.parse('{"UU":"@dan-uni/dan-any","rE":"1.3.4","TB":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
21064
21064
  const color_pad = (s)=>s.length < 2 ? `0${s}` : s;
21065
21065
  const decimalToHex = (n)=>color_pad(n.toString(16));
21066
21066
  const isDarkColor = ({ r, g, b })=>0.299 * r + 0.587 * g + 0.114 * b < 0x30;
@@ -24872,21 +24872,56 @@
24872
24872
  }
24873
24873
  throw new Error(errmesg ?? err);
24874
24874
  }
24875
- convert2(format, continue_on_error = false) {
24875
+ convert2(format, file_wrapper = false, continue_on_error = false) {
24876
24876
  switch(format){
24877
- case 'danuni.json':
24877
+ case "danuni.json":
24878
+ if (file_wrapper) return new File([
24879
+ src_JSON.stringify(this.dans)
24880
+ ], "danuni.json", {
24881
+ type: 'application/json'
24882
+ });
24878
24883
  return this.dans;
24879
- case 'danuni.min.json':
24884
+ case "danuni.min.json":
24885
+ if (file_wrapper) return new File([
24886
+ src_JSON.stringify(this.minify())
24887
+ ], "danuni.min.json", {
24888
+ type: 'application/json'
24889
+ });
24880
24890
  return this.minify();
24881
- case 'danuni.binpb':
24891
+ case "danuni.binpb":
24892
+ if (file_wrapper) return new File([
24893
+ this.toPb()
24894
+ ], "danuni.binpb", {
24895
+ type: 'application/protobuf'
24896
+ });
24882
24897
  return this.toPb();
24883
- case 'bili.xml':
24898
+ case "bili.xml":
24899
+ if (file_wrapper) return new File([
24900
+ this.toBiliXML()
24901
+ ], "bili.xml", {
24902
+ type: 'application/xml'
24903
+ });
24884
24904
  return this.toBiliXML();
24885
- case 'dplayer.json':
24905
+ case "dplayer.json":
24906
+ if (file_wrapper) return new File([
24907
+ src_JSON.stringify(this.toDplayer())
24908
+ ], "dplayer.json", {
24909
+ type: 'application/json'
24910
+ });
24886
24911
  return this.toDplayer();
24887
- case 'artplayer.json':
24912
+ case "artplayer.json":
24913
+ if (file_wrapper) return new File([
24914
+ src_JSON.stringify(this.toArtplayer())
24915
+ ], "artplayer.json", {
24916
+ type: 'application/json'
24917
+ });
24888
24918
  return this.toArtplayer();
24889
- case 'ddplay.json':
24919
+ case "ddplay.json":
24920
+ if (file_wrapper) return new File([
24921
+ src_JSON.stringify(this.toDDplay())
24922
+ ], "ddplay.json", {
24923
+ type: 'application/json'
24924
+ });
24890
24925
  return this.toDDplay();
24891
24926
  default:
24892
24927
  {
@@ -141,6 +141,22 @@ export interface Options {
141
141
  */
142
142
  dmid?: boolean | number | UniIDTools.DMIDGenerator;
143
143
  }
144
+ type Convert2Format = DM_format.DanuniJson | DM_format.DanuniMinJson | DM_format.DanuniPbBin | DM_format.BiliXml | DM_format.DplayerJson | DM_format.ArtplayerJson | DM_format.DdplayJson;
145
+ type Convert2ResultMap = {
146
+ [DM_format.DanuniJson]: UniDM[];
147
+ [DM_format.DanuniMinJson]: DM_JSON_DanuniMin;
148
+ [DM_format.DanuniPbBin]: Uint8Array;
149
+ [DM_format.BiliXml]: string;
150
+ [DM_format.DplayerJson]: DM_JSON_Dplayer & {
151
+ danuni?: DanUniConvertTip;
152
+ };
153
+ [DM_format.ArtplayerJson]: DM_JSON_Artplayer & {
154
+ danuni?: DanUniConvertTip;
155
+ };
156
+ [DM_format.DdplayJson]: DM_JSON_DDPlay & {
157
+ danuni?: DanUniConvertTip;
158
+ };
159
+ };
144
160
  export declare class UniPool {
145
161
  dans: UniDM[];
146
162
  options: Options;
@@ -207,13 +223,8 @@ export declare class UniPool {
207
223
  pool: UniPool;
208
224
  fmt: DM_format;
209
225
  };
210
- convert2(format: DM_format, continue_on_error?: boolean): string | Uint8Array<ArrayBuffer> | UniDM[] | (Partial<UniDMTools.UniDMObj> & Pick<UniDMTools.UniDMObj, "SOID">)[] | (DM_JSON_Dplayer & {
211
- danuni?: DanUniConvertTip;
212
- }) | (DM_JSON_Artplayer & {
213
- danuni?: DanUniConvertTip;
214
- }) | (DM_JSON_DDPlay & {
215
- danuni?: DanUniConvertTip;
216
- });
226
+ convert2<T extends Convert2Format>(format: T, file_wrapper: true, continue_on_error?: boolean): File;
227
+ convert2<T extends Convert2Format>(format: T, file_wrapper?: false, continue_on_error?: boolean): Convert2ResultMap[T];
217
228
  static fromMin(json: DM_JSON_DanuniMin, options?: Options): UniPool;
218
229
  static fromPb(bin: Uint8Array | ArrayBuffer, options?: Options): UniPool;
219
230
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dan-uni/dan-any",
3
3
  "type": "module",
4
- "version": "1.3.3",
4
+ "version": "1.3.4",
5
5
  "description": "A danmaku transformer lib, supporting danmaku from different platforms.",
6
6
  "author": "rinne",
7
7
  "license": "LGPL-3.0-or-later",
package/src/index.ts CHANGED
@@ -200,6 +200,24 @@ export interface Options {
200
200
  dmid?: boolean | number | UniIDTools.DMIDGenerator
201
201
  }
202
202
 
203
+ type Convert2Format =
204
+ | DM_format.DanuniJson
205
+ | DM_format.DanuniMinJson
206
+ | DM_format.DanuniPbBin
207
+ | DM_format.BiliXml
208
+ | DM_format.DplayerJson
209
+ | DM_format.ArtplayerJson
210
+ | DM_format.DdplayJson
211
+ type Convert2ResultMap = {
212
+ [DM_format.DanuniJson]: UniDM[]
213
+ [DM_format.DanuniMinJson]: DM_JSON_DanuniMin
214
+ [DM_format.DanuniPbBin]: Uint8Array
215
+ [DM_format.BiliXml]: string
216
+ [DM_format.DplayerJson]: DM_JSON_Dplayer & { danuni?: DanUniConvertTip }
217
+ [DM_format.ArtplayerJson]: DM_JSON_Artplayer & { danuni?: DanUniConvertTip }
218
+ [DM_format.DdplayJson]: DM_JSON_DDPlay & { danuni?: DanUniConvertTip }
219
+ }
220
+
203
221
  export class UniPool {
204
222
  constructor(
205
223
  public dans: UniDM[],
@@ -669,27 +687,87 @@ export class UniPool {
669
687
  }
670
688
  throw new Error(errmesg ?? err)
671
689
  }
672
- convert2(format: DM_format, continue_on_error = false) {
690
+ convert2<T extends Convert2Format>(
691
+ format: T,
692
+ file_wrapper: true,
693
+ continue_on_error?: boolean,
694
+ ): File
695
+ convert2<T extends Convert2Format>(
696
+ format: T,
697
+ file_wrapper?: false,
698
+ continue_on_error?: boolean,
699
+ ): Convert2ResultMap[T]
700
+ convert2(
701
+ format: DM_format,
702
+ file_wrapper = false,
703
+ continue_on_error = false,
704
+ ): File | Convert2ResultMap[Convert2Format] | string {
673
705
  switch (format) {
674
- case 'danuni.json':
675
- return this.dans
676
- case 'danuni.min.json':
677
- return this.minify()
678
- case 'danuni.binpb':
679
- return this.toPb()
680
- case 'bili.xml':
681
- return this.toBiliXML()
682
- // case 'bili.binpb':
706
+ case DM_format.DanuniJson:
707
+ if (file_wrapper)
708
+ return new File([JSON.stringify(this.dans)], DM_format.DanuniJson, {
709
+ type: 'application/json',
710
+ })
711
+ else return this.dans
712
+ case DM_format.DanuniMinJson:
713
+ if (file_wrapper)
714
+ return new File(
715
+ [JSON.stringify(this.minify())],
716
+ DM_format.DanuniMinJson,
717
+ {
718
+ type: 'application/json',
719
+ },
720
+ )
721
+ else return this.minify()
722
+ case DM_format.DanuniPbBin:
723
+ if (file_wrapper)
724
+ return new File([this.toPb()], DM_format.DanuniPbBin, {
725
+ type: 'application/protobuf',
726
+ })
727
+ else return this.toPb()
728
+ case DM_format.BiliXml:
729
+ if (file_wrapper)
730
+ return new File([this.toBiliXML()], DM_format.BiliXml, {
731
+ type: 'application/xml',
732
+ })
733
+ else return this.toBiliXML()
734
+ // case DM_format.BiliPbBin:
683
735
  // return this.toBiliBin()
684
- // case 'bili.cmd.binpb':
736
+ // case DM_format.BiliCmdPbBin:
685
737
  // return this.toBiliCmdBin()
686
- case 'dplayer.json':
738
+ // case DM_format.BiliUpJson:
739
+ // return this.toBiliUp()
740
+ case DM_format.DplayerJson:
741
+ if (file_wrapper)
742
+ return new File(
743
+ [JSON.stringify(this.toDplayer())],
744
+ DM_format.DplayerJson,
745
+ {
746
+ type: 'application/json',
747
+ },
748
+ )
687
749
  return this.toDplayer()
688
- case 'artplayer.json':
750
+ case DM_format.ArtplayerJson:
751
+ if (file_wrapper)
752
+ return new File(
753
+ [JSON.stringify(this.toArtplayer())],
754
+ DM_format.ArtplayerJson,
755
+ {
756
+ type: 'application/json',
757
+ },
758
+ )
689
759
  return this.toArtplayer()
690
- case 'ddplay.json':
760
+ case DM_format.DdplayJson:
761
+ if (file_wrapper)
762
+ return new File(
763
+ [JSON.stringify(this.toDDplay())],
764
+ DM_format.DdplayJson,
765
+ {
766
+ type: 'application/json',
767
+ },
768
+ )
691
769
  return this.toDDplay()
692
- // case 'common.ass':
770
+ // case DM_format.CommonAss:
693
771
  // return this.toASS()
694
772
  default: {
695
773
  const message = '(err) Unknown format or unsupported now!'