@wxn0brp/vql-client 0.2.0 → 0.2.2
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/dist/index.d.ts +2 -1
- package/dist/index.js +9 -2
- package/dist/min.js +1 -1
- package/dist/vql.d.ts +12 -7
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,8 @@ export interface Config {
|
|
|
10
10
|
transport?: VQLTransport;
|
|
11
11
|
hooks?: VQLHooks;
|
|
12
12
|
url?: string;
|
|
13
|
+
body?: Record<string, any>;
|
|
13
14
|
}
|
|
14
15
|
export declare const VConfig: Config;
|
|
15
|
-
export declare function fetchVQL<T = any>(query: VQLUQ<T>, hookContext?: any): Promise<T>;
|
|
16
|
+
export declare function fetchVQL<T = any>(query: VQLUQ<T>, vars?: any, hookContext?: any): Promise<T>;
|
|
16
17
|
export declare function defTransport(query: VQLUQ): Promise<any>;
|
package/dist/index.js
CHANGED
|
@@ -4,11 +4,18 @@ export const VConfig = {
|
|
|
4
4
|
hooks: {},
|
|
5
5
|
url: "/VQL"
|
|
6
6
|
};
|
|
7
|
-
export async function fetchVQL(query, hookContext = {}) {
|
|
7
|
+
export async function fetchVQL(query, vars = {}, hookContext = {}) {
|
|
8
8
|
const { transport, hooks } = VConfig;
|
|
9
9
|
const start = Date.now();
|
|
10
10
|
try {
|
|
11
|
+
hookContext = Object.assign({}, vars, hookContext);
|
|
11
12
|
hooks.onStart?.(query, hookContext);
|
|
13
|
+
if (typeof query === "string" && Object.keys(vars).length) {
|
|
14
|
+
query = {
|
|
15
|
+
query: query,
|
|
16
|
+
var: vars
|
|
17
|
+
};
|
|
18
|
+
}
|
|
12
19
|
const res = await transport(query);
|
|
13
20
|
const duration = Date.now() - start;
|
|
14
21
|
hooks.onEnd?.(query, duration, res, hookContext);
|
|
@@ -32,7 +39,7 @@ export async function defTransport(query) {
|
|
|
32
39
|
headers: {
|
|
33
40
|
"Content-Type": "application/json"
|
|
34
41
|
},
|
|
35
|
-
body: JSON.stringify({ query })
|
|
42
|
+
body: JSON.stringify({ query, ...(VConfig.body || {}) })
|
|
36
43
|
});
|
|
37
44
|
if (!res.ok)
|
|
38
45
|
throw new Error(`VQL request failed: ${res.status}`);
|
package/dist/min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var VQLClient=(()=>{var s=Object.defineProperty;var
|
|
1
|
+
var VQLClient=(()=>{var s=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames,u=Object.getOwnPropertySymbols;var L=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable;var V=(n,r,t)=>r in n?s(n,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[r]=t,l=(n,r)=>{for(var t in r||(r={}))L.call(r,t)&&V(n,t,r[t]);if(u)for(var t of u(r))U.call(r,t)&&V(n,t,r[t]);return n};var b=(n,r)=>{for(var t in r)s(n,t,{get:r[t],enumerable:!0})},x=(n,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of E(r))!L.call(n,o)&&o!==t&&s(n,o,{get:()=>r[o],enumerable:!(i=m(r,o))||i.enumerable});return n};var j=n=>x(s({},"__esModule",{value:!0}),n);var O={};b(O,{VConfig:()=>a,defTransport:()=>Q,fetchVQL:()=>w});var a={transport:Q,hooks:{},url:"/VQL"};async function w(n,r={},t={}){var f,y,c,d;let{transport:i,hooks:o}=a,g=Date.now();try{t=Object.assign({},r,t),(f=o.onStart)==null||f.call(o,n,t),typeof n=="string"&&Object.keys(r).length&&(n={query:n,var:r});let e=await i(n),T=Date.now()-g;if((y=o.onEnd)==null||y.call(o,n,T,e,t),e!=null&&e.err){let p=new Error(e.err);throw(c=o.onError)==null||c.call(o,n,p,e,t),p}return e.result!==void 0?e.result:e}catch(e){throw(d=o.onError)==null||d.call(o,n,e,null,t),e}}async function Q(n){let r=await fetch(a.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l({query:n},a.body||{}))});if(!r.ok)throw new Error(`VQL request failed: ${r.status}`);return await r.json()}typeof window!="undefined"&&(window.VQLClient={fetchVQL:w,defTransport:Q,cfg:a});return j(O);})();
|
package/dist/vql.d.ts
CHANGED
|
@@ -85,13 +85,13 @@ declare class CollectionManager<D = Data> {
|
|
|
85
85
|
private collection;
|
|
86
86
|
constructor(db: ValtheraCompatible, collection: string);
|
|
87
87
|
add<T = Data>(data: Arg<T & D>, id_gen?: boolean): Promise<T>;
|
|
88
|
-
find<T = Data>(search?: Search<T & D>,
|
|
89
|
-
findOne<T = Data>(search?: Search<T & Data>,
|
|
88
|
+
find<T = Data>(search?: Search<T & D>, options?: DbFindOpts<T & Data>, findOpts?: FindOpts<T & Data>, context?: VContext): Promise<T[]>;
|
|
89
|
+
findOne<T = Data>(search?: Search<T & Data>, findOpts?: FindOpts<T & Data>, context?: VContext): Promise<T>;
|
|
90
90
|
update<T = Data>(search: Search<T & Data>, updater: Updater<T & Data>, context?: VContext): Promise<boolean>;
|
|
91
91
|
updateOne<T = Data>(search: Search<T & Data>, updater: Updater<T & Data>, context?: VContext): Promise<boolean>;
|
|
92
92
|
remove<T = Data>(search: Search<T & Data>, context?: VContext): Promise<boolean>;
|
|
93
93
|
removeOne<T = Data>(search: Search<T & Data>, context?: VContext): Promise<boolean>;
|
|
94
|
-
updateOneOrAdd<T = Data>(search: Search<T & Data>, updater: Updater<T & Data>, add_arg
|
|
94
|
+
updateOneOrAdd<T = Data>(search: Search<T & Data>, updater: Updater<T & Data>, { add_arg, context, id_gen }: UpdateOneOrAdd<T & Data>): Promise<boolean>;
|
|
95
95
|
}
|
|
96
96
|
export interface ValtheraCompatible {
|
|
97
97
|
c(collection: string): CollectionManager;
|
|
@@ -99,14 +99,19 @@ export interface ValtheraCompatible {
|
|
|
99
99
|
ensureCollection(collection: string): Promise<boolean>;
|
|
100
100
|
issetCollection(collection: string): Promise<boolean>;
|
|
101
101
|
add<T = Data>(collection: string, data: Arg<T>, id_gen?: boolean): Promise<T>;
|
|
102
|
-
find<T = Data>(collection: string, search
|
|
103
|
-
findOne<T = Data>(collection: string, search
|
|
102
|
+
find<T = Data>(collection: string, search?: Search<T>, options?: DbFindOpts<T>, findOpts?: FindOpts<T>, context?: VContext): Promise<T[]>;
|
|
103
|
+
findOne<T = Data>(collection: string, search?: Search<T>, findOpts?: FindOpts<T>, context?: VContext): Promise<T | null>;
|
|
104
104
|
update<T = Data>(collection: string, search: Search<T>, updater: Updater<T>, context?: VContext): Promise<boolean>;
|
|
105
105
|
updateOne<T = Data>(collection: string, search: Search<T>, updater: Updater<T>, context?: VContext): Promise<boolean>;
|
|
106
106
|
remove<T = Data>(collection: string, search: Search<T>, context?: VContext): Promise<boolean>;
|
|
107
107
|
removeOne<T = Data>(collection: string, search: Search<T>, context?: VContext): Promise<boolean>;
|
|
108
108
|
removeCollection(collection: string): Promise<boolean>;
|
|
109
|
-
updateOneOrAdd<T = Data>(collection: string, search: Search<T>, updater: Updater<T>,
|
|
109
|
+
updateOneOrAdd<T = Data>(collection: string, search: Search<T>, updater: Updater<T>, opts?: UpdateOneOrAdd<T>): Promise<boolean>;
|
|
110
|
+
}
|
|
111
|
+
export interface UpdateOneOrAdd<T> {
|
|
112
|
+
add_arg?: Arg<T>;
|
|
113
|
+
id_gen?: boolean;
|
|
114
|
+
context?: VContext;
|
|
110
115
|
}
|
|
111
116
|
declare namespace RelationTypes {
|
|
112
117
|
type Path = [
|
|
@@ -216,7 +221,7 @@ export interface VQL_Query_Relation {
|
|
|
216
221
|
relations: RelationTypes.Relation;
|
|
217
222
|
many?: boolean;
|
|
218
223
|
options?: DbFindOpts;
|
|
219
|
-
select?: RelationTypes.FieldPath[]
|
|
224
|
+
select?: RelationTypes.FieldPath[] | Record<string, any>;
|
|
220
225
|
};
|
|
221
226
|
}
|
|
222
227
|
export interface VQL_Var {
|