@submodule/core
Version:
Structural way to build node and deno application
2 lines • 11.8 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var f=()=>{};function p(t){let e=t===void 0?{kind:"init",subscribers:new Set}:{kind:"active",subscribers:new Set,lastValue:t};function r(n){if(!(e.kind==="error"||e.kind==="complete")){e.kind==="init"&&(e={kind:"active",subscribers:e.subscribers,lastValue:n});for(let i of e.subscribers)_optionalChain([i, 'access', _ => _.next, 'optionalCall', _2 => _2(n)])}}function o(n){if(e.kind==="error"||e.kind==="complete")return;let i=e.subscribers;e={kind:"error",error:n};for(let a of i)_optionalChain([a, 'access', _3 => _3.error, 'optionalCall', _4 => _4(n)])}function s(){if(e.kind==="error"||e.kind==="complete")return;let n=e.subscribers;e={kind:"complete"};for(let i of n)_optionalChain([i, 'access', _5 => _5.complete, 'optionalCall', _6 => _6()])}return[{subscribe:n=>{switch(e.kind){case"error":return _optionalChain([n, 'access', _7 => _7.error, 'optionalCall', _8 => _8(e.error)]),f;case"complete":return _optionalChain([n, 'access', _9 => _9.complete, 'optionalCall', _10 => _10()]),f;case"active":{e.subscribers.add({next:_nullishCoalesce(n.next, () => (f)),error:_nullishCoalesce(n.error, () => (f)),complete:_nullishCoalesce(n.complete, () => (f))}),_optionalChain([n, 'access', _11 => _11.next, 'optionalCall', _12 => _12(e.lastValue)]);break}case"init":e.subscribers.add({next:_nullishCoalesce(n.next, () => (f)),error:_nullishCoalesce(n.error, () => (f)),complete:_nullishCoalesce(n.complete, () => (f))});break}return()=>{e.kind!=="error"&&e.kind!=="complete"&&e.subscribers.delete(n)}},get value(){return e.kind==="active"?e.lastValue:void 0},get state(){return e.kind==="active"?{kind:"active",value:e.lastValue}:{kind:"inactive",value:void 0}}},{next:r,error:o,complete:s,value:()=>{if(e.kind==="active")return e.lastValue},state:()=>e.kind==="active"?{kind:"active",value:e.lastValue}:{kind:"inactive",value:void 0}}]}function T(t,...e){return e.reduce((r,o)=>o(r),t)}function L(t){return t}var U={map(t){return e=>{let[r,o]=p(),s=e.subscribe({next:u=>{try{o.next(t(u))}catch(c){o.error(c)}},error:u=>o.error(u),complete:()=>o.complete()});return{...r,subscribe:u=>{let c=r.subscribe(u);return()=>{c(),s()}}}}},filter(t){return e=>{let[r,o]=p(),s=e.subscribe({next:u=>{try{t(u)&&o.next(u)}catch(c){o.error(c)}},error:u=>o.error(u),complete:()=>o.complete()});return{...r,subscribe:u=>{let c=r.subscribe(u);return()=>{c(),s()}}}}},tap(t,e,r){return o=>{let[s,u]=p(),c=o.subscribe({next:n=>{try{_optionalChain([t, 'optionalCall', _13 => _13(n)]),u.next(n)}catch(i){u.error(i)}},error:n=>{if(e)try{e(n)}catch(i){u.error(i);return}u.error(n)},complete:()=>{if(r)try{r()}catch(n){u.error(n);return}u.complete()}});return{...s,subscribe:n=>{let i=s.subscribe(n);return()=>{i(),c()}}}}},latest(){return t=>{let[e,r]=p(),o,s=!1,u=t.subscribe({next:c=>{o=c,s=!0},error:c=>r.error(c),complete:()=>{s&&r.next(o),r.complete()}});return{...e,subscribe:c=>{let n=e.subscribe(c);return()=>{n(),u()}}}}},emitOnChange(t){let e=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _14 => _14.compare]), () => (Object.is)),r=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _15 => _15.clone]), () => (structuredClone));return o=>{let[s,u]=p(),c,n=!1,i=o.subscribe({next:a=>{try{let b=r(a);(!n||!e(c,b))&&(c=b,n=!0,u.next(b))}catch(b){u.error(b)}},error:a=>u.error(a),complete:()=>u.complete()});return{...s,subscribe:a=>{let b=s.subscribe(a);return()=>{b(),i()}}}}},reduce(t,e){return r=>{let[o,s]=p(),u=e,c=r.subscribe({next:n=>{try{u=t(u,n)}catch(i){s.error(i)}},error:n=>s.error(n),complete:()=>{s.next(u),s.complete()}});return{...o,subscribe:n=>{let i=o.subscribe(n);return()=>{i(),c()}}}}},withLatestFrom(...t){return e=>{let[r,o]=p(),s=new Array(t.length),u=Array(t.length).fill(!1),c=t.map((i,a)=>(Array.isArray(i)?i[0]:i).subscribe({next:l=>{s[a]=l,u[a]=!0},error:l=>o.error(l),complete:()=>o.complete()})),n=e.subscribe({next:i=>{u.every(a=>a)&&o.next([i,...s])},error:i=>o.error(i),complete:()=>o.complete()});return{...r,subscribe:i=>{let a=r.subscribe(i);return()=>{a(),n();for(let b of c)b()}}}}}},P= exports.d ={create:p,pipe:T,extends:(t,e)=>({...t,subscribe:r=>{let o=t.subscribe(r);return()=>{o(),e.cleanup()}}}),combineLatest(t){let e=Object.keys(t),[r,o]=p(),s={},u=e.map(a=>{let b=t[a];return Array.isArray(b)?b[0]:b}),c=Array(e.length).fill(!1),n=Array(e.length).fill(void 0),i=u.map((a,b)=>a.subscribe({next:l=>{n[b]=l,c[b]=!0,c.every(y=>y)&&(e.forEach((y,O)=>{s[y]=n[O]}),o.next(s))},error:l=>o.error(l),complete:()=>o.complete()}));return{...r,subscribe:a=>{let b=r.subscribe(a);return()=>{b(),i.forEach(l=>l())}}}},isPushObservable(t){return Array.isArray(t)}};var h=class{constructor(e){this.provider=e}},k= exports.f =class{constructor(e=new Map,r=[],o=new Map,s=new Map){this.store=e;this._resolves=r;this.defers=o;this.listeners=s}has(e,r=!0){return this.store.has(e)}get(e){return this.store.get(e)}set(e,r){if(!this.store.has(e)){if(d(r)){this.store.set(e,this.resolve(r));return}this.store.set(e,Promise.resolve(r))}}resolveValue(e,r){if(!this.store.has(e)){if(d(r)){this.store.set(e,this.resolve(r));return}this.store.set(e,Promise.resolve(r))}}resolve(e){if(d(e)){if(this.has(e))return this.get(e);let o=e,s=e.input?d(e.input)?e.input:x(e.input):void 0,u=new E(this,o),c=new Promise((n,i)=>{Promise.resolve().then(()=>s?this.resolve(s):void 0).then(async a=>{if(typeof e.provider=="function"){if(e.provider.length>2&&a===void 0)throw new Error(`invalid state, provider ${e.provider.toString()} requires dependent but not provided`);return e.provider(a,u,o)}return e.provider.provider(u,o)}).then(a=>{for(let b of this.onResolves)if(b.filter(a,e,s))return b.cb(a);return a==null&&this.remove(e),a}).then(a=>{n(a)}).catch(a=>{i(a)})});return this.set(e,c),c}let r=x(e);return this.resolve(r)}async safeResolve(e){return await Promise.resolve(this.resolve(e)).then(r=>({type:"ok",value:r,error:void 0})).catch(r=>({type:"error",error:r,value:void 0}))}async safeRun(e,r,...o){return await this.resolve(e).catch(s=>{throw new Error("dependency error",{cause:s})}).then(async s=>({type:"ok",data:await r(s,...o),error:void 0})).catch(s=>({type:"error",error:s,data:void 0}))}addDefer(e,r){let o=r||this;this.defers.has(o)||this.defers.set(o,new Set),_optionalChain([this, 'access', _16 => _16.defers, 'access', _17 => _17.get, 'call', _18 => _18(o), 'optionalAccess', _19 => _19.add, 'call', _20 => _20(e)])}addOnResolves(e){this._resolves.push(e)}get onResolves(){return this._resolves}async dispose(){for(let e of this.defers.values())for(let r of e)r();this.store.clear(),this.defers.clear(),this._resolves=[],this.listeners.clear()}async remove(e){if(this.store.has(e)){let r=this.defers.get(e);if(r)for(let o of r)o();this.defers.delete(e),this.store.delete(e)}}};function j(...t){return new w(t)}var w=class extends k{constructor(r){super();this.scopes=r}has(r,o=!1){return o?super.has(r):this.scopes.some(s=>s.has(r))||super.has(r)}resolve(r){let o=r;if(super.has(o))return super.get(o);for(let s of this.scopes){if(o.perferredScope===s)return s.resolve(r);if(s.has(o))return s.get(o)}return super.resolve(r)}},E=class extends k{constructor(r,o){super(void 0,void 0,void 0,void 0);this.scope=r;this.self=o}has(r,o=!1){return this.scope.has(r,o)}resolve(r){return this.scope.resolve(r)}addDefer(r){this.scope.addDefer(r,this.self)}addOnResolves(r){this.scope.addOnResolves(r)}get onResolves(){return this.scope.onResolves}async dispose(){this.scope.remove(this.self)}async remove(r){this.scope.remove(r)}};function $(){return A}var A=j();function N(){A.dispose()}var V=Symbol.for("$submodule");function d(t){return _optionalChain([t, 'optionalAccess', _21 => _21[V]])}var F=0;function S(t,e,r,o){let u=`submodule-${F++}${o.id?`-${o.id}`:""}`,c,n={id:u,get provider(){return t},get dependencies(){return r},get input(){return e},get source(){return o.source||!1},get perferredScope(){return c},set perferredScope(i){c=i},[Symbol.for("$submodule")]:!0,get[Symbol.toStringTag](){return JSON.stringify({id:n.id,provider:n.provider.toString(),dependencies:r})}};return n}var g=t=>B(()=>t),K= exports.m =(...t)=>v(R,async e=>await Promise.all(t.map(o=>e.resolve(o)))),R= exports.n =S(new h((t,e)=>new E(t,e)),void 0,void 0,{source:!1,id:"scoper"}),D= exports.o =t=>v(R,async e=>{let r=await e.resolve(t);return e.resolve(r)},{source:!1,id:"flat"});function x(t,e){function r(){return t}let o=_nullishCoalesce(e, () => ({source:!1})),s=S(async u=>{if(Array.isArray(t))return await Promise.all(t.map(a=>u.resolve(a)));let c=Object.entries(t).map(async([i,a])=>[i,await u.resolve(a)]);return Object.fromEntries(await Promise.all(c))},R,Object.values(t),o);return Object.defineProperty(s,"separate",{value:r}),s}function C(t){return d(t)?t:g(t)}function J(t,e){return v({provider:t,fulfillment:d(e)?e:x(e)},({provider:r,fulfillment:o})=>r(o))}function v(t,e,r){let o=`${_optionalChain([r, 'optionalAccess', _22 => _22.id])?r.id:""}-map`,s=d(t)?t:x(t);return d(e)?S(({_source:u,mapper:c})=>c(u),x({_source:s,mapper:e}),[s],{...r,source:_optionalChain([r, 'optionalAccess', _23 => _23.source])||!0,id:o}):S(e,s,[s],{source:_optionalChain([r, 'optionalAccess', _24 => _24.source])||!0,id:o})}function q(t,e,r){return D(v(t,e,r))}function z(t){return D(t)}function B(t,e){return S((r,o)=>t(o),void 0,void 0,{source:_optionalChain([e, 'optionalAccess', _25 => _25.source])||!1,id:_optionalChain([e, 'optionalAccess', _26 => _26.id])})}var I=t=>{if(typeof t=="function")return t.toString();if(typeof t!="object"||t===null)return JSON.stringify(t);if(Array.isArray(t))return JSON.stringify(t.map(r=>typeof r=="object"&&r!==null?m(r):r));if("id"in t)return String(t.id);let e=m(t);return JSON.stringify(e)},m=t=>Object.keys(t).sort().reduce((r,o)=>{let s=t[o];return r[o]=Array.isArray(s)?s.map(u=>typeof u=="object"&&u!==null?m(u):u):typeof s=="object"&&s!==null?m(s):s,r},{});function G(t,e){let r=new Map,o=_nullishCoalesce(_optionalChain([e, 'optionalAccess', _27 => _27.keyBuilder]), () => (I)),s=(n,{key:i,rawKey:a,executor:b})=>{n.set(i,[a,b])},u=_nullishCoalesce(_optionalChain([e, 'optionalAccess', _28 => _28.poolControl]), () => (s)),c=n=>{let i=o(n);if(!i)throw new Error(`invalid key: ${n}`);let a=d(n)?n:g(n),b=d(t)?t:g(t);if(!r.has(i)){let l=v({fn:b,key:a},({fn:y,key:O})=>y(O));u(r,{key:i,rawKey:n,executor:l})}return r.get(i)[1]};return c.size=()=>r.size,c.rawMembers=()=>Array.from(r.values()),c.members=()=>Array.from(r.values()).map(([n,i])=>i),c.groupedMembers=()=>K(...Array.from(r.values()).map(([n,i])=>i)),c}function H(t){return t?v(C(t),e=>p(e)):B(()=>p())}function Q(t,...e){return e.length===0?t:v({upstream:t,ops:K(...e.map(r=>C(r)))},({upstream:r,ops:o})=>T(r,...o))}function W(t){return v(x(t),e=>P.combineLatest(e))}exports.a = T; exports.b = L; exports.c = U; exports.d = P; exports.e = h; exports.f = k; exports.g = j; exports.h = $; exports.i = N; exports.j = d; exports.k = S; exports.l = g; exports.m = K; exports.n = R; exports.o = D; exports.p = x; exports.q = C; exports.r = J; exports.s = v; exports.t = q; exports.u = z; exports.v = B; exports.w = I; exports.x = G; exports.y = H; exports.z = Q; exports.A = W;
//# sourceMappingURL=chunk-TDJEBZGP.js.map