@opengis/admin 0.1.27 → 0.1.28

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.
Files changed (102) hide show
  1. package/README.md +29 -29
  2. package/config.js +4 -4
  3. package/dist/{IconSearch-CTjruqP_.js → IconSearch-B9h4uJrQ.js} +1 -1
  4. package/dist/{add-page-_f-u6pKm.js → add-page-DT_V_-dX.js} +1 -1
  5. package/dist/{admin-interface-BEGo6Nou.js → admin-interface-CGDa_i8E.js} +285 -290
  6. package/dist/{admin-view-KQUUMduA.js → admin-view-D_gnk37B.js} +3 -3
  7. package/dist/admin.js +1 -1
  8. package/dist/admin.umd.cjs +55 -55
  9. package/dist/{card-page-aj2AtGvv.js → card-page-B-KPpKLO.js} +19 -19
  10. package/dist/{card-view-jKx2Oevk.js → card-view-ChQ86dRT.js} +1 -1
  11. package/dist/{edit-page-BuolDXZx.js → edit-page-ChpgKkhK.js} +1 -1
  12. package/dist/{import-file-BB530Z8E.js → import-file-rpq4v06F.js} +9426 -8825
  13. package/dist/style.css +1 -1
  14. package/module/settings/card/admin.roles.table/access.hbs +27 -27
  15. package/module/settings/card/admin.roles.table/general_info.hbs +16 -16
  16. package/module/settings/card/admin.roles.table/index.yml +14 -12
  17. package/module/settings/card/admin.roles.table/users.hbs +27 -27
  18. package/module/settings/card/admin.routes.table/general_info.hbs +40 -40
  19. package/module/settings/card/admin.routes.table/index.yml +8 -8
  20. package/module/settings/card/admin.routes.table/users.hbs +33 -33
  21. package/module/settings/card/admin.users.table/general_info.hbs +25 -25
  22. package/module/settings/card/admin.users.table/index.yml +12 -12
  23. package/module/settings/card/admin.users.table/logs.hbs +30 -30
  24. package/module/settings/card/admin.users.table/user_roles.hbs +24 -24
  25. package/module/settings/cls/core.actions.json +13 -13
  26. package/module/settings/cls/core.scope.json +13 -13
  27. package/module/settings/cls/properties.site_status.json +13 -13
  28. package/module/settings/cls/properties.widget_status.json +13 -13
  29. package/module/settings/cls/users.user_type.json +13 -13
  30. package/module/settings/form/admin.access.form.json +36 -36
  31. package/module/settings/form/admin.properties.form.json +15 -15
  32. package/module/settings/form/admin.roles.form.json +19 -19
  33. package/module/settings/form/admin.routes.form.json +25 -25
  34. package/module/settings/form/admin.user_properties.form.json +15 -15
  35. package/module/settings/form/admin.user_roles.form.json +21 -21
  36. package/module/settings/form/admin.users.form.json +150 -164
  37. package/module/settings/form/user.user_roles.form.json +13 -13
  38. package/module/settings/interface/admin.properties.json +4 -4
  39. package/module/settings/interface/admin.roles.json +4 -4
  40. package/module/settings/interface/admin.routes.json +4 -4
  41. package/module/settings/interface/admin.users.json +4 -4
  42. package/module/settings/menu.json +39 -39
  43. package/module/settings/select/core.roles.json +2 -2
  44. package/module/settings/select/core.user_uid.sql +1 -1
  45. package/module/settings/table/admin.access.table.json +77 -77
  46. package/module/settings/table/admin.properties.table.json +33 -33
  47. package/module/settings/table/admin.roles.table.json +58 -58
  48. package/module/settings/table/admin.routes.table.json +55 -55
  49. package/module/settings/table/admin.user_properties.table.json +28 -28
  50. package/module/settings/table/admin.user_roles.table.json +66 -66
  51. package/module/settings/table/admin.users.table.json +119 -125
  52. package/package.json +66 -66
  53. package/plugin.js +25 -25
  54. package/server/helpers/controllers/badge.js +11 -11
  55. package/server/helpers/controllers/hb.js +2 -2
  56. package/server/helpers/controllers/map.js +2 -2
  57. package/server/helpers/controllers/mls.js +2 -2
  58. package/server/helpers/controllers/vue.js +2 -2
  59. package/server/helpers/index.mjs +13 -13
  60. package/server/plugins/docs.js +28 -28
  61. package/server/plugins/hook.js +161 -161
  62. package/server/plugins/vite.js +69 -69
  63. package/server/routes/data/controllers/cardData.js +56 -31
  64. package/server/routes/data/controllers/cardTabData.js +40 -0
  65. package/server/routes/data/controllers/funcs/getFilterSQL/index.js +85 -85
  66. package/server/routes/data/controllers/funcs/getFilterSQL/util/formatValue.js +142 -142
  67. package/server/routes/data/controllers/funcs/getFilterSQL/util/getCustomQuery.js +13 -13
  68. package/server/routes/data/controllers/funcs/getFilterSQL/util/getFilterQuery.js +67 -67
  69. package/server/routes/data/controllers/funcs/getFilterSQL/util/getOptimizedQuery.js +12 -12
  70. package/server/routes/data/controllers/funcs/getFilterSQL/util/getTableSql.js +34 -34
  71. package/server/routes/data/controllers/tableData.js +121 -121
  72. package/server/routes/data/controllers/tableDataId.js +27 -27
  73. package/server/routes/data/controllers/tableFilter.js +54 -54
  74. package/server/routes/data/controllers/utils/assignTokens.js +30 -30
  75. package/server/routes/data/controllers/utils/getColumns.js +21 -21
  76. package/server/routes/data/index.mjs +12 -10
  77. package/server/routes/menu/controllers/getMenu.js +33 -33
  78. package/server/routes/menu/index.mjs +5 -5
  79. package/server/routes/properties/controllers/admin.properties.get.js +29 -29
  80. package/server/routes/properties/controllers/user.properties.get.js +34 -34
  81. package/server/routes/properties/controllers/user.properties.post.js +30 -30
  82. package/server/routes/properties/funcs/getSettings.js +56 -56
  83. package/server/routes/properties/funcs/setSettings.js +44 -44
  84. package/server/routes/properties/funcs/utils/dataInsert.js +26 -26
  85. package/server/routes/properties/index.mjs +26 -26
  86. package/server/routes/root.mjs +3 -3
  87. package/server/routes/templates/controllers/getTemplate.js +14 -14
  88. package/server/routes/templates/index.mjs +14 -14
  89. package/server/templates/cls/itree.recrzone_category.json +73 -73
  90. package/server/templates/cls/test.json +9 -9
  91. package/server/templates/form/admin.user_cls.data.form.json +49 -49
  92. package/server/templates/form/admin.user_group_rel.form.json +21 -21
  93. package/server/templates/form/cp_building.form.json +32 -32
  94. package/server/templates/form/form-user-pass.json +10 -10
  95. package/server/templates/form/form-user_group.json +39 -39
  96. package/server/templates/form/form-users.json +156 -156
  97. package/server/templates/form/user_group_access.form.json +22 -22
  98. package/server/templates/select/account_id.json +2 -2
  99. package/server/templates/table/gis.dataset.table.json +43 -43
  100. package/server/templates/table/management.user_group.table.json +112 -112
  101. package/server/templates/table/management.users.table.json +126 -126
  102. package/utils.js +8 -8
