@opengis/gis 0.2.49 → 0.2.50
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/README.md +5 -5
- package/dist/index.css +1 -1
- package/dist/index.js +2193 -2184
- package/dist/index.umd.cjs +26 -26
- package/dist/login-landscape.png +0 -0
- package/module/cls.json +6 -6
- package/module/gis/card/gis.metadata.table/index.yml +22 -22
- package/module/gis/card/gis.metadata.table/main_info.hbs +20 -20
- package/module/gis/card/gis.metadata.table/metadata_info.hbs +27 -27
- package/module/gis/card/gis.metadata.table/other.hbs +25 -25
- package/module/gis/card/gis.rasters.table/index.yml +11 -11
- package/module/gis/card/gis.rasters.table/main_info.hbs +27 -27
- package/module/gis/card/gis.registers.table/cls.hbs +36 -36
- package/module/gis/card/gis.registers.table/columns.hbs +89 -89
- package/module/gis/card/gis.registers.table/filters.hbs +80 -80
- package/module/gis/card/gis.registers.table/index.yml +23 -23
- package/module/gis/card/gis.registers.table/main_info.hbs +35 -35
- package/module/gis/card/gis.registers.table/source.hbs +45 -45
- package/module/gis/card/gis.services.table/attributes.hbs +91 -91
- package/module/gis/card/gis.services.table/filters.hbs +83 -83
- package/module/gis/card/gis.services.table/index.yml +25 -25
- package/module/gis/card/gis.services.table/main_info.hbs +27 -27
- package/module/gis/card/gis.services.table/source.hbs +25 -25
- package/module/gis/cls/bool.yes_no.json +12 -12
- package/module/gis/cls/encoding.json +14 -14
- package/module/gis/cls/geom_type.json +14 -14
- package/module/gis/cls/gis.column_type.json +34 -34
- package/module/gis/cls/gis.column_view_type.json +26 -26
- package/module/gis/cls/gis.filter_type.json +22 -22
- package/module/gis/cls/language.json +10 -10
- package/module/gis/cls/meta.service_type.json +42 -42
- package/module/gis/cls/ogc.service.json +21 -21
- package/module/gis/cls/service_type.json +42 -42
- package/module/gis/cls/source_type.json +10 -10
- package/module/gis/cls/standarts.json +6 -6
- package/module/gis/cls/topic_category.json +106 -106
- package/module/gis/cls/update_frequency.json +29 -29
- package/module/gis/cls/view.json +21 -21
- package/module/gis/form/gis.cartocss.form.json +45 -45
- package/module/gis/form/gis.group_list.form.json +17 -17
- package/module/gis/form/gis.maps.form.json +61 -61
- package/module/gis/form/gis.metadata.form.json +240 -240
- package/module/gis/form/gis.ogc_service.form.json +45 -45
- package/module/gis/form/gis.rasters.form.json +103 -103
- package/module/gis/form/gis.registers.form.json +124 -124
- package/module/gis/form/gis.registers_column.form.json +84 -84
- package/module/gis/form/gis.registers_filter.form.json +65 -65
- package/module/gis/form/gis.services.form.json +111 -111
- package/module/gis/form/gis.services_attributes.form.json +75 -75
- package/module/gis/form/gis.services_filter.form.json +65 -65
- package/module/gis/menu.json +43 -43
- package/module/gis/select/pg.columns.parent.sql +6 -6
- package/module/gis/select/pg.table_name.sql +17 -17
- package/module/gis/select/service_id.sql +1 -1
- package/module/gis/table/gis.cartocss.table.json +62 -62
- package/module/gis/table/gis.group_list.table.json +35 -35
- package/module/gis/table/gis.maps.table.json +108 -108
- package/module/gis/table/gis.metadata.table.json +70 -70
- package/module/gis/table/gis.ogc_service.table.json +98 -98
- package/module/gis/table/gis.rasters.table.json +101 -101
- package/module/gis/table/gis.registers.table.json +144 -144
- package/module/gis/table/gis.services.table.json +121 -121
- package/module/gis/table/site.gis.registers.table.json +88 -88
- package/module/gis/table/site.gis.services.table.json +106 -106
- package/module/gis/templates/ISO19136_2017_gml_template.xml +330 -330
- package/module/gis/tokens.yml +5 -5
- package/module/test/cls/bp_build_type.json +37 -37
- package/module/test/cls/ts.temp_status.json +18 -18
- package/module/test/cls/ts.temp_structure.ts_class.json +49 -49
- package/module/test/cls/ts.temp_type.json +9 -9
- package/module/test/layer/bp.json +59 -59
- package/module/test/layer/bp1.yml +33 -33
- package/module/test/layer/individual.yml +53 -53
- package/module/test/layer/ts.linking_passport.yml +55 -55
- package/module/test/layer/ts.temp_structure.yml +50 -50
- package/module/test/map/addr.yml +21 -21
- package/module/test/map/bp_myo.json +43 -43
- package/module/test/map/bpf.json +43 -43
- package/module/test/map/main.json +36 -36
- package/module/test/map/mbd.json +91 -91
- package/module/test/map/ts.json +52 -52
- package/module/test/select/address_id.json +2 -2
- package/module/test/select/address_id.sql +7 -7
- package/module/test/table/data_address.street.table.json +69 -69
- package/module/test/table/data_bp_myo.bp.table.json +122 -122
- package/package.json +75 -75
- package/plugin.js +45 -45
- package/server/migrations/maps.sql +30 -30
- package/server/migrations/ogc.sql +106 -106
- package/server/migrations/rasters.sql +263 -263
- package/server/migrations/services.sql +247 -247
- package/server/migrations/widgets.sql +20 -20
- package/server/plugins/crons.js +21 -21
- package/server/plugins/mapnik/funcs/checkRasterFile.js +92 -92
- package/server/plugins/mapnik/funcs/mapnik.js +112 -112
- package/server/plugins/mapnik/funcs/rootFolder.mjs +8 -8
- package/server/plugins/mapnik/map.proto +155 -155
- package/server/plugins/vite.js +74 -74
- package/server/routes/gis/cartocss/add.cartocss.js +152 -152
- package/server/routes/gis/cartocss/get.cartocss.js +12 -12
- package/server/routes/gis/dashboard.js +29 -29
- package/server/routes/gis/index.mjs +73 -73
- package/server/routes/gis/metadata/metadataXML.js +13 -13
- package/server/routes/gis/ogc/map.info.point.js +124 -124
- package/server/routes/gis/registers/add.registry.js +35 -35
- package/server/routes/gis/registers/del.registry.js +14 -14
- package/server/routes/gis/registers/funcs/classifiers.js +100 -100
- package/server/routes/gis/registers/funcs/columns.js +4 -4
- package/server/routes/gis/registers/funcs/content.type.js +9 -9
- package/server/routes/gis/registers/funcs/get.info.js +89 -89
- package/server/routes/gis/registers/funcs/handleRegistryRequest.js +145 -145
- package/server/routes/gis/registers/gis.export.js +148 -148
- package/server/routes/gis/registers/gis.registry.js +64 -64
- package/server/routes/gis/registers/gis.registry.list.js +59 -59
- package/server/routes/gis/registers/insert.columns.js +107 -107
- package/server/routes/gis/registers/insert.filters.js +110 -110
- package/server/routes/gis/registers/map.registry.js +79 -79
- package/server/routes/gis/services/add.service.js +64 -64
- package/server/routes/gis/services/del.service.js +12 -12
- package/server/routes/gis/services/get.layer.geom.js +27 -27
- package/server/routes/gis/services/get.services.col.js +33 -33
- package/server/routes/gis/services/get.services.js +84 -84
- package/server/routes/gis/services/legend.auto.js +77 -77
- package/server/routes/map/controllers/geojson.js +187 -187
- package/server/routes/map/controllers/jsonData.js +205 -205
- package/server/routes/map/controllers/layerList.js +60 -60
- package/server/routes/map/controllers/map.js +123 -123
- package/server/routes/map/controllers/mapCatalog.js +72 -72
- package/server/routes/map/controllers/mapCatalogAttribute.js +55 -55
- package/server/routes/map/controllers/mapFeatures.js +128 -128
- package/server/routes/map/controllers/mapFormat.js +83 -83
- package/server/routes/map/controllers/mapTiles.js +152 -152
- package/server/routes/map/controllers/maps.js +15 -15
- package/server/routes/map/controllers/marker_icon.js +43 -43
- package/server/routes/map/controllers/vtile.js +172 -172
- package/server/routes/map/index.mjs +142 -142
- package/server/routes/map/maps/add.map.js +43 -43
- package/server/routes/map/maps/del.map.js +18 -18
- package/server/routes/map/maps/get.map.js +80 -80
- package/server/routes/map/vtile1.js +170 -170
- package/server/routes/map/widgets/add.widget.js +38 -38
- package/server/routes/map/widgets/del.widget.js +22 -22
- package/server/routes/map/widgets/get.widget.js +40 -40
- package/server/routes/mapnik/controllers/createXml.js +63 -63
- package/server/routes/mapnik/controllers/rtile.js +106 -106
- package/server/routes/mapnik/controllers/rtileMBD.js +91 -91
- package/server/routes/mapnik/controllers/uploadRaster.js +157 -157
- package/server/routes/mapnik/index.js +16 -16
- package/server/routes/root.mjs +3 -3
- package/utils.js +13 -13
|
@@ -1,155 +1,155 @@
|
|
|
1
|
-
syntax = "proto3";
|
|
2
|
-
|
|
3
|
-
import "google/protobuf/struct.proto"; // after syntax!
|
|
4
|
-
|
|
5
|
-
package map;
|
|
6
|
-
|
|
7
|
-
// ----------------------------
|
|
8
|
-
// Map Service
|
|
9
|
-
// ----------------------------
|
|
10
|
-
service MapService {
|
|
11
|
-
rpc RenderTile(RenderTileRequest) returns (RenderTileOut);
|
|
12
|
-
rpc ClearTile(ClearTileRequest) returns (ClearTileOut);
|
|
13
|
-
rpc ReadDir(ReadDirRequest) returns (ReadDirOut);
|
|
14
|
-
rpc CreateXML(CreateXMLRequest) returns (stream JobProgress); // streaming XML creation
|
|
15
|
-
rpc UploadXML(UploadXMLRequest) returns (UploadXMLOut);
|
|
16
|
-
rpc UploadRaster(UploadRasterRequest) returns (UploadRasterOut);
|
|
17
|
-
rpc GetRasterStatus(GetRasterStatusRequest) returns (GetStatusOut);
|
|
18
|
-
rpc GetStat(GetStatRequest) returns (GetStatOut);
|
|
19
|
-
rpc GetRender(GetRenderRequest) returns (GetRenderOut);
|
|
20
|
-
rpc GetLogs(GetLogsRequest) returns (GetLogsOut);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// ----------------------------
|
|
24
|
-
// Messages for MapService
|
|
25
|
-
// ----------------------------
|
|
26
|
-
message RenderTileRequest {
|
|
27
|
-
string name = 1;
|
|
28
|
-
string path = 2;
|
|
29
|
-
repeated double bbox = 3; // [minx, miny, maxx, maxy]
|
|
30
|
-
int32 width = 4;
|
|
31
|
-
int32 height = 5;
|
|
32
|
-
string ttl = 6; // "5m", "1h", "1d" or "0"
|
|
33
|
-
string debug = 7;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
message RenderTileOut {
|
|
37
|
-
string base64 = 1;
|
|
38
|
-
bool cache = 2;
|
|
39
|
-
string err = 3;
|
|
40
|
-
string xml_path = 4;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
message ClearTileRequest {
|
|
44
|
-
string name = 1;
|
|
45
|
-
string path = 2;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
message ClearTileOut {
|
|
49
|
-
string result = 1;
|
|
50
|
-
string err = 2;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
message ReadDirRequest {
|
|
54
|
-
string path = 1;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
message FileInfo {
|
|
58
|
-
string name = 1;
|
|
59
|
-
int64 size = 2;
|
|
60
|
-
string date = 3;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
message ReadDirOut {
|
|
64
|
-
bool exists = 1;
|
|
65
|
-
int32 count = 2;
|
|
66
|
-
repeated FileInfo files = 3;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
message CreateXMLRequest {
|
|
70
|
-
string path = 1;
|
|
71
|
-
int32 srid = 2;
|
|
72
|
-
int32 previewZoom = 3;
|
|
73
|
-
repeated string layers = 4;
|
|
74
|
-
bool vrt = 5;
|
|
75
|
-
string name = 6;
|
|
76
|
-
string debug = 7;
|
|
77
|
-
string nocache = 8;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
message UploadXMLRequest {
|
|
81
|
-
string name = 1;
|
|
82
|
-
string xml = 2;
|
|
83
|
-
string encoding = 3;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
message UploadXMLOut {
|
|
87
|
-
string status = 1;
|
|
88
|
-
string filepath = 2;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
message UploadRasterRequest {
|
|
92
|
-
string path = 1;
|
|
93
|
-
bytes data = 2;
|
|
94
|
-
bool chunked = 3;
|
|
95
|
-
int64 filesize = 4;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
message UploadRasterOut {
|
|
99
|
-
string status = 1;
|
|
100
|
-
int64 uploaded = 2;
|
|
101
|
-
bool finished = 3;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
message GetRasterStatusRequest {
|
|
105
|
-
string path = 1;
|
|
106
|
-
bool md5 = 2;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
message GetStatusOut {
|
|
110
|
-
bool exists = 1;
|
|
111
|
-
string size = 2;
|
|
112
|
-
bool finished = 3;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
message GetStatRequest {
|
|
116
|
-
string period = 1; // "5m", "1h", "1d"
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
message GetStatOut {
|
|
120
|
-
google.protobuf.Struct result = 1; // dynamic json structure, not bound by same value type like with map
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
message GetRenderRequest {
|
|
124
|
-
string name = 1;
|
|
125
|
-
string path = 2;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
message GetRenderOut {
|
|
129
|
-
string result = 1; // serialized object or placeholder
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
message GetLogsRequest {
|
|
133
|
-
string period = 1; // "5m", "1h", "1d"
|
|
134
|
-
string type = 2; // optional filter
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
message GetLogsOut {
|
|
138
|
-
repeated string result = 1;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
// ----------------------------
|
|
142
|
-
// Job Service Messages
|
|
143
|
-
// ----------------------------
|
|
144
|
-
message JobRequest {
|
|
145
|
-
string job_id = 1;
|
|
146
|
-
string xml_name = 2;
|
|
147
|
-
string xml_path = 3;
|
|
148
|
-
repeated string layers = 4;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
message JobProgress {
|
|
152
|
-
string message = 1;
|
|
153
|
-
string error = 2;
|
|
154
|
-
bool done = 3;
|
|
155
|
-
}
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
import "google/protobuf/struct.proto"; // after syntax!
|
|
4
|
+
|
|
5
|
+
package map;
|
|
6
|
+
|
|
7
|
+
// ----------------------------
|
|
8
|
+
// Map Service
|
|
9
|
+
// ----------------------------
|
|
10
|
+
service MapService {
|
|
11
|
+
rpc RenderTile(RenderTileRequest) returns (RenderTileOut);
|
|
12
|
+
rpc ClearTile(ClearTileRequest) returns (ClearTileOut);
|
|
13
|
+
rpc ReadDir(ReadDirRequest) returns (ReadDirOut);
|
|
14
|
+
rpc CreateXML(CreateXMLRequest) returns (stream JobProgress); // streaming XML creation
|
|
15
|
+
rpc UploadXML(UploadXMLRequest) returns (UploadXMLOut);
|
|
16
|
+
rpc UploadRaster(UploadRasterRequest) returns (UploadRasterOut);
|
|
17
|
+
rpc GetRasterStatus(GetRasterStatusRequest) returns (GetStatusOut);
|
|
18
|
+
rpc GetStat(GetStatRequest) returns (GetStatOut);
|
|
19
|
+
rpc GetRender(GetRenderRequest) returns (GetRenderOut);
|
|
20
|
+
rpc GetLogs(GetLogsRequest) returns (GetLogsOut);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// ----------------------------
|
|
24
|
+
// Messages for MapService
|
|
25
|
+
// ----------------------------
|
|
26
|
+
message RenderTileRequest {
|
|
27
|
+
string name = 1;
|
|
28
|
+
string path = 2;
|
|
29
|
+
repeated double bbox = 3; // [minx, miny, maxx, maxy]
|
|
30
|
+
int32 width = 4;
|
|
31
|
+
int32 height = 5;
|
|
32
|
+
string ttl = 6; // "5m", "1h", "1d" or "0"
|
|
33
|
+
string debug = 7;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
message RenderTileOut {
|
|
37
|
+
string base64 = 1;
|
|
38
|
+
bool cache = 2;
|
|
39
|
+
string err = 3;
|
|
40
|
+
string xml_path = 4;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
message ClearTileRequest {
|
|
44
|
+
string name = 1;
|
|
45
|
+
string path = 2;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
message ClearTileOut {
|
|
49
|
+
string result = 1;
|
|
50
|
+
string err = 2;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
message ReadDirRequest {
|
|
54
|
+
string path = 1;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
message FileInfo {
|
|
58
|
+
string name = 1;
|
|
59
|
+
int64 size = 2;
|
|
60
|
+
string date = 3;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
message ReadDirOut {
|
|
64
|
+
bool exists = 1;
|
|
65
|
+
int32 count = 2;
|
|
66
|
+
repeated FileInfo files = 3;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
message CreateXMLRequest {
|
|
70
|
+
string path = 1;
|
|
71
|
+
int32 srid = 2;
|
|
72
|
+
int32 previewZoom = 3;
|
|
73
|
+
repeated string layers = 4;
|
|
74
|
+
bool vrt = 5;
|
|
75
|
+
string name = 6;
|
|
76
|
+
string debug = 7;
|
|
77
|
+
string nocache = 8;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
message UploadXMLRequest {
|
|
81
|
+
string name = 1;
|
|
82
|
+
string xml = 2;
|
|
83
|
+
string encoding = 3;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
message UploadXMLOut {
|
|
87
|
+
string status = 1;
|
|
88
|
+
string filepath = 2;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
message UploadRasterRequest {
|
|
92
|
+
string path = 1;
|
|
93
|
+
bytes data = 2;
|
|
94
|
+
bool chunked = 3;
|
|
95
|
+
int64 filesize = 4;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
message UploadRasterOut {
|
|
99
|
+
string status = 1;
|
|
100
|
+
int64 uploaded = 2;
|
|
101
|
+
bool finished = 3;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
message GetRasterStatusRequest {
|
|
105
|
+
string path = 1;
|
|
106
|
+
bool md5 = 2;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
message GetStatusOut {
|
|
110
|
+
bool exists = 1;
|
|
111
|
+
string size = 2;
|
|
112
|
+
bool finished = 3;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
message GetStatRequest {
|
|
116
|
+
string period = 1; // "5m", "1h", "1d"
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
message GetStatOut {
|
|
120
|
+
google.protobuf.Struct result = 1; // dynamic json structure, not bound by same value type like with map
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
message GetRenderRequest {
|
|
124
|
+
string name = 1;
|
|
125
|
+
string path = 2;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
message GetRenderOut {
|
|
129
|
+
string result = 1; // serialized object or placeholder
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
message GetLogsRequest {
|
|
133
|
+
string period = 1; // "5m", "1h", "1d"
|
|
134
|
+
string type = 2; // optional filter
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
message GetLogsOut {
|
|
138
|
+
repeated string result = 1;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// ----------------------------
|
|
142
|
+
// Job Service Messages
|
|
143
|
+
// ----------------------------
|
|
144
|
+
message JobRequest {
|
|
145
|
+
string job_id = 1;
|
|
146
|
+
string xml_name = 2;
|
|
147
|
+
string xml_path = 3;
|
|
148
|
+
repeated string layers = 4;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
message JobProgress {
|
|
152
|
+
string message = 1;
|
|
153
|
+
string error = 2;
|
|
154
|
+
bool done = 3;
|
|
155
|
+
}
|
package/server/plugins/vite.js
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
import fs from 'node:fs';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { createServer } from 'vite';
|
|
4
|
-
|
|
5
|
-
import { config } from '@opengis/fastify-table/utils.js';
|
|
6
|
-
|
|
7
|
-
const isProduction = process.env.NODE_ENV === 'production' || config.production;
|
|
8
|
-
|
|
9
|
-
console.log({ isProduction });
|
|
10
|
-
|
|
11
|
-
async function plugin(fastify, opts) {
|
|
12
|
-
const viteServer = !isProduction ? await createServer({
|
|
13
|
-
root: 'admin',
|
|
14
|
-
server: {
|
|
15
|
-
middlewareMode: true,
|
|
16
|
-
},
|
|
17
|
-
}) : null;
|
|
18
|
-
|
|
19
|
-
if (!isProduction) {
|
|
20
|
-
const dir1 = process.cwd();
|
|
21
|
-
viteServer.watcher.add(dir1);
|
|
22
|
-
viteServer.watcher.on('all', (d, t) => {
|
|
23
|
-
if (!t.includes('module')) return;
|
|
24
|
-
console.log(d, t);
|
|
25
|
-
viteServer.ws.send({ type: 'full-reload' });
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
// this is middleware for vite's dev server
|
|
29
|
-
fastify.addHook('onRequest', async (req, reply) => {
|
|
30
|
-
const { user } = req.session?.passport || {};
|
|
31
|
-
// console.log(req.url);
|
|
32
|
-
|
|
33
|
-
const next = () => new Promise((resolve) => {
|
|
34
|
-
viteServer.middlewares(req.raw, reply.raw, () => resolve());
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
await next();
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
async function staticFile(req, reply) {
|
|
42
|
-
const assetsDir = 'admin/dist';
|
|
43
|
-
|
|
44
|
-
const filePathDist = path.join(assetsDir, req.url.replace('/public/', '/'));
|
|
45
|
-
const filePathAssets = path.join('assets', req.url.replace('/assets', ''));
|
|
46
|
-
|
|
47
|
-
const filePath = fs.existsSync(filePathDist) ? filePathDist : filePathAssets; // check dist or assets
|
|
48
|
-
const ext = path.extname(filePath);
|
|
49
|
-
|
|
50
|
-
if (!fs.existsSync(filePath)) return { status: 404, message: 'not found' };
|
|
51
|
-
const mime = {
|
|
52
|
-
'.js': 'text/javascript', '.css': 'text/css', '.woff2': 'application/font-woff', '.png': 'image/png', '.svg': 'image/svg+xml', '.jpg': 'image/jpg',
|
|
53
|
-
}[ext];
|
|
54
|
-
reply.headers({ 'Cache-control': 'max-age=3600, public', 'Content-Encoding': 'identity' });
|
|
55
|
-
|
|
56
|
-
const stream = fs.createReadStream(filePath);
|
|
57
|
-
return mime ? reply.type(mime).send(stream) : stream;
|
|
58
|
-
}
|
|
59
|
-
fastify.get('/assets/*', staticFile);
|
|
60
|
-
fastify.get('/public/*', staticFile);
|
|
61
|
-
|
|
62
|
-
fastify.get('*', async (req, reply) => {
|
|
63
|
-
const { user } = req.session?.passport || {};
|
|
64
|
-
// console.log(req.url);
|
|
65
|
-
if (!user && req.url !== '/login') {
|
|
66
|
-
return reply.redirect('/login');
|
|
67
|
-
}
|
|
68
|
-
if (!isProduction) return null; // admin vite
|
|
69
|
-
const stream = fs.createReadStream('admin/dist/index.html');
|
|
70
|
-
return reply.type('text/html').send(stream);
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export default plugin;
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { createServer } from 'vite';
|
|
4
|
+
|
|
5
|
+
import { config } from '@opengis/fastify-table/utils.js';
|
|
6
|
+
|
|
7
|
+
const isProduction = process.env.NODE_ENV === 'production' || config.production;
|
|
8
|
+
|
|
9
|
+
console.log({ isProduction });
|
|
10
|
+
|
|
11
|
+
async function plugin(fastify, opts) {
|
|
12
|
+
const viteServer = !isProduction ? await createServer({
|
|
13
|
+
root: 'admin',
|
|
14
|
+
server: {
|
|
15
|
+
middlewareMode: true,
|
|
16
|
+
},
|
|
17
|
+
}) : null;
|
|
18
|
+
|
|
19
|
+
if (!isProduction) {
|
|
20
|
+
const dir1 = process.cwd();
|
|
21
|
+
viteServer.watcher.add(dir1);
|
|
22
|
+
viteServer.watcher.on('all', (d, t) => {
|
|
23
|
+
if (!t.includes('module')) return;
|
|
24
|
+
console.log(d, t);
|
|
25
|
+
viteServer.ws.send({ type: 'full-reload' });
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
// this is middleware for vite's dev server
|
|
29
|
+
fastify.addHook('onRequest', async (req, reply) => {
|
|
30
|
+
const { user } = req.session?.passport || {};
|
|
31
|
+
// console.log(req.url);
|
|
32
|
+
|
|
33
|
+
const next = () => new Promise((resolve) => {
|
|
34
|
+
viteServer.middlewares(req.raw, reply.raw, () => resolve());
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
await next();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async function staticFile(req, reply) {
|
|
42
|
+
const assetsDir = 'admin/dist';
|
|
43
|
+
|
|
44
|
+
const filePathDist = path.join(assetsDir, req.url.replace('/public/', '/'));
|
|
45
|
+
const filePathAssets = path.join('assets', req.url.replace('/assets', ''));
|
|
46
|
+
|
|
47
|
+
const filePath = fs.existsSync(filePathDist) ? filePathDist : filePathAssets; // check dist or assets
|
|
48
|
+
const ext = path.extname(filePath);
|
|
49
|
+
|
|
50
|
+
if (!fs.existsSync(filePath)) return { status: 404, message: 'not found' };
|
|
51
|
+
const mime = {
|
|
52
|
+
'.js': 'text/javascript', '.css': 'text/css', '.woff2': 'application/font-woff', '.png': 'image/png', '.svg': 'image/svg+xml', '.jpg': 'image/jpg',
|
|
53
|
+
}[ext];
|
|
54
|
+
reply.headers({ 'Cache-control': 'max-age=3600, public', 'Content-Encoding': 'identity' });
|
|
55
|
+
|
|
56
|
+
const stream = fs.createReadStream(filePath);
|
|
57
|
+
return mime ? reply.type(mime).send(stream) : stream;
|
|
58
|
+
}
|
|
59
|
+
fastify.get('/assets/*', staticFile);
|
|
60
|
+
fastify.get('/public/*', staticFile);
|
|
61
|
+
|
|
62
|
+
fastify.get('*', async (req, reply) => {
|
|
63
|
+
const { user } = req.session?.passport || {};
|
|
64
|
+
// console.log(req.url);
|
|
65
|
+
if (!user && req.url !== '/login') {
|
|
66
|
+
return reply.redirect('/login');
|
|
67
|
+
}
|
|
68
|
+
if (!isProduction) return null; // admin vite
|
|
69
|
+
const stream = fs.createReadStream('admin/dist/index.html');
|
|
70
|
+
return reply.type('text/html').send(stream);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export default plugin;
|