@routier/core 0.8.1 → 0.8.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.
@@ -142,6 +142,9 @@ __webpack_require__.r(__webpack_exports__);
142
142
  __webpack_require__.d(__webpack_exports__, {
143
143
  PluginEventResult: () => (/* reexport */ Result/* .PluginEventResult */.D),
144
144
  toPromise: () => (/* reexport */ toPromise),
145
+ pendingLiveQueryState: () => (/* reexport */ pendingLiveQueryState),
146
+ subscribeLiveQuery: () => (/* reexport */ subscribeLiveQuery),
147
+ toLiveQueryState: () => (/* reexport */ toLiveQueryState),
145
148
  Result: () => (/* reexport */ Result/* .Result */.Q)
146
149
  });
147
150
 
@@ -161,11 +164,48 @@ function toPromise(fn) {
161
164
  });
162
165
  }
163
166
 
167
+ ;// CONCATENATED MODULE: ./src/results/liveQuery.ts
168
+
169
+ const pendingLiveQueryState = ()=>({
170
+ status: "pending",
171
+ loading: true,
172
+ isSuccess: false,
173
+ isError: false
174
+ });
175
+ const toLiveQueryState = (result)=>result.ok === Result/* .Result.SUCCESS */.Q.SUCCESS ? {
176
+ status: "success",
177
+ loading: false,
178
+ data: result.data,
179
+ isSuccess: true,
180
+ isError: false
181
+ } : {
182
+ status: "error",
183
+ loading: false,
184
+ error: new Error(result.error?.message || "Unknown error"),
185
+ isSuccess: false,
186
+ isError: true
187
+ };
188
+ const subscribeLiveQuery = (query, onState)=>{
189
+ let active = true;
190
+ const unsubscribe = query((result)=>{
191
+ if (active) {
192
+ onState(toLiveQueryState(result));
193
+ }
194
+ });
195
+ return ()=>{
196
+ active = false;
197
+ if (typeof unsubscribe === "function") {
198
+ unsubscribe();
199
+ }
200
+ };
201
+ };
202
+
164
203
  ;// CONCATENATED MODULE: ./src/results/index.ts
165
204
 
166
205
 
167
206
 
168
207
 
208
+
169
209
  })();
170
210
 
171
211
  module.exports = __webpack_exports__;
