update
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@kevisual/api",
|
"name": "@kevisual/api",
|
||||||
"version": "0.0.8",
|
"version": "0.0.9",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "mod.ts",
|
"main": "mod.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -32,6 +32,7 @@
|
|||||||
"fast-glob": "^3.3.3"
|
"fast-glob": "^3.3.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@kevisual/js-filter": "^0.0.1",
|
||||||
"@kevisual/load": "^0.0.6",
|
"@kevisual/load": "^0.0.6",
|
||||||
"es-toolkit": "^1.43.0",
|
"es-toolkit": "^1.43.0",
|
||||||
"nanoid": "^5.1.6"
|
"nanoid": "^5.1.6"
|
||||||
|
|||||||
26
pnpm-lock.yaml
generated
26
pnpm-lock.yaml
generated
@@ -8,6 +8,9 @@ importers:
|
|||||||
|
|
||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
'@kevisual/js-filter':
|
||||||
|
specifier: ^0.0.1
|
||||||
|
version: 0.0.1
|
||||||
'@kevisual/load':
|
'@kevisual/load':
|
||||||
specifier: ^0.0.6
|
specifier: ^0.0.6
|
||||||
version: 0.0.6
|
version: 0.0.6
|
||||||
@@ -25,8 +28,8 @@ importers:
|
|||||||
specifier: ^0.0.33
|
specifier: ^0.0.33
|
||||||
version: 0.0.33
|
version: 0.0.33
|
||||||
'@kevisual/router':
|
'@kevisual/router':
|
||||||
specifier: ^0.0.41
|
specifier: ^0.0.51
|
||||||
version: 0.0.41
|
version: 0.0.51
|
||||||
'@kevisual/types':
|
'@kevisual/types':
|
||||||
specifier: ^0.0.10
|
specifier: ^0.0.10
|
||||||
version: 0.0.10
|
version: 0.0.10
|
||||||
@@ -71,6 +74,9 @@ packages:
|
|||||||
'@kevisual/cache@0.0.4':
|
'@kevisual/cache@0.0.4':
|
||||||
resolution: {integrity: sha512-NlyriJ9fC27TgQhWYbEH9hG84R2k0lIofOxo/+nVHN6a6LJSLnVbpDIysRcnH8MI52n/XHfWwLSjeDDL3D1/cQ==}
|
resolution: {integrity: sha512-NlyriJ9fC27TgQhWYbEH9hG84R2k0lIofOxo/+nVHN6a6LJSLnVbpDIysRcnH8MI52n/XHfWwLSjeDDL3D1/cQ==}
|
||||||
|
|
||||||
|
'@kevisual/js-filter@0.0.1':
|
||||||
|
resolution: {integrity: sha512-wACP0Hphhel/ZkH9moSAIABofs/Zz7EUmUKdHv+jTaXRSkdJEs4pCpzg0MUc9PMqs/7C5yXrJaM50O4TXWKIoQ==}
|
||||||
|
|
||||||
'@kevisual/load@0.0.6':
|
'@kevisual/load@0.0.6':
|
||||||
resolution: {integrity: sha512-+3YTFehRcZ1haGel5DKYMUwmi5i6f2psyaPZlfkKU/cOXgkpwoG9/BEqPCnPjicKqqnksEpixVRkyHJ+5bjLVA==}
|
resolution: {integrity: sha512-+3YTFehRcZ1haGel5DKYMUwmi5i6f2psyaPZlfkKU/cOXgkpwoG9/BEqPCnPjicKqqnksEpixVRkyHJ+5bjLVA==}
|
||||||
|
|
||||||
@@ -83,8 +89,8 @@ packages:
|
|||||||
'@kevisual/router@0.0.20':
|
'@kevisual/router@0.0.20':
|
||||||
resolution: {integrity: sha512-uSwDYWh+kvAu6i0m0SJVgcLR/CYz7WvIWGz0nSF8Vg6smJuAgI+laHR4ESO8Fbz+Xn8bPHuSwmM//HHLMLx2FA==}
|
resolution: {integrity: sha512-uSwDYWh+kvAu6i0m0SJVgcLR/CYz7WvIWGz0nSF8Vg6smJuAgI+laHR4ESO8Fbz+Xn8bPHuSwmM//HHLMLx2FA==}
|
||||||
|
|
||||||
'@kevisual/router@0.0.41':
|
'@kevisual/router@0.0.51':
|
||||||
resolution: {integrity: sha512-OKtTLOnTVew+uAx9R4VOdgCpf7KjOL7wMB2bZEJUun9SnqvTBQ+/dJkJ2VlihYPBuSEB5EkxZrOoaDRj7CMRJw==}
|
resolution: {integrity: sha512-i9qYBeS/um78oC912oWJD3iElB+5NTKyTrz1Hzf4DckiUFnjLL81UPwjIh5I2l9+ul0IZ/Pxx+sFSF99fJkzKg==}
|
||||||
|
|
||||||
'@kevisual/types@0.0.10':
|
'@kevisual/types@0.0.10':
|
||||||
resolution: {integrity: sha512-Q73uzzjk9UidumnmCvOpgzqDDvQxsblz22bIFuoiioUFJWwaparx8bpd8ArRyFojicYL1YJoFDzDZ9j9NN8grA==}
|
resolution: {integrity: sha512-Q73uzzjk9UidumnmCvOpgzqDDvQxsblz22bIFuoiioUFJWwaparx8bpd8ArRyFojicYL1YJoFDzDZ9j9NN8grA==}
|
||||||
@@ -460,8 +466,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
|
resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
selfsigned@5.2.0:
|
selfsigned@5.4.0:
|
||||||
resolution: {integrity: sha512-QKF6fsJgdKn5Cy1SekTuwUQ6LOLUdnO4gVne1+TGSAyL/CD1aznNCmBna+bQB9xyon7DiYbDtTR1cLaxDXuaVA==}
|
resolution: {integrity: sha512-Yn8qZOOJv+NhcGY19iC+ngW6hlUCNpvWEkrKllXNhmkLgR9fcErm8EqZ/wev7/tiwjKC9qj17Fa/PtBNzb6q8g==}
|
||||||
engines: {node: '>=15.6.0'}
|
engines: {node: '>=15.6.0'}
|
||||||
|
|
||||||
send@1.2.1:
|
send@1.2.1:
|
||||||
@@ -523,6 +529,8 @@ snapshots:
|
|||||||
lru-cache: 11.2.4
|
lru-cache: 11.2.4
|
||||||
nanoid: 5.1.6
|
nanoid: 5.1.6
|
||||||
|
|
||||||
|
'@kevisual/js-filter@0.0.1': {}
|
||||||
|
|
||||||
'@kevisual/load@0.0.6':
|
'@kevisual/load@0.0.6':
|
||||||
dependencies:
|
dependencies:
|
||||||
eventemitter3: 5.0.1
|
eventemitter3: 5.0.1
|
||||||
@@ -542,10 +550,10 @@ snapshots:
|
|||||||
path-to-regexp: 8.2.0
|
path-to-regexp: 8.2.0
|
||||||
selfsigned: 2.4.1
|
selfsigned: 2.4.1
|
||||||
|
|
||||||
'@kevisual/router@0.0.41':
|
'@kevisual/router@0.0.51':
|
||||||
dependencies:
|
dependencies:
|
||||||
path-to-regexp: 8.3.0
|
path-to-regexp: 8.3.0
|
||||||
selfsigned: 5.2.0
|
selfsigned: 5.4.0
|
||||||
send: 1.2.1
|
send: 1.2.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
@@ -947,7 +955,7 @@ snapshots:
|
|||||||
'@types/node-forge': 1.3.11
|
'@types/node-forge': 1.3.11
|
||||||
node-forge: 1.3.1
|
node-forge: 1.3.1
|
||||||
|
|
||||||
selfsigned@5.2.0:
|
selfsigned@5.4.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@peculiar/x509': 1.14.2
|
'@peculiar/x509': 1.14.2
|
||||||
pkijs: 3.3.3
|
pkijs: 3.3.3
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
import { Query } from '@kevisual/query/query';
|
import { Query } from '@kevisual/query/query';
|
||||||
import { QueryRouterServer, Route } from '@kevisual/router/src/route.ts';
|
import { QueryRouterServer, Route } from '@kevisual/router/src/route.ts';
|
||||||
|
import { filter } from '@kevisual/js-filter'
|
||||||
|
export type ProxyItem = {
|
||||||
|
title?: string;
|
||||||
|
type?: 'api' | 'context' | 'page';
|
||||||
|
description?: string;
|
||||||
|
api?: {
|
||||||
|
url: string;
|
||||||
|
},
|
||||||
|
context?: {
|
||||||
|
key: string;
|
||||||
|
},
|
||||||
|
page?: {},
|
||||||
|
where?: string;
|
||||||
|
whereList?: Array<{ title: string; where: string }>;
|
||||||
|
}
|
||||||
|
|
||||||
export class QueryProxy {
|
export class QueryProxy {
|
||||||
query: Query;
|
query: Query;
|
||||||
router: QueryRouterServer;
|
router: QueryRouterServer;
|
||||||
@@ -7,7 +23,16 @@ export class QueryProxy {
|
|||||||
constructor(opts?: { query: Query, router?: QueryRouterServer, token?: string }) {
|
constructor(opts?: { query: Query, router?: QueryRouterServer, token?: string }) {
|
||||||
this.query = opts?.query || new Query();
|
this.query = opts?.query || new Query();
|
||||||
this.router = opts?.router || new QueryRouterServer();
|
this.router = opts?.router || new QueryRouterServer();
|
||||||
this.token = opts?.token;
|
this.token = opts?.token || this.getDefulatToken();
|
||||||
|
}
|
||||||
|
getDefulatToken() {
|
||||||
|
try {
|
||||||
|
if (localStorage) {
|
||||||
|
return localStorage.getItem('token') || undefined;
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 初始化路由
|
* 初始化路由
|
||||||
@@ -22,11 +47,12 @@ export class QueryProxy {
|
|||||||
}
|
}
|
||||||
const _list = res.data?.list || []
|
const _list = res.data?.list || []
|
||||||
for (const item of _list) {
|
for (const item of _list) {
|
||||||
if (item.path && item.key) {
|
if (item.path || item.id) {
|
||||||
console.log(`Register route: [${item.path}] ${item.key}`);
|
console.log(`Register route: [${item.path}] ${item?.key}`);
|
||||||
this.router.route({
|
this.router.route({
|
||||||
path: item.path,
|
path: item.path,
|
||||||
key: item.key,
|
key: item.key || '',
|
||||||
|
id: item.id,
|
||||||
description: item.description,
|
description: item.description,
|
||||||
metadata: item.metadata,
|
metadata: item.metadata,
|
||||||
}).define(async (ctx) => {
|
}).define(async (ctx) => {
|
||||||
@@ -43,10 +69,15 @@ export class QueryProxy {
|
|||||||
/**
|
/**
|
||||||
* 列出路由
|
* 列出路由
|
||||||
* @param filter
|
* @param filter
|
||||||
|
* @param query WHERE metadata.tags CONTAINS 'premium'
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
async listRoutes(filter?: (item: Route) => boolean) {
|
async listRoutes(filterFn?: (item: Route) => boolean, query?: string) {
|
||||||
return this.router.routes.filter(filter || (() => true));
|
const routes = this.router.routes.filter(filterFn || (() => true));
|
||||||
|
if (query) {
|
||||||
|
return filter(routes, query);
|
||||||
|
}
|
||||||
|
return routes;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 运行路由
|
* 运行路由
|
||||||
|
|||||||
Reference in New Issue
Block a user