1+ /*
2+ * Licensed to the Apache Software Foundation (ASF) under one or more
3+ * contributor license agreements. See the NOTICE file distributed with
4+ * this work for additional information regarding copyright ownership.
5+ * The ASF licenses this file to You under the Apache License, Version 2.0
6+ * (the "License"); you may not use this file except in compliance with
7+ * the License. You may obtain a copy of the License at
8+ *
9+ * http://www.apache.org/licenses/LICENSE-2.0
10+ *
11+ * Unless required by applicable law or agreed to in writing, software
12+ * distributed under the License is distributed on an "AS IS" BASIS,
13+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+ * See the License for the specific language governing permissions and
15+ * limitations under the License.
16+ */
17+
18+ const pathToFluss = '../../fluss-versions.json' ;
19+ const pathToVersions = '../../versions.json' ;
20+
21+ export function loadVersionData ( ) : { versionsMap : Record < string , any > , latestVersion : string } {
22+ const fluss_versions : Array < any > = require ( pathToFluss ) ;
23+ const flussVersionMap = new Map < string , any > ( ) ;
24+ fluss_versions . forEach ( ( v ) => {
25+ flussVersionMap . set ( v . shortVersion , v . released ) ;
26+ } ) ;
27+
28+ let versions : Array < string > = [ ] ;
29+ try {
30+ versions = require ( pathToVersions ) ;
31+ } catch ( e ) {
32+ versions = [ ] ;
33+ }
34+
35+ let latestVersion : string = 'current' ;
36+ const versionsMap : Record < string , any > = Object . fromEntries ( [
37+ [ 'current' , { label : 'Next' , path : 'next' , banner : 'unreleased' } ] ,
38+ ...versions . map ( ( item : string ) => {
39+ if ( flussVersionMap . get ( item ) ) {
40+ if ( latestVersion === 'current' ) {
41+ latestVersion = item ;
42+ return [ item , { label : item , banner : 'none' } ] ;
43+ } else {
44+ return [ item , { label : item , path : item , banner : 'unmaintained' } ] ;
45+ }
46+ } else {
47+ return [ item , { label : item + ' 🚧' , path : item , banner : 'unreleased' } ] ;
48+ }
49+ } ) ,
50+ ] ) ;
51+
52+ return { versionsMap, latestVersion} ;
53+ }
0 commit comments