@firsthandjs/data 0.9.1 → 0.10.0
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/action.d.ts +30 -0
- package/dist/action.d.ts.map +1 -0
- package/dist/cache.d.ts.map +1 -1
- package/dist/document.d.ts.map +1 -1
- package/dist/http.d.ts.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.dev.js +444 -399
- package/dist/index.js +2 -2
- package/dist/resource.d.ts +0 -20
- package/dist/resource.d.ts.map +1 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/vite.dev.js +41 -35
- package/dist/vite.js +41 -35
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createContext as
|
|
2
|
-
`,
|
|
1
|
+
import{createContext as Q,effect as G,isRendering as K,onCleanup as L,useContext as U}from"@firsthandjs/core";import{batch as D,signal as T}from"@firsthandjs/core";var $=Object.freeze({});function v(e,t=$){return{name:e,vars:t}}function C(e,t){if(e.name!==t.name)return!1;for(let r of Object.keys(e.vars))if(!Object.is(e.vars[r],t.vars[r]))return!1;return!0}function c(e,t){for(let r of e)for(let n of t)if(C(r,n))return!0;return!1}function O(e={}){let t={options:e,held:new Set,recent:[],remember:e.remember??6e4};return{storage:e.storage,missed:(r,n)=>I(t,r,n),settled:r=>{z(t,r)},settle:(r=10)=>M(t,r),hold:r=>(t.held.add(r),()=>t.held.delete(r)),invalidate:(...r)=>N(t,r),clear:()=>{_(t)},get size(){return t.held.size}}}function I(e,t,r){if(e.remember===0||e.recent.length===0)return!1;let n=Date.now()-e.remember;return e.recent=e.recent.filter(o=>o.at>=n),e.recent.some(o=>o.at>t.answeredAt&&c(o.patterns,r))}function z(e,t){e.recent.length!==0&&(e.recent=e.recent.filter(r=>!c(r.patterns,t)))}async function M(e,t){for(let r=0;r<t;r++){let n=[];for(let o of e.held)o.inflight!==null&&n.push(o.inflight);if(n.length===0)return;await Promise.all(n)}}async function N(e,t){let r=[];for(let n of e.options.caches??[])n.forgetTagged(t);e.remember>0&&e.recent.push({patterns:t,at:Date.now()});for(let n of[...e.held])n.controller!==null&&n.pending.push(...t),c(t,n.tags)&&(n.name,n.tags,r.push(n.run(!0)));await Promise.all(r)}function _(e){e.recent=[];for(let t of[...e.held])t.controller?.abort(),e.held.delete(t);try{e.options.storage?.clear?.()}catch{}}function m(e,t){return{data:T(void 0),error:T(void 0),status:T("idle"),loading:T(!1),tags:[],controller:null,pending:[],inflight:null,superseded:!1,disposed:!1,answeredAt:0,name:t}}function g(e,t){e.answeredAt=Date.now(),D(()=>{e.data.value=t,e.error.value=void 0,e.status.value="success",e.loading.value=!1})}function y(e,t){D(()=>{e.error.value=t,e.status.value="error",e.loading.value=!1})}function x(e,t){return{data:e.data,error:e.error,status:e.status,loading:e.loading,reload:()=>e.run(!0),dispose:()=>{e.disposed=!0,e.controller?.abort(),t()}}}var q=Q();function f(){return U(q).value}function B(){let e=f();return(...t)=>e.invalidate(...t)}function P(e,t){t===void 0||e.data.peek()!==void 0||e.disposed||(g(e,t),e.loading.value=!0)}function Z(e){return typeof e=="object"&&e!==null&&typeof e.then=="function"}function A(e,t={}){let r=f(),n=m(r,t.persist),o=r.hold(n);t.persist;let a={entry:n,store:r,persist:t.persist};return n.run=i=>W(a,e,i),Y(n,r,t.persist),ee(n),L(()=>{n.disposed=!0,n.controller?.abort(),t.persist,n.tags,o()}),x(n,o)}function W(e,t,r){let{entry:n,store:o}=e;if(n.disposed)return Promise.resolve(void 0);n.controller?.abort();let a=new AbortController;n.controller=a,n.pending=[],n.superseded=!1,n.loading.value=!0,n.data.peek()===void 0&&(n.status.value="loading");let i=t(ne(n,o,a,r)).then(async s=>X(e,a,s)).catch(s=>{a.signal.aborted||n.disposed||(n.controller=null,y(n,s))});return n.inflight=i,i.then(()=>{n.inflight===i&&(n.inflight=null)}),i}async function X(e,t,r){let{entry:n,store:o,persist:a}=e;if(!(t.signal.aborted||n.disposed)){if(n.controller=null,g(n,r),n.superseded||o.settled(n.tags),a!==void 0)try{o.storage?.write?.(a,r)}catch{}return n.superseded?(n.superseded=!1,n.run(!0)):r}}function Y(e,t,r){let n=t.storage;if(r===void 0||n?.read===void 0)return;let o;try{o=n.read(r)}catch{o=void 0}if(!Z(o)){P(e,o);return}(async()=>{try{P(e,await o)}catch{}})()}function ee(e){if(!K()){G(()=>{e.run(!1)});return}e.data.peek()===void 0?e.run(!1):e.loading.value=!1}function ne(e,t,r,n){let o=n,a=!1,i=(...d)=>{e.tags=d,!o&&t.missed(e,d)&&(o=!0,a&&(e.superseded=!0)),e.pending.length>0&&c(e.pending,d)&&(e.superseded=!0)},s=()=>(a=!0,o),l={signal:r.signal,get force(){return s()},get declared(){return e.tags},tags:i};return{signal:r.signal,get force(){return s()},request:l,tags:i}}function te(e,t={}){let r=f(),n=m(r,void 0),o=r.hold(n);n.run=()=>t.reload===void 0?Promise.resolve(void 0):oe(t.reload()),n.loading.value=!0,n.status.value="loading";let a=e.subscribe({next:s=>{g(n,s)},error:s=>{y(n,s)}}),i=typeof a=="function"?a:()=>{a.unsubscribe()};return L(()=>{n.disposed=!0,i(),o()}),x(n,()=>{i(),o()})}function re(e){return A(()=>e())}async function oe(e){await e}import{onCleanup as ae,untrack as ie}from"@firsthandjs/core";function se(e){let t=f(),r=m(t,void 0),n={controller:null,invalidating:[]};return ae(()=>{r.disposed=!0,n.controller?.abort()}),{data:r.data,error:r.error,status:r.status,running:r.loading,run:o=>de(r,t,n,()=>e(o,le(n)))}}function le(e){let t=e.controller,r=(...n)=>{e.invalidating=n};return{signal:t.signal,invalidates:r,request:{signal:t.signal,force:!0,mutating:!0,tags:r}}}async function de(e,t,r,n){r.controller?.abort(),r.controller=new AbortController;let o=r.controller;r.invalidating=[],e.loading.value=!0,e.status.value="loading";try{let a=await ie(n);return o.signal.aborted||e.disposed?void 0:(g(e,a),r.invalidating.length>0&&await t.invalidate(...r.invalidating),a)}catch(a){if(o.signal.aborted||e.disposed)return;y(e,a);return}}function w(e){return e===void 0?"undefined":e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?`[${e.map(w).join(",")}]`:e instanceof Date?e.toISOString():`{${Object.entries(e).filter(([,r])=>r!==void 0).sort(([r],[n])=>r<n?-1:1).map(([r,n])=>`${r}:${w(n)}`).join(",")}}`}function R(e={}){let t={ttl:e.ttl??0,max:e.max??100,now:e.now??(()=>Date.now()),entries:new Map},r=(n,o)=>{ue(t,n,o)};return{get size(){return t.entries.size},dump:()=>ce(t),seed:n=>{for(let o in n)r(o,n[o])},settle:(n=10)=>ge(t,n),peek:n=>{let o=t.entries.get(n);return o===void 0||o.expires<=t.now()?void 0:o.value},write:r,forget:n=>{for(let o of n===void 0?[...t.entries.keys()]:[n])h(t,o)},forgetTagged:n=>{for(let[o,a]of[...t.entries])a.tags.length>0&&c(n,a.tags)&&h(t,o)},read:(n,o)=>async a=>fe(t,n,o,a)}}function h(e,t){e.entries.get(t)?.controller?.abort(),e.entries.delete(t)}function S(e,t,r){if(e.entries.delete(t),e.entries.set(t,r),e.entries.size>e.max)for(let n of e.entries.keys()){h(e,n);break}}function ue(e,t,r){S(e,t,{value:r,tags:[],expires:e.ttl===0?1/0:e.now()+e.ttl,inflight:null,controller:null,waiting:0})}function ce(e){let t={};for(let[r,n]of e.entries)n.inflight===null&&(t[r]=n.value);return t}async function ge(e,t){for(let r=0;r<t;r++){let n=[];for(let o of e.entries.values())o.inflight!==null&&n.push(o.inflight);if(n.length===0)return;await Promise.all(n.map(async o=>o.catch(()=>{})))}}async function fe(e,t,r,n){if(n.mutating===!0)return await r(n);let o=e.entries.get(t);if(n.force)h(e,t);else if(o!==void 0){if(o.inflight!==null)return await H(o,n);if(o.expires>e.now())return S(e,t,o),o.value;e.entries.delete(t)}return await pe(e,t,r,n)}async function pe(e,t,r,n){let o=new AbortController,a={value:void 0,tags:n.declared??[],expires:0,inflight:null,controller:o,waiting:0},i=r({signal:o.signal,force:n.force}).then(s=>(e.entries.get(t)===a&&me(e,t,a,s),s)).catch(s=>{throw e.entries.get(t)===a&&e.entries.delete(t),s});return a.inflight=i,S(e,t,a),await H(a,n)}function me(e,t,r,n){if(e.ttl===0){e.entries.delete(t);return}r.value=n,r.expires=e.now()+e.ttl,r.inflight=null,r.controller=null}async function H(e,t){e.waiting+=1;let r=()=>{e.waiting<=1&&e.inflight!==null&&e.controller?.abort()};t.signal.addEventListener("abort",r,{once:!0});try{return await e.inflight}finally{t.signal.removeEventListener("abort",r),e.waiting-=1}}function ye(e){let t=new Map(e===void 0?[]:Object.entries(e));return{get size(){return t.size},read:r=>t.get(r),write:(r,n)=>{t.set(r,n)},clear:()=>{t.clear()},dump:()=>Object.fromEntries(t),seed:r=>{for(let n in r)t.set(n,r[n])}}}function Te(e){return JSON.stringify(e).replace(he,t=>be[t])}var he=/[<\u2028\u2029]/g,be={"<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"};var ve=/^@(tag|invalidates)\b/,xe=/\b(query|mutation|subscription)\b[^\S\n]*([A-Za-z_]\w*)?/,V=/^[_A-Za-z][_0-9A-Za-z]*/,u=class extends Error{constructor(t){super(t),this.name="FirsthandDirectiveError"}};function k(e,t){if(e.startsWith('"""',t)){let n=e.indexOf('"""',t+3);return n===-1?e.length:n+3}let r=t+1;for(;r<e.length&&e[r]!=='"';)r+=e[r]==="\\"?2:1;return r+1}function we(e,t){let r=0,n=t;for(;n<e.length;){let o=e[n];if(o==='"'){n=k(e,n);continue}if(o==="("||o==="["||o==="{")r++;else if((o===")"||o==="]"||o==="}")&&(r--,r===0))return n+1;n++}throw new u(`unclosed arguments in ${e.slice(t,t+40)}`)}function Re(e,t){try{return JSON.parse(e)}catch{throw new u(`@${t}: ${e} is not a valid string`)}}function Se(e,t){let r={},n=0,o=()=>{for(;n<e.length&&/[\s,]/.test(e[n]);)n++};for(o();n<e.length;){let a=V.exec(e.slice(n));if(a===null)throw new u(`@${t}: expected an argument name at "${e.slice(n)}"`);if(n+=a[0].length,o(),e[n]!==":")throw new u(`@${t}: argument ${a[0]} has no value`);n++,o();let i=ke(e,t,n);r[a[0]]=i.value,n=i.next,o()}return r}function ke(e,t,r){let n=e[r];if(n==="$"){let l=V.exec(e.slice(r+1));if(l===null)throw new u(`@${t}: expected a variable name after $`);return{value:{variable:l[0]},next:r+1+l[0].length}}if(n==='"'){let l=k(e,r),d=e.slice(r,l);return{value:{literal:d.startsWith('"""')?d.slice(3,-3).trim():Re(d,t)},next:l}}if(n==="["||n==="{")throw new u(`@${t}: a tag variable must be a scalar, not a list or object`);let o=/^[^\s,)]+/.exec(e.slice(r));if(o===null)throw new u(`@${t}: expected a value`);let a=o[0],i=r+a.length;if(a==="true"||a==="false")return{value:{literal:a==="true"},next:i};if(a==="null")return{value:{literal:null},next:i};let s=Number(a);return{value:{literal:Number.isNaN(s)?a:s},next:i}}function Ce(e){let t={tags:[],invalidates:[]},r="",n=0,o=0;for(;n<e.length;){let a=De(e,n);if(a!==null){n=a;continue}let i=ve.exec(e.slice(n));if(i===null){n++;continue}let s=Oe(e,n,i,t),l=n;for(;l>o&&/\s/.test(e[l-1]);)l--;r+=e.slice(o,l),o=s,n=s}return{...t,stripped:r+e.slice(o)}}function De(e,t){let r=e[t];if(r==='"')return k(e,t);if(r==="#"){let n=e.indexOf(`
|
|
2
|
+
`,t);return n===-1?e.length:n}return r==="@"?null:t+1}function Oe(e,t,r,n){let o=r[1],a=t+r[0].length,i="",s=a;for(;s<e.length&&/\s/.test(e[s]);)s++;if(e[s]==="("){let p=we(e,s);i=e.slice(s+1,p-1),a=p}let l=Se(i,o),d=l.name;if(d===void 0||!("literal"in d)||typeof d.literal!="string")throw new u(`@${o} needs a literal name, as in @${o}(name: "user", id: $id)`);return delete l.name,(o==="tag"?n.tags:n.invalidates).push({name:d.literal,vars:l}),a}function Pe(e){let{tags:t,invalidates:r,stripped:n}=Ce(e),o=xe.exec(n.replace(/#[^\n]*/g,""));return{source:n,operation:o?.[2]??"",kind:o?.[1]??"query",tags:t,invalidates:r}}function Le(e,t){return e.map(r=>{let n={};for(let[o,a]of Object.entries(r.vars)){if("literal"in a){n[o]=a.literal;continue}let i=t[a.variable];i!=null&&(n[o]=typeof i=="object"?JSON.stringify(i):i)}return v(r.name,n)})}import{untrack as j}from"@firsthandjs/core";var b=class extends Error{constructor(r,n,o){super(`HTTP ${String(r)} for ${n}`);this.status=r;this.url=n;this.body=o;this.name="FirsthandHttpError"}status;url;body};function qe(e,t,r){let n=/^[a-z]+:\/\//i.test(t)?t:`${e.baseUrl??""}${t}`,{json:o,cacheKey:a,...i}=r,s={...e.init,...i},l=new Headers(typeof e.headers=="function"?j(e.headers):e.headers);for(let[d,p]of new Headers(r.headers??{}))l.set(d,p);return o!==void 0&&(s.body=JSON.stringify(o),l.has("content-type")||l.set("content-type","application/json")),s.headers=l,[n,s]}async function E(e,t,r,n){let a=await(e.fetch??globalThis.fetch)(t,{...r,signal:n.signal}),i=await a.text(),s=i===""?void 0:JSON.parse(i);if(!a.ok)throw new b(a.status,t,s);return s}function Ae(e,t,r,n){if(t.cacheKey===!1)return;let o=(n.method??"GET").toUpperCase(),a=typeof t.cacheKey=="string"?t.cacheKey:o==="GET"||o==="HEAD"?`${o} ${r}`:void 0;return a===void 0?void 0:`${e.scope===void 0?n.headers.get("authorization")??"":j(e.scope)}\0${a}`}function F(e={}){let t=e.cache===void 0||e.cache===!1?void 0:"read"in e.cache?e.cache:R(e.cache),r={cache:t,request:(n,o={})=>async a=>{let[i,s]=qe(e,n,o),l=Ae(e,o,i,s);return t===void 0||l===void 0||a.mutating===!0?await E(e,i,s,a):await t.read(l,d=>E(e,i,s,d))(a)},get:(n,o={})=>r.request(n,o),post:(n,o={})=>r.request(n,{method:"POST",...o}),put:(n,o={})=>r.request(n,{method:"PUT",...o}),patch:(n,o={})=>r.request(n,{method:"PATCH",...o}),remove:(n,o={})=>r.request(n,{method:"DELETE",...o}),with:n=>F({...e,...n,cache:n.cache??t??!1})};return r}export{q as DataContext,u as FirsthandDirectiveError,b as FirsthandHttpError,c as anyTagMatches,R as createCacheClient,O as createData,F as createFetchClient,ye as createMemoryStorage,te as fromObservable,re as fromPromise,Pe as parseGraphQL,Le as resolveTags,Te as serialize,w as stableKey,v as tag,C as tagMatches,se as useAction,f as useData,B as useInvalidate,A as useResource};
|
package/dist/resource.d.ts
CHANGED
|
@@ -17,26 +17,6 @@ export type ResourceOptions = {
|
|
|
17
17
|
readonly persist?: string;
|
|
18
18
|
};
|
|
19
19
|
export declare function useResource<T>(load: (context: LoadContext) => Promise<T>, options?: ResourceOptions): Resource<T>;
|
|
20
|
-
export type Action<I, R> = {
|
|
21
|
-
readonly data: Resource<R>['data'];
|
|
22
|
-
readonly error: Resource<R>['error'];
|
|
23
|
-
readonly status: Resource<R>['status'];
|
|
24
|
-
readonly running: Resource<R>['loading'];
|
|
25
|
-
/** Runs it. Never rejects: failure is reported through `error`. */
|
|
26
|
-
run(input: I): Promise<R | undefined>;
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Changes something, and says what it changed.
|
|
30
|
-
*
|
|
31
|
-
* ```tsx
|
|
32
|
-
* const rename = useAction(async (input: Rename, { signal, invalidates }) => {
|
|
33
|
-
* const changed = await patch(input, signal);
|
|
34
|
-
* invalidates(...changed.tags); // the server knows which user that was
|
|
35
|
-
* return changed.user;
|
|
36
|
-
* });
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
export declare function useAction<I, R>(run: (input: I, context: ActionContext) => Promise<R>): Action<I, R>;
|
|
40
20
|
export type ObservableLike<T> = {
|
|
41
21
|
subscribe(observer: {
|
|
42
22
|
next?: (value: T) => void;
|
package/dist/resource.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAKL,KAAK,aAAa,EAElB,KAAK,SAAS,EAEd,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,MAAM,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAGpD,eAAO,MAAM,WAAW,gDAA6B,CAAC;AAEtD,wBAAgB,OAAO,IAAI,SAAS,CAEnC;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,IAAI,CAAC,GAAG,QAAQ,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAGrE;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAmCF,wBAAgB,WAAW,CAAC,CAAC,EAC3B,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EAC1C,OAAO,GAAE,eAAoB,GAC5B,QAAQ,CAAC,CAAC,CAAC,CAoBb;AAgOD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,SAAS,CAAC,QAAQ,EAAE;QAClB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;KAClC,GAAG;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,OAAO,GAAE,aAAkB,GAC1B,QAAQ,CAAC,CAAC,CAAC,CAoCb;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAErE;AAQD,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC"}
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/vite.dev.js
CHANGED
|
@@ -117,24 +117,14 @@ function readValue(raw, directive, at) {
|
|
|
117
117
|
return { value: { literal: Number.isNaN(asNumber) ? text : asNumber }, next };
|
|
118
118
|
}
|
|
119
119
|
function scan(source) {
|
|
120
|
-
const
|
|
121
|
-
const invalidates = [];
|
|
120
|
+
const into = { tags: [], invalidates: [] };
|
|
122
121
|
let stripped = "";
|
|
123
122
|
let at = 0;
|
|
124
123
|
let kept = 0;
|
|
125
124
|
while (at < source.length) {
|
|
126
|
-
const
|
|
127
|
-
if (
|
|
128
|
-
at =
|
|
129
|
-
continue;
|
|
130
|
-
}
|
|
131
|
-
if (character === "#") {
|
|
132
|
-
const newline = source.indexOf("\n", at);
|
|
133
|
-
at = newline === -1 ? source.length : newline;
|
|
134
|
-
continue;
|
|
135
|
-
}
|
|
136
|
-
if (character !== "@") {
|
|
137
|
-
at++;
|
|
125
|
+
const skipped = skipPast(source, at);
|
|
126
|
+
if (skipped !== null) {
|
|
127
|
+
at = skipped;
|
|
138
128
|
continue;
|
|
139
129
|
}
|
|
140
130
|
const directive = DIRECTIVE.exec(source.slice(at));
|
|
@@ -142,26 +132,7 @@ function scan(source) {
|
|
|
142
132
|
at++;
|
|
143
133
|
continue;
|
|
144
134
|
}
|
|
145
|
-
|
|
146
|
-
let args = "";
|
|
147
|
-
let probe = end;
|
|
148
|
-
while (probe < source.length && /\s/.test(source[probe])) {
|
|
149
|
-
probe++;
|
|
150
|
-
}
|
|
151
|
-
if (source[probe] === "(") {
|
|
152
|
-
const close = endOfArguments(source, probe);
|
|
153
|
-
args = source.slice(probe + 1, close - 1);
|
|
154
|
-
end = close;
|
|
155
|
-
}
|
|
156
|
-
const vars = parseArguments(args, directive[1]);
|
|
157
|
-
const named = vars["name"];
|
|
158
|
-
if (named === void 0 || !("literal" in named) || typeof named.literal !== "string") {
|
|
159
|
-
throw new FirsthandDirectiveError(
|
|
160
|
-
`@${directive[1]} needs a literal name, as in @${directive[1]}(name: "user", id: $id)`
|
|
161
|
-
);
|
|
162
|
-
}
|
|
163
|
-
delete vars["name"];
|
|
164
|
-
(directive[1] === "tag" ? tags : invalidates).push({ name: named.literal, vars });
|
|
135
|
+
const end = takeDirective(source, at, directive, into);
|
|
165
136
|
let from = at;
|
|
166
137
|
while (from > kept && /\s/.test(source[from - 1])) {
|
|
167
138
|
from--;
|
|
@@ -170,7 +141,42 @@ function scan(source) {
|
|
|
170
141
|
kept = end;
|
|
171
142
|
at = end;
|
|
172
143
|
}
|
|
173
|
-
return {
|
|
144
|
+
return { ...into, stripped: stripped + source.slice(kept) };
|
|
145
|
+
}
|
|
146
|
+
function skipPast(source, at) {
|
|
147
|
+
const character = source[at];
|
|
148
|
+
if (character === '"') {
|
|
149
|
+
return endOfString(source, at);
|
|
150
|
+
}
|
|
151
|
+
if (character === "#") {
|
|
152
|
+
const newline = source.indexOf("\n", at);
|
|
153
|
+
return newline === -1 ? source.length : newline;
|
|
154
|
+
}
|
|
155
|
+
return character === "@" ? null : at + 1;
|
|
156
|
+
}
|
|
157
|
+
function takeDirective(source, at, directive, into) {
|
|
158
|
+
const kind = directive[1];
|
|
159
|
+
let end = at + directive[0].length;
|
|
160
|
+
let args = "";
|
|
161
|
+
let probe = end;
|
|
162
|
+
while (probe < source.length && /\s/.test(source[probe])) {
|
|
163
|
+
probe++;
|
|
164
|
+
}
|
|
165
|
+
if (source[probe] === "(") {
|
|
166
|
+
const close = endOfArguments(source, probe);
|
|
167
|
+
args = source.slice(probe + 1, close - 1);
|
|
168
|
+
end = close;
|
|
169
|
+
}
|
|
170
|
+
const vars = parseArguments(args, kind);
|
|
171
|
+
const named = vars["name"];
|
|
172
|
+
if (named === void 0 || !("literal" in named) || typeof named.literal !== "string") {
|
|
173
|
+
throw new FirsthandDirectiveError(
|
|
174
|
+
`@${kind} needs a literal name, as in @${kind}(name: "user", id: $id)`
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
delete vars["name"];
|
|
178
|
+
(kind === "tag" ? into.tags : into.invalidates).push({ name: named.literal, vars });
|
|
179
|
+
return end;
|
|
174
180
|
}
|
|
175
181
|
function parseGraphQL(source) {
|
|
176
182
|
const { tags, invalidates, stripped } = scan(source);
|
package/dist/vite.js
CHANGED
|
@@ -117,24 +117,14 @@ function readValue(raw, directive, at) {
|
|
|
117
117
|
return { value: { literal: Number.isNaN(asNumber) ? text : asNumber }, next };
|
|
118
118
|
}
|
|
119
119
|
function scan(source) {
|
|
120
|
-
const
|
|
121
|
-
const invalidates = [];
|
|
120
|
+
const into = { tags: [], invalidates: [] };
|
|
122
121
|
let stripped = "";
|
|
123
122
|
let at = 0;
|
|
124
123
|
let kept = 0;
|
|
125
124
|
while (at < source.length) {
|
|
126
|
-
const
|
|
127
|
-
if (
|
|
128
|
-
at =
|
|
129
|
-
continue;
|
|
130
|
-
}
|
|
131
|
-
if (character === "#") {
|
|
132
|
-
const newline = source.indexOf("\n", at);
|
|
133
|
-
at = newline === -1 ? source.length : newline;
|
|
134
|
-
continue;
|
|
135
|
-
}
|
|
136
|
-
if (character !== "@") {
|
|
137
|
-
at++;
|
|
125
|
+
const skipped = skipPast(source, at);
|
|
126
|
+
if (skipped !== null) {
|
|
127
|
+
at = skipped;
|
|
138
128
|
continue;
|
|
139
129
|
}
|
|
140
130
|
const directive = DIRECTIVE.exec(source.slice(at));
|
|
@@ -142,26 +132,7 @@ function scan(source) {
|
|
|
142
132
|
at++;
|
|
143
133
|
continue;
|
|
144
134
|
}
|
|
145
|
-
|
|
146
|
-
let args = "";
|
|
147
|
-
let probe = end;
|
|
148
|
-
while (probe < source.length && /\s/.test(source[probe])) {
|
|
149
|
-
probe++;
|
|
150
|
-
}
|
|
151
|
-
if (source[probe] === "(") {
|
|
152
|
-
const close = endOfArguments(source, probe);
|
|
153
|
-
args = source.slice(probe + 1, close - 1);
|
|
154
|
-
end = close;
|
|
155
|
-
}
|
|
156
|
-
const vars = parseArguments(args, directive[1]);
|
|
157
|
-
const named = vars["name"];
|
|
158
|
-
if (named === void 0 || !("literal" in named) || typeof named.literal !== "string") {
|
|
159
|
-
throw new FirsthandDirectiveError(
|
|
160
|
-
`@${directive[1]} needs a literal name, as in @${directive[1]}(name: "user", id: $id)`
|
|
161
|
-
);
|
|
162
|
-
}
|
|
163
|
-
delete vars["name"];
|
|
164
|
-
(directive[1] === "tag" ? tags : invalidates).push({ name: named.literal, vars });
|
|
135
|
+
const end = takeDirective(source, at, directive, into);
|
|
165
136
|
let from = at;
|
|
166
137
|
while (from > kept && /\s/.test(source[from - 1])) {
|
|
167
138
|
from--;
|
|
@@ -170,7 +141,42 @@ function scan(source) {
|
|
|
170
141
|
kept = end;
|
|
171
142
|
at = end;
|
|
172
143
|
}
|
|
173
|
-
return {
|
|
144
|
+
return { ...into, stripped: stripped + source.slice(kept) };
|
|
145
|
+
}
|
|
146
|
+
function skipPast(source, at) {
|
|
147
|
+
const character = source[at];
|
|
148
|
+
if (character === '"') {
|
|
149
|
+
return endOfString(source, at);
|
|
150
|
+
}
|
|
151
|
+
if (character === "#") {
|
|
152
|
+
const newline = source.indexOf("\n", at);
|
|
153
|
+
return newline === -1 ? source.length : newline;
|
|
154
|
+
}
|
|
155
|
+
return character === "@" ? null : at + 1;
|
|
156
|
+
}
|
|
157
|
+
function takeDirective(source, at, directive, into) {
|
|
158
|
+
const kind = directive[1];
|
|
159
|
+
let end = at + directive[0].length;
|
|
160
|
+
let args = "";
|
|
161
|
+
let probe = end;
|
|
162
|
+
while (probe < source.length && /\s/.test(source[probe])) {
|
|
163
|
+
probe++;
|
|
164
|
+
}
|
|
165
|
+
if (source[probe] === "(") {
|
|
166
|
+
const close = endOfArguments(source, probe);
|
|
167
|
+
args = source.slice(probe + 1, close - 1);
|
|
168
|
+
end = close;
|
|
169
|
+
}
|
|
170
|
+
const vars = parseArguments(args, kind);
|
|
171
|
+
const named = vars["name"];
|
|
172
|
+
if (named === void 0 || !("literal" in named) || typeof named.literal !== "string") {
|
|
173
|
+
throw new FirsthandDirectiveError(
|
|
174
|
+
`@${kind} needs a literal name, as in @${kind}(name: "user", id: $id)`
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
delete vars["name"];
|
|
178
|
+
(kind === "tag" ? into.tags : into.invalidates).push({ name: named.literal, vars });
|
|
179
|
+
return end;
|
|
174
180
|
}
|
|
175
181
|
function parseGraphQL(source) {
|
|
176
182
|
const { tags, invalidates, stripped } = scan(source);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@firsthandjs/data",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Resources, actions and invalidation for Firsthand: reactive async state, with the cache one layer down.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"LICENSE"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@firsthandjs/core": "0.
|
|
32
|
-
"@firsthandjs/dom": "0.
|
|
31
|
+
"@firsthandjs/core": "0.10.0",
|
|
32
|
+
"@firsthandjs/dom": "0.10.0"
|
|
33
33
|
},
|
|
34
34
|
"engines": {
|
|
35
35
|
"node": ">=20.11.0"
|