@stackflow/core
Advanced tools
+230
-1
@@ -1,2 +0,231 @@ | ||
| var M=Object.create;var u=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames,y=Object.getOwnPropertySymbols,I=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var h=(t,e,i)=>e in t?u(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,S=(t,e)=>{for(var i in e||(e={}))D.call(e,i)&&h(t,i,e[i]);if(y)for(var i of y(e))k.call(e,i)&&h(t,i,e[i]);return t};var G=(t,e)=>{for(var i in e)u(t,i,{get:e[i],enumerable:!0})},T=(t,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of b(e))!D.call(t,n)&&n!==i&&u(t,n,{get:()=>e[n],enumerable:!(o=N(e,n))||o.enumerable});return t};var _=(t,e,i)=>(i=t!=null?M(I(t)):{},T(e||!t||!t.__esModule?u(i,"default",{value:t,enumerable:!0}):i,t)),z=t=>T(u({},"__esModule",{value:!0}),t);var C={};G(C,{aggregate:()=>B,id:()=>E,makeEvent:()=>P,produceEffects:()=>w});module.exports=z(C);function c(t,e){return t.filter(i=>i.name===e)}function g(t,e,i){let o=i(t),n=i(e);return o<n?-1:o===n?0:1}var l=new Map;function E(){let t=new Date().getTime().toString(),e=l.get(t),i=e!==void 0?e+1:0;return i===0&&(l=new Map),l.set(t,i),Number(`${t}${i.toString().padStart(2,"0")}`).toString(16)}function x(t,e){let i=new Map;return[...t].reverse().filter(o=>{let n=e(o);if(n===null)return!0;let a=!!i.get(n);return i.set(n,!0),!a}).reverse()}function P(t,e){return S({id:E(),name:t,eventDate:new Date().getTime()},e)}function A(t){if(t.length===0)throw new Error("events parameter is empty");let e=c(t,"Initialized"),i=c(t,"ActivityRegistered"),o=c(t,"Pushed");if(e.length>1)throw new Error("InitializedEvent can only exist once");let n=i.map(a=>a.activityName);o.forEach(a=>{if(!n.includes(a.activityName))throw new Error("the corresponding activity does not exist")})}function B(t,e){let i=x([...t].sort((r,s)=>g(r,s,m=>m.id)),r=>r.id);A(i);let o=c(i,"Initialized")[0],{transitionDuration:n}=o,a=[];i.forEach(r=>{switch(r.name){case"Pushed":{let s=e-r.eventDate>=n?"enter-done":"enter-active";a.push({id:r.activityId,name:r.activityName,transitionState:s,params:r.params,pushedBy:r,metadata:{poppedBy:null}});break}case"Replaced":{let s=e-r.eventDate>=n?"enter-done":"enter-active",m=a.filter(p=>p.metadata.poppedBy===null).sort((p,f)=>f.pushedBy.eventDate-p.pushedBy.eventDate)[0];a.push({id:r.activityId,name:r.activityName,transitionState:s,params:r.params,pushedBy:r,metadata:{poppedBy:null}}),m&&s==="enter-done"&&(m.metadata.poppedBy=r,m.transitionState="exit-done");break}case"Popped":{let s=a.filter((p,f)=>f>0).filter(p=>p.metadata.poppedBy===null).sort((p,f)=>f.pushedBy.eventDate-p.pushedBy.eventDate)[0],m=e-r.eventDate>=n?"exit-done":"exit-active";s&&(s.metadata.poppedBy=r,s.transitionState=m);break}default:break}});let d=a.find(r=>r.transitionState==="enter-active"||r.transitionState==="exit-active")?"loading":"idle";return{activities:x(a.map(r=>({id:r.id,name:r.name,transitionState:r.transitionState,params:r.params,pushedBy:r.pushedBy})),r=>r.id).sort((r,s)=>g(r,s,m=>m.id)),transitionDuration:n,globalTransitionState:d}}var R=_(require("react-fast-compare"));function w(t,e){let i=[];(0,R.default)(t,e)||i.push({_TAG:"%SOMETHING_CHANGED%"});for(let o=0;o<Math.max(t.activities.length,e.activities.length);o+=1){let n=t.activities[o],a=e.activities[o];!n&&!!a&&i.push({_TAG:a.pushedBy.name==="Pushed"?"PUSHED":"REPLACED",activity:a});let d=(n==null?void 0:n.transitionState)==="exit-done"||(n==null?void 0:n.transitionState)==="exit-active",v=(a==null?void 0:a.transitionState)==="enter-active"||(a==null?void 0:a.transitionState)==="enter-done";d&&v&&i.push({_TAG:a.pushedBy.name==="Pushed"?"PUSHED":"REPLACED",activity:a})}for(let o=Math.max(t.activities.length,e.activities.length)-1;o>=0;o-=1){let n=t.activities[o],a=e.activities[o],d=(n==null?void 0:n.transitionState)==="enter-done"||(n==null?void 0:n.transitionState)==="enter-active",v=(a==null?void 0:a.transitionState)==="exit-active"||(a==null?void 0:a.transitionState)==="exit-done";d&&v&&i.push({_TAG:"POPPED",activity:a})}return i} | ||
| var __create = Object.create; | ||
| var __defProp = Object.defineProperty; | ||
| var __getOwnPropDesc = Object.getOwnPropertyDescriptor; | ||
| var __getOwnPropNames = Object.getOwnPropertyNames; | ||
| var __getOwnPropSymbols = Object.getOwnPropertySymbols; | ||
| var __getProtoOf = Object.getPrototypeOf; | ||
| var __hasOwnProp = Object.prototype.hasOwnProperty; | ||
| var __propIsEnum = Object.prototype.propertyIsEnumerable; | ||
| var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; | ||
| var __spreadValues = (a, b) => { | ||
| for (var prop in b || (b = {})) | ||
| if (__hasOwnProp.call(b, prop)) | ||
| __defNormalProp(a, prop, b[prop]); | ||
| if (__getOwnPropSymbols) | ||
| for (var prop of __getOwnPropSymbols(b)) { | ||
| if (__propIsEnum.call(b, prop)) | ||
| __defNormalProp(a, prop, b[prop]); | ||
| } | ||
| return a; | ||
| }; | ||
| var __export = (target, all) => { | ||
| for (var name in all) | ||
| __defProp(target, name, { get: all[name], enumerable: true }); | ||
| }; | ||
| var __copyProps = (to, from, except, desc) => { | ||
| if (from && typeof from === "object" || typeof from === "function") { | ||
| for (let key of __getOwnPropNames(from)) | ||
| if (!__hasOwnProp.call(to, key) && key !== except) | ||
| __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); | ||
| } | ||
| return to; | ||
| }; | ||
| var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); | ||
| var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); | ||
| // src/index.ts | ||
| var src_exports = {}; | ||
| __export(src_exports, { | ||
| aggregate: () => aggregate, | ||
| id: () => id, | ||
| makeEvent: () => makeEvent, | ||
| produceEffects: () => produceEffects | ||
| }); | ||
| module.exports = __toCommonJS(src_exports); | ||
| // src/event-utils/filterEvents.ts | ||
| function filterEvents(events, eventName) { | ||
| return events.filter((e) => e.name === eventName); | ||
| } | ||
| // src/utils/compareBy.ts | ||
| function compareBy(a, b, selector) { | ||
| const $a = selector(a); | ||
| const $b = selector(b); | ||
| if ($a < $b) { | ||
| return -1; | ||
| } | ||
| if ($a === $b) { | ||
| return 0; | ||
| } | ||
| return 1; | ||
| } | ||
| // src/utils/id.ts | ||
| var counterMap = /* @__PURE__ */ new Map(); | ||
| function id() { | ||
| const t = new Date().getTime().toString(); | ||
| const prevCounter = counterMap.get(t); | ||
| const nextCounter = prevCounter !== void 0 ? prevCounter + 1 : 0; | ||
| if (nextCounter === 0) { | ||
| counterMap = /* @__PURE__ */ new Map(); | ||
| } | ||
| counterMap.set(t, nextCounter); | ||
| return Number(`${t}${nextCounter.toString().padStart(2, "0")}`).toString(16); | ||
| } | ||
| // src/utils/uniqBy.ts | ||
| function uniqBy(arr, by) { | ||
| const valueMap = /* @__PURE__ */ new Map(); | ||
| return [...arr].reverse().filter((item) => { | ||
| const key = by(item); | ||
| if (key === null) { | ||
| return true; | ||
| } | ||
| const exists = !!valueMap.get(key); | ||
| valueMap.set(key, true); | ||
| return !exists; | ||
| }).reverse(); | ||
| } | ||
| // src/event-utils/makeEvent.ts | ||
| function makeEvent(name, parameters) { | ||
| return __spreadValues({ | ||
| id: id(), | ||
| name, | ||
| eventDate: new Date().getTime() | ||
| }, parameters); | ||
| } | ||
| // src/event-utils/validateEvents.ts | ||
| function validateEvents(events) { | ||
| if (events.length === 0) { | ||
| throw new Error("events parameter is empty"); | ||
| } | ||
| const initEvents = filterEvents(events, "Initialized"); | ||
| const activityRegisteredEvents = filterEvents(events, "ActivityRegistered"); | ||
| const pushedEvents = filterEvents(events, "Pushed"); | ||
| if (initEvents.length > 1) { | ||
| throw new Error("InitializedEvent can only exist once"); | ||
| } | ||
| const registeredActivityNames = activityRegisteredEvents.map((e) => e.activityName); | ||
| pushedEvents.forEach((e) => { | ||
| if (!registeredActivityNames.includes(e.activityName)) { | ||
| throw new Error("the corresponding activity does not exist"); | ||
| } | ||
| }); | ||
| } | ||
| // src/aggregate.ts | ||
| function aggregate(events, now) { | ||
| const sortedEvents = uniqBy([...events].sort((a, b) => compareBy(a, b, (e) => e.id)), (e) => e.id); | ||
| validateEvents(sortedEvents); | ||
| const initEvent = filterEvents(sortedEvents, "Initialized")[0]; | ||
| const { transitionDuration } = initEvent; | ||
| const activities = []; | ||
| sortedEvents.forEach((event) => { | ||
| switch (event.name) { | ||
| case "Pushed": { | ||
| const transitionState = now - event.eventDate >= transitionDuration ? "enter-done" : "enter-active"; | ||
| activities.push({ | ||
| id: event.activityId, | ||
| name: event.activityName, | ||
| transitionState, | ||
| params: event.params, | ||
| pushedBy: event, | ||
| metadata: { | ||
| poppedBy: null | ||
| } | ||
| }); | ||
| break; | ||
| } | ||
| case "Replaced": { | ||
| const transitionState = now - event.eventDate >= transitionDuration ? "enter-done" : "enter-active"; | ||
| const targetActivity = activities.filter((activity) => activity.metadata.poppedBy === null).sort((a1, a2) => a2.pushedBy.eventDate - a1.pushedBy.eventDate)[0]; | ||
| activities.push({ | ||
| id: event.activityId, | ||
| name: event.activityName, | ||
| transitionState, | ||
| params: event.params, | ||
| pushedBy: event, | ||
| metadata: { | ||
| poppedBy: null | ||
| } | ||
| }); | ||
| if (targetActivity && transitionState === "enter-done") { | ||
| targetActivity.metadata.poppedBy = event; | ||
| targetActivity.transitionState = "exit-done"; | ||
| } | ||
| break; | ||
| } | ||
| case "Popped": { | ||
| const targetActivity = activities.filter((_, i) => i > 0).filter((activity) => activity.metadata.poppedBy === null).sort((a1, a2) => a2.pushedBy.eventDate - a1.pushedBy.eventDate)[0]; | ||
| const transitionState = now - event.eventDate >= transitionDuration ? "exit-done" : "exit-active"; | ||
| if (targetActivity) { | ||
| targetActivity.metadata.poppedBy = event; | ||
| targetActivity.transitionState = transitionState; | ||
| } | ||
| break; | ||
| } | ||
| default: { | ||
| break; | ||
| } | ||
| } | ||
| }); | ||
| const globalTransitionState = activities.find((activity) => activity.transitionState === "enter-active" || activity.transitionState === "exit-active") ? "loading" : "idle"; | ||
| const output = { | ||
| activities: uniqBy(activities.map((activity) => ({ | ||
| id: activity.id, | ||
| name: activity.name, | ||
| transitionState: activity.transitionState, | ||
| params: activity.params, | ||
| pushedBy: activity.pushedBy | ||
| })), (activity) => activity.id).sort((a, b) => compareBy(a, b, (activity) => activity.id)), | ||
| transitionDuration, | ||
| globalTransitionState | ||
| }; | ||
| return output; | ||
| } | ||
| // src/produceEffects.ts | ||
| var import_react_fast_compare = __toESM(require("react-fast-compare")); | ||
| function produceEffects(prevOutput, nextOutput) { | ||
| const output = []; | ||
| if (!(0, import_react_fast_compare.default)(prevOutput, nextOutput)) { | ||
| output.push({ | ||
| _TAG: "%SOMETHING_CHANGED%" | ||
| }); | ||
| } | ||
| for (let i = 0; i < Math.max(prevOutput.activities.length, nextOutput.activities.length); i += 1) { | ||
| const prevActivity = prevOutput.activities[i]; | ||
| const nextActivity = nextOutput.activities[i]; | ||
| if (!prevActivity && !!nextActivity) { | ||
| output.push({ | ||
| _TAG: nextActivity.pushedBy.name === "Pushed" ? "PUSHED" : "REPLACED", | ||
| activity: nextActivity | ||
| }); | ||
| } | ||
| const isPrevActivityPopped = (prevActivity == null ? void 0 : prevActivity.transitionState) === "exit-done" || (prevActivity == null ? void 0 : prevActivity.transitionState) === "exit-active"; | ||
| const isNextActivityPushed = (nextActivity == null ? void 0 : nextActivity.transitionState) === "enter-active" || (nextActivity == null ? void 0 : nextActivity.transitionState) === "enter-done"; | ||
| if (isPrevActivityPopped && isNextActivityPushed) { | ||
| output.push({ | ||
| _TAG: nextActivity.pushedBy.name === "Pushed" ? "PUSHED" : "REPLACED", | ||
| activity: nextActivity | ||
| }); | ||
| } | ||
| } | ||
| for (let j = Math.max(prevOutput.activities.length, nextOutput.activities.length) - 1; j >= 0; j -= 1) { | ||
| const prevActivity = prevOutput.activities[j]; | ||
| const nextActivity = nextOutput.activities[j]; | ||
| const isPrevActivityPushed = (prevActivity == null ? void 0 : prevActivity.transitionState) === "enter-done" || (prevActivity == null ? void 0 : prevActivity.transitionState) === "enter-active"; | ||
| const isNextActivityPopped = (nextActivity == null ? void 0 : nextActivity.transitionState) === "exit-active" || (nextActivity == null ? void 0 : nextActivity.transitionState) === "exit-done"; | ||
| if (isPrevActivityPushed && isNextActivityPopped) { | ||
| output.push({ | ||
| _TAG: "POPPED", | ||
| activity: nextActivity | ||
| }); | ||
| } | ||
| } | ||
| return output; | ||
| } | ||
| //# sourceMappingURL=index.js.map |
@@ -5,4 +5,4 @@ { | ||
| "sourcesContent": ["export { aggregate } from \"./aggregate\";\nexport {\n Activity,\n ActivityParams,\n ActivityTransitionState,\n AggregateOutput,\n} from \"./AggregateOutput\";\nexport { Effect } from \"./Effect\";\nexport { DomainEvent } from \"./event-types\";\nexport { DispatchEvent, makeEvent } from \"./event-utils\";\nexport * from \"./plugin-types\";\nexport { produceEffects } from \"./produceEffects\";\nexport { id } from \"./utils\";\n", "import { DomainEvent } from \"../event-types\";\n\nexport function filterEvents<T extends DomainEvent[\"name\"]>(\n events: DomainEvent[],\n eventName: T,\n) {\n return events.filter((e) => e.name === eventName) as Array<\n Extract<DomainEvent, { name: T }>\n >;\n}\n", "export function compareBy<T>(a: T, b: T, selector: (element: T) => string) {\n const $a = selector(a);\n const $b = selector(b);\n\n if ($a < $b) {\n return -1;\n }\n if ($a === $b) {\n return 0;\n }\n return 1;\n}\n", "let counterMap = new Map<string, number>();\n\nexport function id() {\n const t = new Date().getTime().toString();\n\n const prevCounter = counterMap.get(t);\n const nextCounter = prevCounter !== undefined ? prevCounter + 1 : 0;\n\n if (nextCounter === 0) {\n counterMap = new Map();\n }\n\n counterMap.set(t, nextCounter);\n\n return Number(`${t}${nextCounter.toString().padStart(2, \"0\")}`).toString(16);\n}\n", "export function uniqBy<T>(arr: T[], by: (item: T) => string | null): T[] {\n const valueMap = new Map<string, true>();\n\n return [...arr]\n .reverse()\n .filter((item) => {\n const key = by(item);\n\n if (key === null) {\n return true;\n }\n\n const exists = !!valueMap.get(key);\n valueMap.set(key, true);\n\n return !exists;\n })\n .reverse();\n}\n", "import { DomainEvent } from \"../event-types\";\nimport { BaseDomainEvent } from \"../event-types/_base\";\nimport { id } from \"../utils\";\n\nexport function makeEvent<T extends DomainEvent[\"name\"]>(\n name: T,\n parameters: Omit<\n Extract<DomainEvent, { name: T }>,\n \"id\" | \"name\" | \"eventDate\"\n > &\n Partial<BaseDomainEvent>,\n) {\n return {\n id: id(),\n name,\n eventDate: new Date().getTime(),\n ...parameters,\n } as Extract<DomainEvent, { name: T }>;\n}\n", "import { DomainEvent } from \"../event-types\";\nimport { filterEvents } from \"./filterEvents\";\n\nexport function validateEvents(events: DomainEvent[]) {\n if (events.length === 0) {\n throw new Error(\"events parameter is empty\");\n }\n\n const initEvents = filterEvents(events, \"Initialized\");\n const activityRegisteredEvents = filterEvents(events, \"ActivityRegistered\");\n const pushedEvents = filterEvents(events, \"Pushed\");\n\n if (initEvents.length > 1) {\n throw new Error(\"InitializedEvent can only exist once\");\n }\n\n const registeredActivityNames = activityRegisteredEvents.map(\n (e) => e.activityName,\n );\n\n pushedEvents.forEach((e) => {\n if (!registeredActivityNames.includes(e.activityName)) {\n throw new Error(\"the corresponding activity does not exist\");\n }\n });\n}\n", "import {\n Activity,\n ActivityTransitionState,\n AggregateOutput,\n} from \"./AggregateOutput\";\nimport { DomainEvent, PoppedEvent, ReplacedEvent } from \"./event-types\";\nimport { filterEvents, validateEvents } from \"./event-utils\";\nimport { compareBy, uniqBy } from \"./utils\";\n\nexport function aggregate(events: DomainEvent[], now: number): AggregateOutput {\n const sortedEvents = uniqBy(\n [...events].sort((a, b) => compareBy(a, b, (e) => e.id)),\n (e) => e.id,\n );\n\n validateEvents(sortedEvents);\n\n const initEvent = filterEvents(sortedEvents, \"Initialized\")[0];\n const { transitionDuration } = initEvent;\n\n type ActivityMetadata = {\n poppedBy: PoppedEvent | ReplacedEvent | null;\n };\n\n const activities: Array<\n Activity & {\n metadata: ActivityMetadata;\n }\n > = [];\n\n sortedEvents.forEach((event) => {\n switch (event.name) {\n case \"Pushed\": {\n const transitionState: ActivityTransitionState =\n now - event.eventDate >= transitionDuration\n ? \"enter-done\"\n : \"enter-active\";\n\n activities.push({\n id: event.activityId,\n name: event.activityName,\n transitionState,\n params: event.params,\n pushedBy: event,\n metadata: {\n poppedBy: null,\n },\n });\n\n break;\n }\n case \"Replaced\": {\n const transitionState: ActivityTransitionState =\n now - event.eventDate >= transitionDuration\n ? \"enter-done\"\n : \"enter-active\";\n\n const targetActivity = activities\n .filter((activity) => activity.metadata.poppedBy === null)\n .sort((a1, a2) => a2.pushedBy.eventDate - a1.pushedBy.eventDate)[0];\n\n activities.push({\n id: event.activityId,\n name: event.activityName,\n transitionState,\n params: event.params,\n pushedBy: event,\n metadata: {\n poppedBy: null,\n },\n });\n\n if (targetActivity && transitionState === \"enter-done\") {\n targetActivity.metadata.poppedBy = event;\n targetActivity.transitionState = \"exit-done\";\n }\n\n break;\n }\n case \"Popped\": {\n const targetActivity = activities\n .filter((_, i) => i > 0)\n .filter((activity) => activity.metadata.poppedBy === null)\n .sort((a1, a2) => a2.pushedBy.eventDate - a1.pushedBy.eventDate)[0];\n\n const transitionState: ActivityTransitionState =\n now - event.eventDate >= transitionDuration\n ? \"exit-done\"\n : \"exit-active\";\n\n if (targetActivity) {\n targetActivity.metadata.poppedBy = event;\n targetActivity.transitionState = transitionState;\n }\n\n break;\n }\n default: {\n break;\n }\n }\n });\n\n const globalTransitionState = activities.find(\n (activity) =>\n activity.transitionState === \"enter-active\" ||\n activity.transitionState === \"exit-active\",\n )\n ? \"loading\"\n : \"idle\";\n\n const output: AggregateOutput = {\n activities: uniqBy(\n activities.map((activity) => ({\n id: activity.id,\n name: activity.name,\n transitionState: activity.transitionState,\n params: activity.params,\n pushedBy: activity.pushedBy,\n })),\n (activity) => activity.id,\n ).sort((a, b) => compareBy(a, b, (activity) => activity.id)),\n transitionDuration,\n globalTransitionState,\n };\n\n return output;\n}\n", "import isEqual from \"react-fast-compare\";\n\nimport { AggregateOutput } from \"./AggregateOutput\";\nimport { Effect } from \"./Effect\";\n\nexport function produceEffects(\n prevOutput: AggregateOutput,\n nextOutput: AggregateOutput,\n): Effect[] {\n const output: Effect[] = [];\n\n if (!isEqual(prevOutput, nextOutput)) {\n output.push({\n _TAG: \"%SOMETHING_CHANGED%\",\n });\n }\n\n for (\n let i = 0;\n i < Math.max(prevOutput.activities.length, nextOutput.activities.length);\n i += 1\n ) {\n const prevActivity = prevOutput.activities[i];\n const nextActivity = nextOutput.activities[i];\n\n if (!prevActivity && !!nextActivity) {\n output.push({\n _TAG: nextActivity.pushedBy.name === \"Pushed\" ? \"PUSHED\" : \"REPLACED\",\n activity: nextActivity,\n });\n }\n\n const isPrevActivityPopped =\n prevActivity?.transitionState === \"exit-done\" ||\n prevActivity?.transitionState === \"exit-active\";\n const isNextActivityPushed =\n nextActivity?.transitionState === \"enter-active\" ||\n nextActivity?.transitionState === \"enter-done\";\n\n if (isPrevActivityPopped && isNextActivityPushed) {\n output.push({\n _TAG: nextActivity.pushedBy.name === \"Pushed\" ? \"PUSHED\" : \"REPLACED\",\n activity: nextActivity,\n });\n }\n }\n for (\n let j =\n Math.max(prevOutput.activities.length, nextOutput.activities.length) - 1;\n j >= 0;\n j -= 1\n ) {\n const prevActivity = prevOutput.activities[j];\n const nextActivity = nextOutput.activities[j];\n\n const isPrevActivityPushed =\n prevActivity?.transitionState === \"enter-done\" ||\n prevActivity?.transitionState === \"enter-active\";\n const isNextActivityPopped =\n nextActivity?.transitionState === \"exit-active\" ||\n nextActivity?.transitionState === \"exit-done\";\n\n if (isPrevActivityPushed && isNextActivityPopped) {\n output.push({\n _TAG: \"POPPED\",\n activity: nextActivity,\n });\n }\n }\n\n return output;\n}\n"], | ||
| "mappings": "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", | ||
| "mappings": "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", | ||
| "names": [] | ||
| } |
+208
-1
@@ -1,2 +0,209 @@ | ||
| var S=Object.defineProperty;var x=Object.getOwnPropertySymbols;var T=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var y=(i,e,t)=>e in i?S(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,h=(i,e)=>{for(var t in e||(e={}))T.call(e,t)&&y(i,t,e[t]);if(x)for(var t of x(e))P.call(e,t)&&y(i,t,e[t]);return i};function c(i,e){return i.filter(t=>t.name===e)}function v(i,e,t){let o=t(i),r=t(e);return o<r?-1:o===r?0:1}var E=new Map;function g(){let i=new Date().getTime().toString(),e=E.get(i),t=e!==void 0?e+1:0;return t===0&&(E=new Map),E.set(i,t),Number(`${i}${t.toString().padStart(2,"0")}`).toString(16)}function l(i,e){let t=new Map;return[...i].reverse().filter(o=>{let r=e(o);if(r===null)return!0;let n=!!t.get(r);return t.set(r,!0),!n}).reverse()}function A(i,e){return h({id:g(),name:i,eventDate:new Date().getTime()},e)}function D(i){if(i.length===0)throw new Error("events parameter is empty");let e=c(i,"Initialized"),t=c(i,"ActivityRegistered"),o=c(i,"Pushed");if(e.length>1)throw new Error("InitializedEvent can only exist once");let r=t.map(n=>n.activityName);o.forEach(n=>{if(!r.includes(n.activityName))throw new Error("the corresponding activity does not exist")})}function B(i,e){let t=l([...i].sort((a,s)=>v(a,s,m=>m.id)),a=>a.id);D(t);let o=c(t,"Initialized")[0],{transitionDuration:r}=o,n=[];t.forEach(a=>{switch(a.name){case"Pushed":{let s=e-a.eventDate>=r?"enter-done":"enter-active";n.push({id:a.activityId,name:a.activityName,transitionState:s,params:a.params,pushedBy:a,metadata:{poppedBy:null}});break}case"Replaced":{let s=e-a.eventDate>=r?"enter-done":"enter-active",m=n.filter(p=>p.metadata.poppedBy===null).sort((p,f)=>f.pushedBy.eventDate-p.pushedBy.eventDate)[0];n.push({id:a.activityId,name:a.activityName,transitionState:s,params:a.params,pushedBy:a,metadata:{poppedBy:null}}),m&&s==="enter-done"&&(m.metadata.poppedBy=a,m.transitionState="exit-done");break}case"Popped":{let s=n.filter((p,f)=>f>0).filter(p=>p.metadata.poppedBy===null).sort((p,f)=>f.pushedBy.eventDate-p.pushedBy.eventDate)[0],m=e-a.eventDate>=r?"exit-done":"exit-active";s&&(s.metadata.poppedBy=a,s.transitionState=m);break}default:break}});let d=n.find(a=>a.transitionState==="enter-active"||a.transitionState==="exit-active")?"loading":"idle";return{activities:l(n.map(a=>({id:a.id,name:a.name,transitionState:a.transitionState,params:a.params,pushedBy:a.pushedBy})),a=>a.id).sort((a,s)=>v(a,s,m=>m.id)),transitionDuration:r,globalTransitionState:d}}import R from"react-fast-compare";function w(i,e){let t=[];R(i,e)||t.push({_TAG:"%SOMETHING_CHANGED%"});for(let o=0;o<Math.max(i.activities.length,e.activities.length);o+=1){let r=i.activities[o],n=e.activities[o];!r&&!!n&&t.push({_TAG:n.pushedBy.name==="Pushed"?"PUSHED":"REPLACED",activity:n});let d=(r==null?void 0:r.transitionState)==="exit-done"||(r==null?void 0:r.transitionState)==="exit-active",u=(n==null?void 0:n.transitionState)==="enter-active"||(n==null?void 0:n.transitionState)==="enter-done";d&&u&&t.push({_TAG:n.pushedBy.name==="Pushed"?"PUSHED":"REPLACED",activity:n})}for(let o=Math.max(i.activities.length,e.activities.length)-1;o>=0;o-=1){let r=i.activities[o],n=e.activities[o],d=(r==null?void 0:r.transitionState)==="enter-done"||(r==null?void 0:r.transitionState)==="enter-active",u=(n==null?void 0:n.transitionState)==="exit-active"||(n==null?void 0:n.transitionState)==="exit-done";d&&u&&t.push({_TAG:"POPPED",activity:n})}return t}export{B as aggregate,g as id,A as makeEvent,w as produceEffects}; | ||
| var __defProp = Object.defineProperty; | ||
| var __getOwnPropSymbols = Object.getOwnPropertySymbols; | ||
| var __hasOwnProp = Object.prototype.hasOwnProperty; | ||
| var __propIsEnum = Object.prototype.propertyIsEnumerable; | ||
| var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; | ||
| var __spreadValues = (a, b) => { | ||
| for (var prop in b || (b = {})) | ||
| if (__hasOwnProp.call(b, prop)) | ||
| __defNormalProp(a, prop, b[prop]); | ||
| if (__getOwnPropSymbols) | ||
| for (var prop of __getOwnPropSymbols(b)) { | ||
| if (__propIsEnum.call(b, prop)) | ||
| __defNormalProp(a, prop, b[prop]); | ||
| } | ||
| return a; | ||
| }; | ||
| // src/event-utils/filterEvents.ts | ||
| function filterEvents(events, eventName) { | ||
| return events.filter((e) => e.name === eventName); | ||
| } | ||
| // src/utils/compareBy.ts | ||
| function compareBy(a, b, selector) { | ||
| const $a = selector(a); | ||
| const $b = selector(b); | ||
| if ($a < $b) { | ||
| return -1; | ||
| } | ||
| if ($a === $b) { | ||
| return 0; | ||
| } | ||
| return 1; | ||
| } | ||
| // src/utils/id.ts | ||
| var counterMap = /* @__PURE__ */ new Map(); | ||
| function id() { | ||
| const t = new Date().getTime().toString(); | ||
| const prevCounter = counterMap.get(t); | ||
| const nextCounter = prevCounter !== void 0 ? prevCounter + 1 : 0; | ||
| if (nextCounter === 0) { | ||
| counterMap = /* @__PURE__ */ new Map(); | ||
| } | ||
| counterMap.set(t, nextCounter); | ||
| return Number(`${t}${nextCounter.toString().padStart(2, "0")}`).toString(16); | ||
| } | ||
| // src/utils/uniqBy.ts | ||
| function uniqBy(arr, by) { | ||
| const valueMap = /* @__PURE__ */ new Map(); | ||
| return [...arr].reverse().filter((item) => { | ||
| const key = by(item); | ||
| if (key === null) { | ||
| return true; | ||
| } | ||
| const exists = !!valueMap.get(key); | ||
| valueMap.set(key, true); | ||
| return !exists; | ||
| }).reverse(); | ||
| } | ||
| // src/event-utils/makeEvent.ts | ||
| function makeEvent(name, parameters) { | ||
| return __spreadValues({ | ||
| id: id(), | ||
| name, | ||
| eventDate: new Date().getTime() | ||
| }, parameters); | ||
| } | ||
| // src/event-utils/validateEvents.ts | ||
| function validateEvents(events) { | ||
| if (events.length === 0) { | ||
| throw new Error("events parameter is empty"); | ||
| } | ||
| const initEvents = filterEvents(events, "Initialized"); | ||
| const activityRegisteredEvents = filterEvents(events, "ActivityRegistered"); | ||
| const pushedEvents = filterEvents(events, "Pushed"); | ||
| if (initEvents.length > 1) { | ||
| throw new Error("InitializedEvent can only exist once"); | ||
| } | ||
| const registeredActivityNames = activityRegisteredEvents.map((e) => e.activityName); | ||
| pushedEvents.forEach((e) => { | ||
| if (!registeredActivityNames.includes(e.activityName)) { | ||
| throw new Error("the corresponding activity does not exist"); | ||
| } | ||
| }); | ||
| } | ||
| // src/aggregate.ts | ||
| function aggregate(events, now) { | ||
| const sortedEvents = uniqBy([...events].sort((a, b) => compareBy(a, b, (e) => e.id)), (e) => e.id); | ||
| validateEvents(sortedEvents); | ||
| const initEvent = filterEvents(sortedEvents, "Initialized")[0]; | ||
| const { transitionDuration } = initEvent; | ||
| const activities = []; | ||
| sortedEvents.forEach((event) => { | ||
| switch (event.name) { | ||
| case "Pushed": { | ||
| const transitionState = now - event.eventDate >= transitionDuration ? "enter-done" : "enter-active"; | ||
| activities.push({ | ||
| id: event.activityId, | ||
| name: event.activityName, | ||
| transitionState, | ||
| params: event.params, | ||
| pushedBy: event, | ||
| metadata: { | ||
| poppedBy: null | ||
| } | ||
| }); | ||
| break; | ||
| } | ||
| case "Replaced": { | ||
| const transitionState = now - event.eventDate >= transitionDuration ? "enter-done" : "enter-active"; | ||
| const targetActivity = activities.filter((activity) => activity.metadata.poppedBy === null).sort((a1, a2) => a2.pushedBy.eventDate - a1.pushedBy.eventDate)[0]; | ||
| activities.push({ | ||
| id: event.activityId, | ||
| name: event.activityName, | ||
| transitionState, | ||
| params: event.params, | ||
| pushedBy: event, | ||
| metadata: { | ||
| poppedBy: null | ||
| } | ||
| }); | ||
| if (targetActivity && transitionState === "enter-done") { | ||
| targetActivity.metadata.poppedBy = event; | ||
| targetActivity.transitionState = "exit-done"; | ||
| } | ||
| break; | ||
| } | ||
| case "Popped": { | ||
| const targetActivity = activities.filter((_, i) => i > 0).filter((activity) => activity.metadata.poppedBy === null).sort((a1, a2) => a2.pushedBy.eventDate - a1.pushedBy.eventDate)[0]; | ||
| const transitionState = now - event.eventDate >= transitionDuration ? "exit-done" : "exit-active"; | ||
| if (targetActivity) { | ||
| targetActivity.metadata.poppedBy = event; | ||
| targetActivity.transitionState = transitionState; | ||
| } | ||
| break; | ||
| } | ||
| default: { | ||
| break; | ||
| } | ||
| } | ||
| }); | ||
| const globalTransitionState = activities.find((activity) => activity.transitionState === "enter-active" || activity.transitionState === "exit-active") ? "loading" : "idle"; | ||
| const output = { | ||
| activities: uniqBy(activities.map((activity) => ({ | ||
| id: activity.id, | ||
| name: activity.name, | ||
| transitionState: activity.transitionState, | ||
| params: activity.params, | ||
| pushedBy: activity.pushedBy | ||
| })), (activity) => activity.id).sort((a, b) => compareBy(a, b, (activity) => activity.id)), | ||
| transitionDuration, | ||
| globalTransitionState | ||
| }; | ||
| return output; | ||
| } | ||
| // src/produceEffects.ts | ||
| import isEqual from "react-fast-compare"; | ||
| function produceEffects(prevOutput, nextOutput) { | ||
| const output = []; | ||
| if (!isEqual(prevOutput, nextOutput)) { | ||
| output.push({ | ||
| _TAG: "%SOMETHING_CHANGED%" | ||
| }); | ||
| } | ||
| for (let i = 0; i < Math.max(prevOutput.activities.length, nextOutput.activities.length); i += 1) { | ||
| const prevActivity = prevOutput.activities[i]; | ||
| const nextActivity = nextOutput.activities[i]; | ||
| if (!prevActivity && !!nextActivity) { | ||
| output.push({ | ||
| _TAG: nextActivity.pushedBy.name === "Pushed" ? "PUSHED" : "REPLACED", | ||
| activity: nextActivity | ||
| }); | ||
| } | ||
| const isPrevActivityPopped = (prevActivity == null ? void 0 : prevActivity.transitionState) === "exit-done" || (prevActivity == null ? void 0 : prevActivity.transitionState) === "exit-active"; | ||
| const isNextActivityPushed = (nextActivity == null ? void 0 : nextActivity.transitionState) === "enter-active" || (nextActivity == null ? void 0 : nextActivity.transitionState) === "enter-done"; | ||
| if (isPrevActivityPopped && isNextActivityPushed) { | ||
| output.push({ | ||
| _TAG: nextActivity.pushedBy.name === "Pushed" ? "PUSHED" : "REPLACED", | ||
| activity: nextActivity | ||
| }); | ||
| } | ||
| } | ||
| for (let j = Math.max(prevOutput.activities.length, nextOutput.activities.length) - 1; j >= 0; j -= 1) { | ||
| const prevActivity = prevOutput.activities[j]; | ||
| const nextActivity = nextOutput.activities[j]; | ||
| const isPrevActivityPushed = (prevActivity == null ? void 0 : prevActivity.transitionState) === "enter-done" || (prevActivity == null ? void 0 : prevActivity.transitionState) === "enter-active"; | ||
| const isNextActivityPopped = (nextActivity == null ? void 0 : nextActivity.transitionState) === "exit-active" || (nextActivity == null ? void 0 : nextActivity.transitionState) === "exit-done"; | ||
| if (isPrevActivityPushed && isNextActivityPopped) { | ||
| output.push({ | ||
| _TAG: "POPPED", | ||
| activity: nextActivity | ||
| }); | ||
| } | ||
| } | ||
| return output; | ||
| } | ||
| export { | ||
| aggregate, | ||
| id, | ||
| makeEvent, | ||
| produceEffects | ||
| }; | ||
| //# sourceMappingURL=index.mjs.map |
@@ -5,4 +5,4 @@ { | ||
| "sourcesContent": ["import { DomainEvent } from \"../event-types\";\n\nexport function filterEvents<T extends DomainEvent[\"name\"]>(\n events: DomainEvent[],\n eventName: T,\n) {\n return events.filter((e) => e.name === eventName) as Array<\n Extract<DomainEvent, { name: T }>\n >;\n}\n", "export function compareBy<T>(a: T, b: T, selector: (element: T) => string) {\n const $a = selector(a);\n const $b = selector(b);\n\n if ($a < $b) {\n return -1;\n }\n if ($a === $b) {\n return 0;\n }\n return 1;\n}\n", "let counterMap = new Map<string, number>();\n\nexport function id() {\n const t = new Date().getTime().toString();\n\n const prevCounter = counterMap.get(t);\n const nextCounter = prevCounter !== undefined ? prevCounter + 1 : 0;\n\n if (nextCounter === 0) {\n counterMap = new Map();\n }\n\n counterMap.set(t, nextCounter);\n\n return Number(`${t}${nextCounter.toString().padStart(2, \"0\")}`).toString(16);\n}\n", "export function uniqBy<T>(arr: T[], by: (item: T) => string | null): T[] {\n const valueMap = new Map<string, true>();\n\n return [...arr]\n .reverse()\n .filter((item) => {\n const key = by(item);\n\n if (key === null) {\n return true;\n }\n\n const exists = !!valueMap.get(key);\n valueMap.set(key, true);\n\n return !exists;\n })\n .reverse();\n}\n", "import { DomainEvent } from \"../event-types\";\nimport { BaseDomainEvent } from \"../event-types/_base\";\nimport { id } from \"../utils\";\n\nexport function makeEvent<T extends DomainEvent[\"name\"]>(\n name: T,\n parameters: Omit<\n Extract<DomainEvent, { name: T }>,\n \"id\" | \"name\" | \"eventDate\"\n > &\n Partial<BaseDomainEvent>,\n) {\n return {\n id: id(),\n name,\n eventDate: new Date().getTime(),\n ...parameters,\n } as Extract<DomainEvent, { name: T }>;\n}\n", "import { DomainEvent } from \"../event-types\";\nimport { filterEvents } from \"./filterEvents\";\n\nexport function validateEvents(events: DomainEvent[]) {\n if (events.length === 0) {\n throw new Error(\"events parameter is empty\");\n }\n\n const initEvents = filterEvents(events, \"Initialized\");\n const activityRegisteredEvents = filterEvents(events, \"ActivityRegistered\");\n const pushedEvents = filterEvents(events, \"Pushed\");\n\n if (initEvents.length > 1) {\n throw new Error(\"InitializedEvent can only exist once\");\n }\n\n const registeredActivityNames = activityRegisteredEvents.map(\n (e) => e.activityName,\n );\n\n pushedEvents.forEach((e) => {\n if (!registeredActivityNames.includes(e.activityName)) {\n throw new Error(\"the corresponding activity does not exist\");\n }\n });\n}\n", "import {\n Activity,\n ActivityTransitionState,\n AggregateOutput,\n} from \"./AggregateOutput\";\nimport { DomainEvent, PoppedEvent, ReplacedEvent } from \"./event-types\";\nimport { filterEvents, validateEvents } from \"./event-utils\";\nimport { compareBy, uniqBy } from \"./utils\";\n\nexport function aggregate(events: DomainEvent[], now: number): AggregateOutput {\n const sortedEvents = uniqBy(\n [...events].sort((a, b) => compareBy(a, b, (e) => e.id)),\n (e) => e.id,\n );\n\n validateEvents(sortedEvents);\n\n const initEvent = filterEvents(sortedEvents, \"Initialized\")[0];\n const { transitionDuration } = initEvent;\n\n type ActivityMetadata = {\n poppedBy: PoppedEvent | ReplacedEvent | null;\n };\n\n const activities: Array<\n Activity & {\n metadata: ActivityMetadata;\n }\n > = [];\n\n sortedEvents.forEach((event) => {\n switch (event.name) {\n case \"Pushed\": {\n const transitionState: ActivityTransitionState =\n now - event.eventDate >= transitionDuration\n ? \"enter-done\"\n : \"enter-active\";\n\n activities.push({\n id: event.activityId,\n name: event.activityName,\n transitionState,\n params: event.params,\n pushedBy: event,\n metadata: {\n poppedBy: null,\n },\n });\n\n break;\n }\n case \"Replaced\": {\n const transitionState: ActivityTransitionState =\n now - event.eventDate >= transitionDuration\n ? \"enter-done\"\n : \"enter-active\";\n\n const targetActivity = activities\n .filter((activity) => activity.metadata.poppedBy === null)\n .sort((a1, a2) => a2.pushedBy.eventDate - a1.pushedBy.eventDate)[0];\n\n activities.push({\n id: event.activityId,\n name: event.activityName,\n transitionState,\n params: event.params,\n pushedBy: event,\n metadata: {\n poppedBy: null,\n },\n });\n\n if (targetActivity && transitionState === \"enter-done\") {\n targetActivity.metadata.poppedBy = event;\n targetActivity.transitionState = \"exit-done\";\n }\n\n break;\n }\n case \"Popped\": {\n const targetActivity = activities\n .filter((_, i) => i > 0)\n .filter((activity) => activity.metadata.poppedBy === null)\n .sort((a1, a2) => a2.pushedBy.eventDate - a1.pushedBy.eventDate)[0];\n\n const transitionState: ActivityTransitionState =\n now - event.eventDate >= transitionDuration\n ? \"exit-done\"\n : \"exit-active\";\n\n if (targetActivity) {\n targetActivity.metadata.poppedBy = event;\n targetActivity.transitionState = transitionState;\n }\n\n break;\n }\n default: {\n break;\n }\n }\n });\n\n const globalTransitionState = activities.find(\n (activity) =>\n activity.transitionState === \"enter-active\" ||\n activity.transitionState === \"exit-active\",\n )\n ? \"loading\"\n : \"idle\";\n\n const output: AggregateOutput = {\n activities: uniqBy(\n activities.map((activity) => ({\n id: activity.id,\n name: activity.name,\n transitionState: activity.transitionState,\n params: activity.params,\n pushedBy: activity.pushedBy,\n })),\n (activity) => activity.id,\n ).sort((a, b) => compareBy(a, b, (activity) => activity.id)),\n transitionDuration,\n globalTransitionState,\n };\n\n return output;\n}\n", "import isEqual from \"react-fast-compare\";\n\nimport { AggregateOutput } from \"./AggregateOutput\";\nimport { Effect } from \"./Effect\";\n\nexport function produceEffects(\n prevOutput: AggregateOutput,\n nextOutput: AggregateOutput,\n): Effect[] {\n const output: Effect[] = [];\n\n if (!isEqual(prevOutput, nextOutput)) {\n output.push({\n _TAG: \"%SOMETHING_CHANGED%\",\n });\n }\n\n for (\n let i = 0;\n i < Math.max(prevOutput.activities.length, nextOutput.activities.length);\n i += 1\n ) {\n const prevActivity = prevOutput.activities[i];\n const nextActivity = nextOutput.activities[i];\n\n if (!prevActivity && !!nextActivity) {\n output.push({\n _TAG: nextActivity.pushedBy.name === \"Pushed\" ? \"PUSHED\" : \"REPLACED\",\n activity: nextActivity,\n });\n }\n\n const isPrevActivityPopped =\n prevActivity?.transitionState === \"exit-done\" ||\n prevActivity?.transitionState === \"exit-active\";\n const isNextActivityPushed =\n nextActivity?.transitionState === \"enter-active\" ||\n nextActivity?.transitionState === \"enter-done\";\n\n if (isPrevActivityPopped && isNextActivityPushed) {\n output.push({\n _TAG: nextActivity.pushedBy.name === \"Pushed\" ? \"PUSHED\" : \"REPLACED\",\n activity: nextActivity,\n });\n }\n }\n for (\n let j =\n Math.max(prevOutput.activities.length, nextOutput.activities.length) - 1;\n j >= 0;\n j -= 1\n ) {\n const prevActivity = prevOutput.activities[j];\n const nextActivity = nextOutput.activities[j];\n\n const isPrevActivityPushed =\n prevActivity?.transitionState === \"enter-done\" ||\n prevActivity?.transitionState === \"enter-active\";\n const isNextActivityPopped =\n nextActivity?.transitionState === \"exit-active\" ||\n nextActivity?.transitionState === \"exit-done\";\n\n if (isPrevActivityPushed && isNextActivityPopped) {\n output.push({\n _TAG: \"POPPED\",\n activity: nextActivity,\n });\n }\n }\n\n return output;\n}\n"], | ||
| "mappings": "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", | ||
| "mappings": "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", | ||
| "names": [] | ||
| } |
+3
-3
| { | ||
| "name": "@stackflow/core", | ||
| "version": "0.2.0", | ||
| "version": "0.2.1", | ||
| "license": "Apache-2.0", | ||
@@ -39,3 +39,3 @@ "exports": { | ||
| "devDependencies": { | ||
| "@stackflow/esbuild-config": "^0.2.0", | ||
| "@stackflow/esbuild-config": "^0.2.1", | ||
| "@swc/core": "^1.2.182", | ||
@@ -60,3 +60,3 @@ "@swc/jest": "^0.2.21", | ||
| }, | ||
| "gitHead": "7fa3ce6d240d2cc8e959cba76f6b21b9fbef8ce9" | ||
| "gitHead": "6b5c4740eec8b308476b36dbd9261fbdad6251f5" | ||
| } |
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
114567
9.54%2695
16.97%2
-50%