@glodon-ecs/web-sdk
v0.10.0
Published
The ECS js sdk for Web
Downloads
321
Readme
ECS-WEB-SDK
ECS 云底座前端相关仓库
- node >= 16
开发及编译
# nvm use 16 # important!
npm i # 安装依赖
npm run dev # 启动开发模式,可在“页面控制台”中查看输出
npm run build # 打包sdk,更多配置参考 vite.configDuckWasmEngine 类
DuckDB 封装类,用于 Web 环境交互,读取 ECS 数据。
方法
initialize: (config)=> engineInstance
初始化并返回 DuckWasmEngine 实例
| 参数 | 类型 | 是否必须 | 默认 | 描述 |
| ---- | ------ | -------- | ------------ | ---------------------------------------------------------- |
| env | String | - | production | 不同环境依赖包不同,可选 production 、test 、development |
query: (sql)=> Object{ data?, error? }
使用 SQL 查询并返回结果,成功返回
data,错误返回error
| 参数 | 类型 | 是否必须 | 默认 | 描述 | | ---- | ------ | -------- | ---- | ---- | | sql | String | 是 | - | - |
prepareQuery: (sql, params)=> Object{ data?, error? }
使用 SQL 查询并返回结果,成功返回
data,错误返回error
| 参数 | 类型 | 是否必须 | 默认 | 描述 | | ------ | ------ | -------- | ---- | -------- | | sql | String | 是 | - | - | | params | Arrary | 是 | [] | 查询参数 |
dispose: ()=> void
删除 DuckDB 实例
resetDBInstance: ()=> void
重置 DuckDB 实例
getDBInstance: ()=> db
返回 DuckDB 实例
示例
安装依赖
import { DuckWasmEngine } from "@glodon-ecs/web-sdk@latest";
const init = async () => {
const initConfig = { env: 'production' };
const duckdbEngine = await DuckWasmEngine.initialize(initConfig);
};
...
// 通过 SQL 查询数据
const { data, error } = await duckdbEngine.query( "select ident from FC_MESH" );
// prepareQuery
const params = [1];
const { data, error } = await duckdbEngine.prepareQuery( "select ident from FC_MESH where ident.id = ? " , params);注意
由于 S3 对于 URL 上特殊符号签名的校验规则与华为不匹配,如等号(=)导致签名失败,因此文件修改
@duckdb/duckdb-wasm/dist/duckdb-browser-eh.worker.js;去除对params.url的 uriEncode
export function createS3Headers(params: S3Params, payloadParams : S3PayloadParams | null = null) : Map<string, string> {
...
- let canonicalRequest = params.method + "\n" + uriEncode(params.url) + "\n" + params.query;
+ let canonicalRequest = params.method + "\n" + params.url + "\n" + params.query;
...
}- 混淆代码
38390 let o = t.method + "\n" + t.url + "\n" + t.query;修改
query参数的签名编码
export function getS3Params (config : S3Config | undefined, url: string, method : string) : S3Params {
...
+ path = path.split('?');
return {
- url: path,
+ url: path[0],
- query: "",
+ query: path[1] || "",
...
}