@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 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 L=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var T=(n,r)=>{for(var a in r)s(n,a,{get:r[a],enumerable:!0})},m=(n,r,a,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of w(r))!l.call(n,e)&&e!==a&&s(n,e,{get:()=>r[e],enumerable:!(t=L(r,e))||t.enumerable});return n};var x=n=>m(s({},"__esModule",{value:!0}),n);var E={};T(E,{VConfig:()=>i,defTransport:()=>Q,fetchVQL:()=>d});var i={transport:Q,hooks:{},url:"/VQL"};async function d(n,r={}){var u,f,p,c;let{transport:a,hooks:t}=i,e=Date.now();try{(u=t.onStart)==null||u.call(t,n,r);let o=await a(n),V=Date.now()-e;if((f=t.onEnd)==null||f.call(t,n,V,o,r),o!=null&&o.err){let y=new Error(o.err);throw(p=t.onError)==null||p.call(t,n,y,o,r),y}return o.result!==void 0?o.result:o}catch(o){throw(c=t.onError)==null||c.call(t,n,o,null,r),o}}async function Q(n){let r=await fetch(i.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:n})});if(!r.ok)throw new Error(`VQL request failed: ${r.status}`);return await r.json()}typeof window!="undefined"&&(window.VQLClient={fetchVQL:d,defTransport:Q,cfg:i});return x(E);})();
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>, context?: VContext, options?: DbFindOpts<T & Data>, findOpts?: FindOpts<T & Data>): Promise<T[]>;
89
- findOne<T = Data>(search?: Search<T & Data>, context?: VContext, findOpts?: FindOpts<T & Data>): Promise<T>;
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?: Arg<T & Data>, context?: VContext, id_gen?: boolean): Promise<boolean>;
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: Search<T>, context?: VContext, options?: DbFindOpts<T>, findOpts?: FindOpts<T>): Promise<T[]>;
103
- findOne<T = Data>(collection: string, search: Search<T>, context?: VContext, findOpts?: FindOpts<T>): Promise<T | null>;
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>, add_arg?: Arg<T>, context?: VContext, id_gen?: boolean): Promise<boolean>;
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 {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wxn0brp/vql-client",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "description": "VQL Client",