@@ -1 +1 @@
1
- {"version":3,"file":"results/index.cjs","sources":["webpack://@routier/core/./src/results/Result.ts","webpack://@routier/core/webpack/runtime/define_property_getters","webpack://@routier/core/webpack/runtime/has_own_property","webpack://@routier/core/webpack/runtime/make_namespace_object","webpack://@routier/core/./src/results/utils.ts","webpack://@routier/core/./src/results/index.ts"],"sourcesContent":["import { PartialResultType, PluginEventPartialResultType, PluginEventResultType, ResultType } from \"./types\";\n\nabstract class BaseResult {\n static ERROR = \"error\" as const;\n static SUCCESS = \"success\" as const;\n static PARTIAL = \"partial\" as const;\n\n static resolve<T>(result: ResultType<T> | PartialResultType<T>, resolve: (data: T) => void, reject: (error?: any) => void) {\n if (result.ok === BaseResult.SUCCESS) {\n resolve(result.data);\n return;\n }\n\n if (result.ok === BaseResult.PARTIAL) {\n reject({\n partial: result.data,\n error: result.error\n });\n return;\n }\n\n reject(result.error);\n }\n\n static assertSuccess<T>(result: any): asserts result is { ok: \"success\"; data: T } {\n if (result.ok !== BaseResult.SUCCESS) {\n throw new Error(`Expected success result, but got ${result.ok}: ${result.error}`);\n }\n }\n}\n\nexport class Result extends BaseResult {\n static success<T>(data: T): ResultType<T>;\n static success(): ResultType<never>;\n static success<T>(data?: T): ResultType<T> {\n return {\n ok: Result.SUCCESS,\n data\n }\n }\n\n static error<T>(error: any): ResultType<T> {\n return {\n ok: Result.ERROR,\n error\n }\n }\n\n static partial<T>(data: T, error: any): PartialResultType<T> {\n return {\n ok: Result.PARTIAL,\n data,\n error\n }\n }\n}\n\nexport class PluginEventResult extends BaseResult {\n static success<T>(id: string, data: T): PluginEventResultType<T>;\n static success(id: string): PluginEventResultType<never>;\n static success<T>(id: string, data?: T): PluginEventResultType<T> {\n return {\n id,\n ok: Result.SUCCESS,\n data\n }\n }\n\n static error<T>(id: string, error: any): PluginEventResultType<T> {\n return {\n id,\n ok: Result.ERROR,\n error\n }\n }\n\n static partial<T>(id: string, data: T, error: any): PluginEventPartialResultType<T> {\n return {\n id,\n ok: Result.PARTIAL,\n data,\n error\n }\n }\n\n static assertSuccess<T>(result: PluginEventResultType<T>): asserts result is { ok: \"success\"; data: T; id: string } {\n if (result.ok !== Result.SUCCESS) {\n throw new Error(`Expected success result, but got ${result.ok}: ${result.error}`);\n }\n }\n}\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { Result } from \"./Result\";\nimport { CallbackResult } from \"./types\";\n\nexport function toPromise<T>(fn: (callback: CallbackResult<T>) => void) {\n return new Promise<T>((resolve, reject) => {\n fn((r) => {\n if (r.ok === Result.ERROR) {\n reject(r.error);\n return;\n }\n\n resolve(r.data);\n });\n });\n}\n","export * from './Result';\nexport * from './types';\nexport * from './utils';"],"names":["BaseResult","result","resolve","reject","Error","Result","data","error","PluginEventResult","id","toPromise","fn","Promise","r"],"mappings":";;;;;;;;AAEA,MAAeA;IACX,OAAO,QAAQ,QAAiB;IAChC,OAAO,UAAU,UAAmB;IACpC,OAAO,UAAU,UAAmB;IAEpC,OAAO,QAAWC,MAA4C,EAAEC,OAA0B,EAAEC,MAA6B,EAAE;QACvH,IAAIF,OAAO,EAAE,KAAKD,WAAW,OAAO,EAAE;YAClCE,QAAQD,OAAO,IAAI;YACnB;QACJ;QAEA,IAAIA,OAAO,EAAE,KAAKD,WAAW,OAAO,EAAE;YAClCG,OAAO;gBACH,SAASF,OAAO,IAAI;gBACpB,OAAOA,OAAO,KAAK;YACvB;YACA;QACJ;QAEAE,OAAOF,OAAO,KAAK;IACvB;IAEA,OAAO,cAAiBA,MAAW,EAAgD;QAC/E,IAAIA,OAAO,EAAE,KAAKD,WAAW,OAAO,EAAE;YAClC,MAAM,IAAII,MAAM,CAAC,iCAAiC,EAAEH,OAAO,EAAE,CAAC,EAAE,EAAEA,OAAO,KAAK,EAAE;QACpF;IACJ;AACJ;AAEO,MAAMI,eAAeL;IAGxB,OAAO,QAAWM,IAAQ,EAAiB;QACvC,OAAO;YACH,IAAID,OAAO,OAAO;YAClBC;QACJ;IACJ;IAEA,OAAO,MAASC,KAAU,EAAiB;QACvC,OAAO;YACH,IAAIF,OAAO,KAAK;YAChBE;QACJ;IACJ;IAEA,OAAO,QAAWD,IAAO,EAAEC,KAAU,EAAwB;QACzD,OAAO;YACH,IAAIF,OAAO,OAAO;YAClBC;YACAC;QACJ;IACJ;AACJ;AAEO,MAAMC,0BAA0BR;IAGnC,OAAO,QAAWS,EAAU,EAAEH,IAAQ,EAA4B;QAC9D,OAAO;YACHG;YACA,IAAIJ,OAAO,OAAO;YAClBC;QACJ;IACJ;IAEA,OAAO,MAASG,EAAU,EAAEF,KAAU,EAA4B;QAC9D,OAAO;YACHE;YACA,IAAIJ,OAAO,KAAK;YAChBE;QACJ;IACJ;IAEA,OAAO,QAAWE,EAAU,EAAEH,IAAO,EAAEC,KAAU,EAAmC;QAChF,OAAO;YACHE;YACA,IAAIJ,OAAO,OAAO;YAClBC;YACAC;QACJ;IACJ;IAEA,OAAO,cAAiBN,MAAgC,EAA4D;QAChH,IAAIA,OAAO,EAAE,KAAKI,OAAO,OAAO,EAAE;YAC9B,MAAM,IAAID,MAAM,CAAC,iCAAiC,EAAEH,OAAO,EAAE,CAAC,EAAE,EAAEA,OAAO,KAAK,EAAE;QACpF;IACJ;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1FA;AACA;AACA;AACA,kDAAkD,wCAAwC;AAC1F;AACA;AACA,E;;;;ACNA,wF;;;;ACAA;AACA;AACA;AACA,uDAAuD,iBAAiB;AACxE;AACA,gDAAgD,aAAa;AAC7D,E;;;;;;;;;;;;;;;;;;ACNkC;AAG3B,SAASS,UAAaC,EAAyC;IAClE,OAAO,IAAIC,QAAW,CAACV,SAASC;QAC5BQ,GAAG,CAACE;YACA,IAAIA,EAAE,EAAE,KAAKR,iCAAY,EAAE;gBACvBF,OAAOU,EAAE,KAAK;gBACd;YACJ;YAEAX,QAAQW,EAAE,IAAI;QAClB;IACJ;AACJ;;;ACdyB;AACD;AACA"}
1
+ {"version":3,"file":"results/index.cjs","sources":["webpack://@routier/core/./src/results/Result.ts","webpack://@routier/core/webpack/runtime/define_property_getters","webpack://@routier/core/webpack/runtime/has_own_property","webpack://@routier/core/webpack/runtime/make_namespace_object","webpack://@routier/core/./src/results/utils.ts","webpack://@routier/core/./src/results/liveQuery.ts","webpack://@routier/core/./src/results/index.ts"],"sourcesContent":["import { PartialResultType, PluginEventPartialResultType, PluginEventResultType, ResultType } from \"./types\";\n\nabstract class BaseResult {\n static ERROR = \"error\" as const;\n static SUCCESS = \"success\" as const;\n static PARTIAL = \"partial\" as const;\n\n static resolve<T>(result: ResultType<T> | PartialResultType<T>, resolve: (data: T) => void, reject: (error?: any) => void) {\n if (result.ok === BaseResult.SUCCESS) {\n resolve(result.data);\n return;\n }\n\n if (result.ok === BaseResult.PARTIAL) {\n reject({\n partial: result.data,\n error: result.error\n });\n return;\n }\n\n reject(result.error);\n }\n\n static assertSuccess<T>(result: any): asserts result is { ok: \"success\"; data: T } {\n if (result.ok !== BaseResult.SUCCESS) {\n throw new Error(`Expected success result, but got ${result.ok}: ${result.error}`);\n }\n }\n}\n\nexport class Result extends BaseResult {\n static success<T>(data: T): ResultType<T>;\n static success(): ResultType<never>;\n static success<T>(data?: T): ResultType<T> {\n return {\n ok: Result.SUCCESS,\n data\n }\n }\n\n static error<T>(error: any): ResultType<T> {\n return {\n ok: Result.ERROR,\n error\n }\n }\n\n static partial<T>(data: T, error: any): PartialResultType<T> {\n return {\n ok: Result.PARTIAL,\n data,\n error\n }\n }\n}\n\nexport class PluginEventResult extends BaseResult {\n static success<T>(id: string, data: T): PluginEventResultType<T>;\n static success(id: string): PluginEventResultType<never>;\n static success<T>(id: string, data?: T): PluginEventResultType<T> {\n return {\n id,\n ok: Result.SUCCESS,\n data\n }\n }\n\n static error<T>(id: string, error: any): PluginEventResultType<T> {\n return {\n id,\n ok: Result.ERROR,\n error\n }\n }\n\n static partial<T>(id: string, data: T, error: any): PluginEventPartialResultType<T> {\n return {\n id,\n ok: Result.PARTIAL,\n data,\n error\n }\n }\n\n static assertSuccess<T>(result: PluginEventResultType<T>): asserts result is { ok: \"success\"; data: T; id: string } {\n if (result.ok !== Result.SUCCESS) {\n throw new Error(`Expected success result, but got ${result.ok}: ${result.error}`);\n }\n }\n}\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { Result } from \"./Result\";\nimport { CallbackResult } from \"./types\";\n\nexport function toPromise<T>(fn: (callback: CallbackResult<T>) => void) {\n return new Promise<T>((resolve, reject) => {\n fn((r) => {\n if (r.ok === Result.ERROR) {\n reject(r.error);\n return;\n }\n\n resolve(r.data);\n });\n });\n}\n","import { Result } from \"./Result\";\nimport { ResultType } from \"./types\";\n\nexport type LiveQuery<T> = (callback: (result: ResultType<T>) => void) => void | (() => void);\n\nexport type LiveQueryState<T> =\n | {\n status: \"pending\";\n loading: true;\n isSuccess: false;\n isError: false;\n }\n | {\n status: \"error\";\n loading: false;\n error: Error;\n isSuccess: false;\n isError: true;\n }\n | {\n status: \"success\";\n loading: false;\n data: T;\n isSuccess: true;\n isError: false;\n };\n\nexport type SettledLiveQueryState<T> = Exclude<LiveQueryState<T>, { status: \"pending\" }>;\n\nexport const pendingLiveQueryState = <T>(): LiveQueryState<T> => ({\n status: \"pending\",\n loading: true,\n isSuccess: false,\n isError: false,\n});\n\nexport const toLiveQueryState = <T>(result: ResultType<T>): SettledLiveQueryState<T> =>\n result.ok === Result.SUCCESS\n ? { status: \"success\", loading: false, data: result.data, isSuccess: true, isError: false }\n : {\n status: \"error\",\n loading: false,\n error: new Error(result.error?.message || \"Unknown error\"),\n isSuccess: false,\n isError: true,\n };\n\nexport const subscribeLiveQuery = <T>(query: LiveQuery<T>, onState: (state: SettledLiveQueryState<T>) => void): (() => void) => {\n let active = true;\n\n const unsubscribe = query((result) => {\n if (active) {\n onState(toLiveQueryState(result));\n }\n });\n\n return () => {\n active = false;\n\n if (typeof unsubscribe === \"function\") {\n unsubscribe();\n }\n };\n};\n","export * from './Result';\nexport * from './types';\nexport * from './utils';export * from './liveQuery';\n"],"names":["BaseResult","result","resolve","reject","Error","Result","data","error","PluginEventResult","id","toPromise","fn","Promise","r","pendingLiveQueryState","toLiveQueryState","subscribeLiveQuery","query","onState","active","unsubscribe"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from './Result';
2
2
  export * from './types';
3
3
  export * from './utils';
4
+ export * from './liveQuery';
@@ -128,6 +128,9 @@ var __webpack_exports__ = {};
128
128
  __webpack_require__.d(__webpack_exports__, {
129
129
  Dq: () => (/* reexport */ Result/* .PluginEventResult */.D),
130
130
  Q7: () => (/* reexport */ Result/* .Result */.Q),
131
+ jk: () => (/* reexport */ subscribeLiveQuery),
132
+ T: () => (/* reexport */ pendingLiveQueryState),
133
+ RV: () => (/* reexport */ toLiveQueryState),
131
134
  hq: () => (/* reexport */ toPromise)
132
135
  });
133
136
 
@@ -147,16 +150,56 @@ function toPromise(fn) {
147
150
  });
148
151
  }