@@ -1,126 +1,120 @@
1
- {
2
- "key": "uid",
3
- "ua": "Користувачі",
4
- "table": "admin.users",
5
- "form": "admin.users.form",
6
- "order": "cdate desc",
7
- "action": [
8
- "edit",
9
- "del"
10
- ],
11
- "meta": {
12
- "title": "user_name",
13
- "search": "sur_name,user_name,uid,father_name,email,phone,login"
14
- },
15
- "sql": [
16
- {
17
- "sql": "select count(*) as group_count from admin.user_group_rel where user_uid=t.uid",
18
- "name": "group_count_sql"
19
- },
20
- {
21
- "sql": "select concat(user_name, ' ', sur_name, ' ', father_name, ' ') as full_name",
22
- "name": "full_name_sql"
23
- },
24
- {
25
- "sql": "select string_agg(group_name,',') as groups from admin.user_group where user_group_id in (select user_group_id from admin.user_group_rel where user_uid=t.uid)",
26
- "name": "group_list_sql"
27
- }
28
- ],
29
- "columns": [
30
- {
31
- "ua": "ПІБ",
32
- "name": "full_name",
33
- "format": "text"
34
- },
35
- {
36
- "ua": "Логін",
37
- "name": "login",
38
- "format": "text"
39
- },
40
- {
41
- "ua": "Email",
42
- "name": "email",
43
- "hidden": true,
44
- "format": "text"
45
- },
46
- {
47
- "ua": "РНОКПП",
48
- "name": "user_rnokpp",
49
- "hidden": true,
50
- "format": "text"
51
- },
52
- {
53
- "ua": "Код ЄДРПОУ",
54
- "name": "organ_edrpou",
55
- "hidden": true,
56
- "format": "text"
57
- },
58
- {
59
- "name": "group_count",
60
- "ua": "Кількість груп",
61
- "format": "text"
62
- },
63
- {
64
- "name": "groups",
65
- "ua": "Групи",
66
- "hidden": true,
67
- "format": "text"
68
- },
69
- {
70
- "name": "cdate",
71
- "ua": "Створено",
72
- "format": "date"
73
- },
74
- {
75
- "name": "editor_date",
76
- "ua": "Дата останньої активності",
77
- "format": "date"
78
- },
79
- {
80
- "name": "enabled",
81
- "ua": "Вимикач",
82
- "data": "yes_no",
83
- "format": "select"
84
- }
85
- ],
86
- "filter_list": [
87
- {
88
- "ua": "РНОКПП",
89
- "name": "user_rnokpp",
90
- "type": "Text"
91
- },
92
- {
93
- "ua": "Код ЄДРПОУ",
94
- "name": "organ_edrpou",
95
- "type": "Text"
96
- },
97
- {
98
- "ua": "Email",
99
- "name": "email",
100
- "type": "Text"
101
- },
102
- {
103
- "en": "Group",
104
- "ua": "Група",
105
- "name": "groups",
106
- "type": "Text"
107
- },
108
- {
109
- "en": "On/Off",
110
- "ua": "On/Off",
111
- "data": "enabled",
112
- "name": "enabled",
113
- "type": "Check"
114
- },
115
- {
116
- "ua": "Дата створення",
117
- "name": "cdate",
118
- "type": "Date"
119
- },
120
- {
121
- "name": "editor_date",
122
- "type": "Date",
123
- "ua": "Дата останньої активності"
124
- }
125
- ]
1
+ {
2
+ "key": "uid",
3
+ "ua": "Користувачі",
4
+ "table": "admin.users",
5
+ "form": "admin.users.form",
6
+ "order": "cdate desc",
7
+ "action": [
8
+ "edit",
9
+ "del"
10
+ ],
11
+ "meta": {
12
+ "title": "user_name",
13
+ "search": "sur_name,user_name,uid,father_name,email,phone,login"
14
+ },
15
+ "sql": [
16
+ {
17
+ "sql": "select count(*) as group_count from admin.user_group_rel where user_uid=t.uid",
18
+ "name": "group_count_sql"
19
+ },
20
+ {
21
+ "sql": "select concat(user_name, ' ', sur_name, ' ', father_name, ' ') as full_name",
22
+ "name": "full_name_sql"
23
+ },
24
+ {
25
+ "sql": "select string_agg(group_name,',') as groups from admin.user_group where user_group_id in (select user_group_id from admin.user_group_rel where user_uid=t.uid)",
26
+ "name": "group_list_sql"
27
+ }
28
+ ],
29
+ "columns": [
30
+ {
31
+ "ua": "ПІБ",
32
+ "name": "full_name",
33
+ "format": "text"
34
+ },
35
+ {
36
+ "ua": "Логін",
37
+ "name": "login",
38
+ "format": "text"
39
+ },
40
+ {
41
+ "ua": "Email",
42
+ "name": "email",
43
+ "hidden": true,
44
+ "format": "text"
45
+ },
46
+ {
47
+ "ua": "РНОКПП",
48
+ "name": "user_rnokpp",
49
+ "hidden": true,
50
+ "format": "text"
51
+ },
52
+ {
53
+ "name": "group_count",
54
+ "ua": "Кількість груп",
55
+ "format": "text"
56
+ },
57
+ {
58
+ "name": "groups",
59
+ "ua": "Групи",
60
+ "hidden": true,
61
+ "format": "text"
62
+ },
63
+ {
64
+ "name": "cdate",
65
+ "ua": "Створено",
66
+ "format": "date"
67
+ },
68
+ {
69
+ "name": "editor_date",
70
+ "ua": "Дата останньої активності",
71
+ "format": "date"
72
+ },
73
+ {
74
+ "name": "enabled",
75
+ "ua": "Вимикач",
76
+ "data": "yes_no",
77
+ "format": "select"
78
+ }
79
+ ],
80
+ "filter_list": [
81
+ {
82
+ "ua": "РНОКПП",
83
+ "name": "user_rnokpp",
84
+ "type": "Text"
85
+ },
86
+ {
87
+ "ua": "Код ЄДРПОУ",
88
+ "name": "organ_edrpou",
89
+ "type": "Text"
90
+ },
91
+ {
92
+ "ua": "Email",
93
+ "name": "email",
94
+ "type": "Text"
95
+ },
96
+ {
97
+ "en": "Group",
98
+ "ua": "Група",
99
+ "name": "groups",
100
+ "type": "Text"
101
+ },
102
+ {
103
+ "en": "On/Off",
104
+ "ua": "On/Off",
105
+ "data": "enabled",
106
+ "name": "enabled",
107
+ "type": "Check"
108
+ },
109
+ {
110
+ "ua": "Дата створення",
111
+ "name": "cdate",
112
+ "type": "Date"
113
+ },
114
+ {
115
+ "name": "editor_date",
116
+ "type": "Date",
117
+ "ua": "Дата останньої активності"
118
+ }
119
+ ]
126
120
  }
package/package.json CHANGED
@@ -1,67 +1,67 @@
1
- {
2
- "name": "@opengis/admin",
3
- "version": "0.1.27",
4
- "description": "This project Softpro Admin",
5
- "main": "dist/admin.js",
6
- "type": "module",
7
- "directories": {
8
- "test": "test"
9
- },
10
- "files": [
11
- "dist/*",
12
- "module/*",
13
- "server/*",
14
- "plugin.js",
15
- "utils.js",
16
- "config.js"
17
- ],
18
- "scripts": {
19
- "test": "node --test test/**/*.test.js",
20
- "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
21
- "build": "vite build",
22
- "build-app": "cross-env APP=true vite build",
23
- "admin": "cross-env NODE_ENV=admin npm run start",
24
- "admin1": "cross-env NODE_ENV=admin1 npm run start",
25
- "prod": "cross-env NODE_ENV=production npm run start",
26
- "start": "node --watch-path=server server vite ",
27
- "docs:dev": "vitepress dev docs",
28
- "docs:build": "vitepress build docs",
29
- "docs:preview": "vitepress preview docs"
30
- },
31
- "keywords": [],
32
- "author": "Softpro",
33
- "license": "ISC",
34
- "dependencies": {
35
- "@opengis/fastify-auth": "^1.0.33",
36
- "@opengis/fastify-file": "^1.0.17",
37
- "@opengis/fastify-table": "^1.1.16",
38
- "@opengis/v3-core": "^0.1.92",
39
- "@opengis/v3-filter": "^0.0.31",
40
- "@turf/turf": "^7.1.0",
41
- "@vitejs/plugin-vue": "^5.0.4",
42
- "close-with-grace": "^1.3.0",
43
- "cross-env": "^7.0.3",
44
- "fastify": "^4.26.1",
45
- "fastify-plugin": "^4.0.0",
46
- "maplibre-gl": "^4.7.0",
47
- "moment": "^2.30.1",
48
- "vite": "^5.1.4",
49
- "vue": "^3.4.21",
50
- "vue-router": "^4.3.0"
51
- },
52
- "devDependencies": {
53
- "@panzoom/panzoom": "^4.5.1",
54
- "@vue/eslint-config-typescript": "^12.0.0",
55
- "eslint": "^8.49.0",
56
- "eslint-config-airbnb": "^19.0.4",
57
- "eslint-plugin-import": "^2.25.3",
58
- "eslint-plugin-vue": "^9.17.0",
59
- "markdown-it-abbr": "^2.0.0",
60
- "mermaid": "^10.9.0",
61
- "sass-embedded": "^1.79.1",
62
- "vitepress": "^1.1.3",
63
- "vitepress-plugin-mermaid": "^2.0.16",
64
- "vitepress-plugin-tabs": "^0.5.0",
65
- "vitepress-sidebar": "^1.22.0"
66
- }
1
+ {
2
+ "name": "@opengis/admin",
3
+ "version": "0.1.28",
4
+ "description": "This project Softpro Admin",
5
+ "main": "dist/admin.js",
6
+ "type": "module",
7
+ "directories": {
8
+ "test": "test"
9
+ },
10
+ "files": [
11
+ "dist/*",
12
+ "module/*",
13
+ "server/*",
14
+ "plugin.js",
15
+ "utils.js",
16
+ "config.js"
17
+ ],
18
+ "scripts": {
19
+ "test": "node --test test/**/*.test.js",
20
+ "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
21
+ "build": "vite build",
22
+ "build-app": "cross-env APP=true vite build",
23
+ "admin": "cross-env NODE_ENV=admin npm run start",
24
+ "admin1": "cross-env NODE_ENV=admin1 npm run start",
25
+ "prod": "cross-env NODE_ENV=production npm run start",
26
+ "start": "node --watch-path=server server vite ",
27
+ "docs:dev": "vitepress dev docs",
28
+ "docs:build": "vitepress build docs",
29
+ "docs:preview": "vitepress preview docs"
30
+ },
31
+ "keywords": [],
32
+ "author": "Softpro",
33
+ "license": "ISC",
34
+ "dependencies": {
35
+ "@opengis/fastify-auth": "^1.0.33",
36
+ "@opengis/fastify-file": "^1.0.17",
37
+ "@opengis/fastify-table": "^1.1.16",
38
+ "@opengis/v3-core": "^0.1.92",
39
+ "@opengis/v3-filter": "^0.0.31",
40
+ "@turf/turf": "^7.1.0",
41
+ "@vitejs/plugin-vue": "^5.0.4",
42
+ "close-with-grace": "^1.3.0",
43
+ "cross-env": "^7.0.3",
44
+ "fastify": "^4.26.1",
45
+ "fastify-plugin": "^4.0.0",
46
+ "maplibre-gl": "^4.7.0",
47
+ "moment": "^2.30.1",
48
+ "vite": "^5.1.4",
49
+ "vue": "^3.4.21",
50
+ "vue-router": "^4.3.0"
51
+ },
52
+ "devDependencies": {
53
+ "@panzoom/panzoom": "^4.5.1",
54
+ "@vue/eslint-config-typescript": "^12.0.0",
55
+ "eslint": "^8.49.0",
56
+ "eslint-config-airbnb": "^19.0.4",
57
+ "eslint-plugin-import": "^2.25.3",
58
+ "eslint-plugin-vue": "^9.17.0",
59
+ "markdown-it-abbr": "^2.0.0",
60
+ "mermaid": "^10.9.0",
61
+ "sass-embedded": "^1.79.1",
62
+ "vitepress": "^1.1.3",
63
+ "vitepress-plugin-mermaid": "^2.0.16",
64
+ "vitepress-plugin-tabs": "^0.5.0",
65
+ "vitepress-sidebar": "^1.22.0"
66
+ }
67
67
  }
package/plugin.js CHANGED
@@ -1,26 +1,26 @@
1
- import fp from 'fastify-plugin';
2
- import config from './config.js';
3
- config.prefix = config.prefix || '/api'
4
-
5
-
6
- async function plugin(fastify, opts = config) {
7
- // const prefix = config.prefix || '/api';
8
-
9
- // core
10
-
11
-
12
- fastify.register(import('./server/helpers/index.mjs'), opts);
13
- // fastify.register(import('@opengis/fastify-auth'), config);
14
-
15
- // fastify.register(import('./server/plugins/vike.js'));
16
-
17
-
18
- // API
19
-
20
- fastify.register(import('./server/routes/properties/index.mjs'), opts);
21
- fastify.register(import('./server/routes/templates/index.mjs'), opts);
22
- fastify.register(import('./server/routes/menu/index.mjs'), opts);
23
- fastify.register(import('./server/routes/data/index.mjs'), opts);
24
-
25
- }
1
+ import fp from 'fastify-plugin';
2
+ import config from './config.js';
3
+ config.prefix = config.prefix || '/api'
4
+
5
+
6
+ async function plugin(fastify, opts = config) {
7
+ // const prefix = config.prefix || '/api';
8
+
9
+ // core
10
+
11
+
12
+ fastify.register(import('./server/helpers/index.mjs'), opts);
13
+ // fastify.register(import('@opengis/fastify-auth'), config);
14
+
15
+ // fastify.register(import('./server/plugins/vike.js'));
16
+
17
+
18
+ // API
19
+
20
+ fastify.register(import('./server/routes/properties/index.mjs'), opts);
21
+ fastify.register(import('./server/routes/templates/index.mjs'), opts);
22
+ fastify.register(import('./server/routes/menu/index.mjs'), opts);
23
+ fastify.register(import('./server/routes/data/index.mjs'), opts);
24
+
25
+ }
26
26
  export default fp(plugin)
@@ -1,12 +1,12 @@
1
- export default async function badge(data, options = {}) {
2
- if (!data) return '-';
3
- //const cls = await getSelect(options.data, { val: data, full: 1 });
4
-
5
- return data;
6
- /*const html = cls?.map((el) => {
7
- const color = bscolor[el.color] || el.color || '#aaa';
8
- return `<span class="el-tag el-tag--mini" style="color:${color || '#aaa'};border-color:${color || '#aaa'};background:unset;">
9
- ${funcs.locale(el.id, { lang: root.lang, prefix: opt.data, type: 'cls' }) || el.text}</span>`;
10
- }).join(', ');
11
- return html;*/
1
+ export default async function badge(data, options = {}) {
2
+ if (!data) return '-';
3
+ //const cls = await getSelect(options.data, { val: data, full: 1 });
4
+
5
+ return data;
6
+ /*const html = cls?.map((el) => {
7
+ const color = bscolor[el.color] || el.color || '#aaa';
8
+ return `<span class="el-tag el-tag--mini" style="color:${color || '#aaa'};border-color:${color || '#aaa'};background:unset;">
9
+ ${funcs.locale(el.id, { lang: root.lang, prefix: opt.data, type: 'cls' }) || el.text}</span>`;
10
+ }).join(', ');
11
+ return html;*/
12
12
  }
@@ -1,3 +1,3 @@
1
- export default async function _hb() {
2
- return '';
1
+ export default async function _hb() {
2
+ return '';
3
3
  }
@@ -1,3 +1,3 @@
1
- export default async function map() {
2
- return '';
1
+ export default async function map() {
2
+ return '';
3
3
  }
@@ -1,3 +1,3 @@
1
- export default async function _mls(data, options={}) {
2
- return data.hash?.ua || options?.hash?.ua || '';
1
+ export default async function _mls(data, options={}) {
2
+ return data.hash?.ua || options?.hash?.ua || '';
3
3
  }
@@ -1,3 +1,3 @@
1
- export default async function _vue() {
2
- return '';
1
+ export default async function _vue() {
2
+ return '';
3
3
  }
@@ -1,13 +1,13 @@
1
- import _hb from "./controllers/hb.js";
2
- import _vue from "./controllers/vue.js";
3
- import map from "./controllers/map.js";
4
- import _mls from "./controllers/mls.js";
5
- import badge from "./controllers/badge.js";
6
-
7
- export default async function route(fastify) {
8
- fastify.handlebars.registerHelper('_hb', _hb);
9
- fastify.handlebars.registerHelper('_vue', _vue);
10
- fastify.handlebars.registerHelper('map', map);
11
- fastify.handlebars.registerHelper('mls', _mls);
12
- fastify.handlebars.registerHelper('badge', badge);
13
- }
1
+ import _hb from "./controllers/hb.js";
2
+ import _vue from "./controllers/vue.js";
3
+ import map from "./controllers/map.js";
4
+ import _mls from "./controllers/mls.js";
5
+ import badge from "./controllers/badge.js";
6
+
7
+ export default async function route(fastify) {
8
+ fastify.handlebars.registerHelper('_hb', _hb);
9
+ fastify.handlebars.registerHelper('_vue', _vue);
10
+ fastify.handlebars.registerHelper('map', map);
11
+ fastify.handlebars.registerHelper('mls', _mls);
12
+ fastify.handlebars.registerHelper('badge', badge);
13
+ }
@@ -1,28 +1,28 @@
1
- 'use strict'
2
-
3
- import path, { dirname } from 'path';
4
- import { fileURLToPath } from 'url';
5
- import fs from 'fs';
6
-
7
- const dir = dirname(fileURLToPath(import.meta.url));
8
- const root = `${dir}/../../`;
9
-
10
-
11
- async function plugin(fastify, opts) {
12
- fastify.get('/docs*', async (req, reply) => {
13
- if (!fs.existsSync(path.join(root, 'docs/.vitepress/dist/'))) {
14
- return reply.status(404).send('docs not exists');
15
- }
16
- const { params } = req;
17
- const url = params['*']
18
- const filePath = url && url[url.length - 1] !== '/' ? path.join(root, 'docs/.vitepress/dist/', url) : path.join(root, 'docs/.vitepress/dist/', url, 'index.html')
19
- const ext = path.extname(filePath);
20
- const mime = {
21
- '.js': 'text/javascript', '.css': 'text/css', '.woff2': 'application/font-woff', '.png': 'image/png', '.svg': 'image/svg+xml', '.jpg': 'image/jpg'
22
- }[ext];
23
- const stream = fs.createReadStream(filePath);
24
- return mime ? reply.type(mime).send(stream) : stream;
25
-
26
- })
27
- }
28
- export default plugin;
1
+ 'use strict'
2
+
3
+ import path, { dirname } from 'path';
4
+ import { fileURLToPath } from 'url';
5
+ import fs from 'fs';
6
+
7
+ const dir = dirname(fileURLToPath(import.meta.url));
8
+ const root = `${dir}/../../`;
9
+
10
+
11
+ async function plugin(fastify, opts) {
12
+ fastify.get('/docs*', async (req, reply) => {
13
+ if (!fs.existsSync(path.join(root, 'docs/.vitepress/dist/'))) {
14
+ return reply.status(404).send('docs not exists');
15
+ }
16
+ const { params } = req;
17
+ const url = params['*']
18
+ const filePath = url && url[url.length - 1] !== '/' ? path.join(root, 'docs/.vitepress/dist/', url) : path.join(root, 'docs/.vitepress/dist/', url, 'index.html')
19
+ const ext = path.extname(filePath);
20
+ const mime = {
21
+ '.js': 'text/javascript', '.css': 'text/css', '.woff2': 'application/font-woff', '.png': 'image/png', '.svg': 'image/svg+xml', '.jpg': 'image/jpg'
22
+ }[ext];
23
+ const stream = fs.createReadStream(filePath);
24
+ return mime ? reply.type(mime).send(stream) : stream;
25
+
26
+ })
27
+ }
28
+ export default plugin;