149
152
 
153
+ ;// CONCATENATED MODULE: ./src/results/liveQuery.ts
154
+
155
+ const pendingLiveQueryState = ()=>({
156
+ status: "pending",
157
+ loading: true,
158
+ isSuccess: false,
159
+ isError: false
160
+ });
161
+ const toLiveQueryState = (result)=>result.ok === Result/* .Result.SUCCESS */.Q.SUCCESS ? {
162
+ status: "success",
163
+ loading: false,
164
+ data: result.data,
165
+ isSuccess: true,
166
+ isError: false
167
+ } : {
168
+ status: "error",
169
+ loading: false,
170
+ error: new Error(result.error?.message || "Unknown error"),
171
+ isSuccess: false,
172
+ isError: true
173
+ };
174
+ const subscribeLiveQuery = (query, onState)=>{
175
+ let active = true;
176
+ const unsubscribe = query((result)=>{
177
+ if (active) {
178
+ onState(toLiveQueryState(result));
179
+ }
180
+ });
181
+ return ()=>{
182
+ active = false;
183
+ if (typeof unsubscribe === "function") {
184
+ unsubscribe();
185
+ }
186
+ };
187
+ };
188
+
150
189
  ;// CONCATENATED MODULE: ./src/results/index.ts
151
190
 
152
191
 
153
192
 
154
193
 
194
+
155
195
  })();
156
196
 
157
197
  var __webpack_exports__PluginEventResult = __webpack_exports__.Dq;
158
198
  var __webpack_exports__Result = __webpack_exports__.Q7;
199
+ var __webpack_exports__pendingLiveQueryState = __webpack_exports__.T;
200
+ var __webpack_exports__subscribeLiveQuery = __webpack_exports__.jk;
201
+ var __webpack_exports__toLiveQueryState = __webpack_exports__.RV;
159
202
  var __webpack_exports__toPromise = __webpack_exports__.hq;
160
- export { __webpack_exports__PluginEventResult as PluginEventResult, __webpack_exports__Result as Result, __webpack_exports__toPromise as toPromise };
203
+ export { __webpack_exports__PluginEventResult as PluginEventResult, __webpack_exports__Result as Result, __webpack_exports__pendingLiveQueryState as pendingLiveQueryState, __webpack_exports__subscribeLiveQuery as subscribeLiveQuery, __webpack_exports__toLiveQueryState as toLiveQueryState, __webpack_exports__toPromise as toPromise };
161
204
 
162
205
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"results/index.js","sources":["webpack://@routier/core/./src/results/Result.ts","webpack://@routier/core/webpack/runtime/define_property_getters","webpack://@routier/core/webpack/runtime/has_own_property","webpack://@routier/core/./src/results/utils.ts","webpack://@routier/core/./src/results/index.ts"],"sourcesContent":["import { PartialResultType, PluginEventPartialResultType, PluginEventResultType, ResultType } from \"./types\";\n\nabstract class BaseResult {\n static ERROR = \"error\" as const;\n static SUCCESS = \"success\" as const;\n static PARTIAL = \"partial\" as const;\n\n static resolve<T>(result: ResultType<T> | PartialResultType<T>, resolve: (data: T) => void, reject: (error?: any) => void) {\n if (result.ok === BaseResult.SUCCESS) {\n resolve(result.data);\n return;\n }\n\n if (result.ok === BaseResult.PARTIAL) {\n reject({\n partial: result.data,\n error: result.error\n });\n return;\n }\n\n reject(result.error);\n }\n\n static assertSuccess<T>(result: any): asserts result is { ok: \"success\"; data: T } {\n if (result.ok !== BaseResult.SUCCESS) {\n throw new Error(`Expected success result, but got ${result.ok}: ${result.error}`);\n }\n }\n}\n\nexport class Result extends BaseResult {\n static success<T>(data: T): ResultType<T>;\n static success(): ResultType<never>;\n static success<T>(data?: T): ResultType<T> {\n return {\n ok: Result.SUCCESS,\n data\n }\n }\n\n static error<T>(error: any): ResultType<T> {\n return {\n ok: Result.ERROR,\n error\n }\n }\n\n static partial<T>(data: T, error: any): PartialResultType<T> {\n return {\n ok: Result.PARTIAL,\n data,\n error\n }\n }\n}\n\nexport class PluginEventResult extends BaseResult {\n static success<T>(id: string, data: T): PluginEventResultType<T>;\n static success(id: string): PluginEventResultType<never>;\n static success<T>(id: string, data?: T): PluginEventResultType<T> {\n return {\n id,\n ok: Result.SUCCESS,\n data\n }\n }\n\n static error<T>(id: string, error: any): PluginEventResultType<T> {\n return {\n id,\n ok: Result.ERROR,\n error\n }\n }\n\n static partial<T>(id: string, data: T, error: any): PluginEventPartialResultType<T> {\n return {\n id,\n ok: Result.PARTIAL,\n data,\n error\n }\n }\n\n static assertSuccess<T>(result: PluginEventResultType<T>): asserts result is { ok: \"success\"; data: T; id: string } {\n if (result.ok !== Result.SUCCESS) {\n throw new Error(`Expected success result, but got ${result.ok}: ${result.error}`);\n }\n }\n}\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import { Result } from \"./Result\";\nimport { CallbackResult } from \"./types\";\n\nexport function toPromise<T>(fn: (callback: CallbackResult<T>) => void) {\n return new Promise<T>((resolve, reject) => {\n fn((r) => {\n if (r.ok === Result.ERROR) {\n reject(r.error);\n return;\n }\n\n resolve(r.data);\n });\n });\n}\n","export * from './Result';\nexport * from './types';\nexport * from './utils';"],"names":["BaseResult","result","resolve","reject","Error","Result","data","error","PluginEventResult","id","toPromise","fn","Promise","r"],"mappings":";;;;;;AAEA,MAAeA;IACX,OAAO,QAAQ,QAAiB;IAChC,OAAO,UAAU,UAAmB;IACpC,OAAO,UAAU,UAAmB;IAEpC,OAAO,QAAWC,MAA4C,EAAEC,OAA0B,EAAEC,MAA6B,EAAE;QACvH,IAAIF,OAAO,EAAE,KAAKD,WAAW,OAAO,EAAE;YAClCE,QAAQD,OAAO,IAAI;YACnB;QACJ;QAEA,IAAIA,OAAO,EAAE,KAAKD,WAAW,OAAO,EAAE;YAClCG,OAAO;gBACH,SAASF,OAAO,IAAI;gBACpB,OAAOA,OAAO,KAAK;YACvB;YACA;QACJ;QAEAE,OAAOF,OAAO,KAAK;IACvB;IAEA,OAAO,cAAiBA,MAAW,EAAgD;QAC/E,IAAIA,OAAO,EAAE,KAAKD,WAAW,OAAO,EAAE;YAClC,MAAM,IAAII,MAAM,CAAC,iCAAiC,EAAEH,OAAO,EAAE,CAAC,EAAE,EAAEA,OAAO,KAAK,EAAE;QACpF;IACJ;AACJ;AAEO,MAAMI,eAAeL;IAGxB,OAAO,QAAWM,IAAQ,EAAiB;QACvC,OAAO;YACH,IAAID,OAAO,OAAO;YAClBC;QACJ;IACJ;IAEA,OAAO,MAASC,KAAU,EAAiB;QACvC,OAAO;YACH,IAAIF,OAAO,KAAK;YAChBE;QACJ;IACJ;IAEA,OAAO,QAAWD,IAAO,EAAEC,KAAU,EAAwB;QACzD,OAAO;YACH,IAAIF,OAAO,OAAO;YAClBC;YACAC;QACJ;IACJ;AACJ;AAEO,MAAMC,0BAA0BR;IAGnC,OAAO,QAAWS,EAAU,EAAEH,IAAQ,EAA4B;QAC9D,OAAO;YACHG;YACA,IAAIJ,OAAO,OAAO;YAClBC;QACJ;IACJ;IAEA,OAAO,MAASG,EAAU,EAAEF,KAAU,EAA4B;QAC9D,OAAO;YACHE;YACA,IAAIJ,OAAO,KAAK;YAChBE;QACJ;IACJ;IAEA,OAAO,QAAWE,EAAU,EAAEH,IAAO,EAAEC,KAAU,EAAmC;QAChF,OAAO;YACHE;YACA,IAAIJ,OAAO,OAAO;YAClBC;YACAC;QACJ;IACJ;IAEA,OAAO,cAAiBN,MAAgC,EAA4D;QAChH,IAAIA,OAAO,EAAE,KAAKI,OAAO,OAAO,EAAE;YAC9B,MAAM,IAAID,MAAM,CAAC,iCAAiC,EAAEH,OAAO,EAAE,CAAC,EAAE,EAAEA,OAAO,KAAK,EAAE;QACpF;IACJ;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1FA;AACA;AACA;AACA,kDAAkD,wCAAwC;AAC1F;AACA;AACA,E;;;;ACNA,wF;;;;;;;;;;;;;;;;ACAkC;AAG3B,SAASS,UAAaC,EAAyC;IAClE,OAAO,IAAIC,QAAW,CAACV,SAASC;QAC5BQ,GAAG,CAACE;YACA,IAAIA,EAAE,EAAE,KAAKR,iCAAY,EAAE;gBACvBF,OAAOU,EAAE,KAAK;gBACd;YACJ;YAEAX,QAAQW,EAAE,IAAI;QAClB;IACJ;AACJ;;;ACdyB;AACD;AACA"}
1
+ {"version":3,"file":"results/index.js","sources":["webpack://@routier/core/./src/results/Result.ts","webpack://@routier/core/webpack/runtime/define_property_getters","webpack://@routier/core/webpack/runtime/has_own_property","webpack://@routier/core/./src/results/utils.ts","webpack://@routier/core/./src/results/liveQuery.ts","webpack://@routier/core/./src/results/index.ts"],"sourcesContent":["import { PartialResultType, PluginEventPartialResultType, PluginEventResultType, ResultType } from \"./types\";\n\nabstract class BaseResult {\n static ERROR = \"error\" as const;\n static SUCCESS = \"success\" as const;\n static PARTIAL = \"partial\" as const;\n\n static resolve<T>(result: ResultType<T> | PartialResultType<T>, resolve: (data: T) => void, reject: (error?: any) => void) {\n if (result.ok === BaseResult.SUCCESS) {\n resolve(result.data);\n return;\n }\n\n if (result.ok === BaseResult.PARTIAL) {\n reject({\n partial: result.data,\n error: result.error\n });\n return;\n }\n\n reject(result.error);\n }\n\n static assertSuccess<T>(result: any): asserts result is { ok: \"success\"; data: T } {\n if (result.ok !== BaseResult.SUCCESS) {\n throw new Error(`Expected success result, but got ${result.ok}: ${result.error}`);\n }\n }\n}\n\nexport class Result extends BaseResult {\n static success<T>(data: T): ResultType<T>;\n static success(): ResultType<never>;\n static success<T>(data?: T): ResultType<T> {\n return {\n ok: Result.SUCCESS,\n data\n }\n }\n\n static error<T>(error: any): ResultType<T> {\n return {\n ok: Result.ERROR,\n error\n }\n }\n\n static partial<T>(data: T, error: any): PartialResultType<T> {\n return {\n ok: Result.PARTIAL,\n data,\n error\n }\n }\n}\n\nexport class PluginEventResult extends BaseResult {\n static success<T>(id: string, data: T): PluginEventResultType<T>;\n static success(id: string): PluginEventResultType<never>;\n static success<T>(id: string, data?: T): PluginEventResultType<T> {\n return {\n id,\n ok: Result.SUCCESS,\n data\n }\n }\n\n static error<T>(id: string, error: any): PluginEventResultType<T> {\n return {\n id,\n ok: Result.ERROR,\n error\n }\n }\n\n static partial<T>(id: string, data: T, error: any): PluginEventPartialResultType<T> {\n return {\n id,\n ok: Result.PARTIAL,\n data,\n error\n }\n }\n\n static assertSuccess<T>(result: PluginEventResultType<T>): asserts result is { ok: \"success\"; data: T; id: string } {\n if (result.ok !== Result.SUCCESS) {\n throw new Error(`Expected success result, but got ${result.ok}: ${result.error}`);\n }\n }\n}\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import { Result } from \"./Result\";\nimport { CallbackResult } from \"./types\";\n\nexport function toPromise<T>(fn: (callback: CallbackResult<T>) => void) {\n return new Promise<T>((resolve, reject) => {\n fn((r) => {\n if (r.ok === Result.ERROR) {\n reject(r.error);\n return;\n }\n\n resolve(r.data);\n });\n });\n}\n","import { Result } from \"./Result\";\nimport { ResultType } from \"./types\";\n\nexport type LiveQuery<T> = (callback: (result: ResultType<T>) => void) => void | (() => void);\n\nexport type LiveQueryState<T> =\n | {\n status: \"pending\";\n loading: true;\n isSuccess: false;\n isError: false;\n }\n | {\n status: \"error\";\n loading: false;\n error: Error;\n isSuccess: false;\n isError: true;\n }\n | {\n status: \"success\";\n loading: false;\n data: T;\n isSuccess: true;\n isError: false;\n };\n\nexport type SettledLiveQueryState<T> = Exclude<LiveQueryState<T>, { status: \"pending\" }>;\n\nexport const pendingLiveQueryState = <T>(): LiveQueryState<T> => ({\n status: \"pending\",\n loading: true,\n isSuccess: false,\n isError: false,\n});\n\nexport const toLiveQueryState = <T>(result: ResultType<T>): SettledLiveQueryState<T> =>\n result.ok === Result.SUCCESS\n ? { status: \"success\", loading: false, data: result.data, isSuccess: true, isError: false }\n : {\n status: \"error\",\n loading: false,\n error: new Error(result.error?.message || \"Unknown error\"),\n isSuccess: false,\n isError: true,\n };\n\nexport const subscribeLiveQuery = <T>(query: LiveQuery<T>, onState: (state: SettledLiveQueryState<T>) => void): (() => void) => {\n let active = true;\n\n const unsubscribe = query((result) => {\n if (active) {\n onState(toLiveQueryState(result));\n }\n });\n\n return () => {\n active = false;\n\n if (typeof unsubscribe === \"function\") {\n unsubscribe();\n }\n };\n};\n","export * from './Result';\nexport * from './types';\nexport * from './utils';export * from './liveQuery';\n"],"names":["BaseResult","result","resolve","reject","Error","Result","data","error","PluginEventResult","id","toPromise","fn","Promise","r","pendingLiveQueryState","toLiveQueryState","subscribeLiveQuery","query","onState","active","unsubscribe"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { ResultType } from "./types";
2
+ export type LiveQuery<T> = (callback: (result: ResultType<T>) => void) => void | (() => void);
3
+ export type LiveQueryState<T> = {
4
+ status: "pending";
5
+ loading: true;
6
+ isSuccess: false;
7
+ isError: false;
8
+ } | {
9
+ status: "error";
10
+ loading: false;
11
+ error: Error;
12
+ isSuccess: false;
13
+ isError: true;
14
+ } | {
15
+ status: "success";
16
+ loading: false;
17
+ data: T;
18
+ isSuccess: true;
19
+ isError: false;
20
+ };
21
+ export type SettledLiveQueryState<T> = Exclude<LiveQueryState<T>, {
22
+ status: "pending";
23
+ }>;
24
+ export declare const pendingLiveQueryState: <T>() => LiveQueryState<T>;
25
+ export declare const toLiveQueryState: <T>(result: ResultType<T>) => SettledLiveQueryState<T>;
26
+ export declare const subscribeLiveQuery: <T>(query: LiveQuery<T>, onState: (state: SettledLiveQueryState<T>) => void) => (() => void);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@routier/core",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
4
4
  "main": "./dist/index.cjs",
5
5
  "types": "./dist/index.d.ts",
6
6
  "source": "./src/index.ts",