@microzord/core 1.0.0-alpha.1 → 1.0.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.
Files changed (93) hide show
  1. package/README.md +3 -4
  2. package/bundles/microzord-core-testing.umd.js +494 -0
  3. package/bundles/microzord-core-testing.umd.js.map +1 -0
  4. package/bundles/microzord-core.umd.js +310 -105
  5. package/bundles/microzord-core.umd.js.map +1 -1
  6. package/esm2015/index.js +8 -2
  7. package/esm2015/index.js.map +1 -1
  8. package/esm2015/index.metadata.json +1 -1
  9. package/esm2015/lib/helpers/bootstrap-app.js +4 -6
  10. package/esm2015/lib/helpers/bootstrap-app.js.map +1 -1
  11. package/esm2015/lib/helpers/bootstrap-app.metadata.json +1 -1
  12. package/esm2015/lib/helpers/construct-and-bootstrap-app.js +7 -0
  13. package/esm2015/lib/helpers/construct-and-bootstrap-app.js.map +1 -0
  14. package/esm2015/lib/helpers/construct-and-bootstrap-app.metadata.json +1 -0
  15. package/esm2015/lib/helpers/construct-app.js +10 -0
  16. package/esm2015/lib/helpers/construct-app.js.map +1 -0
  17. package/esm2015/lib/helpers/construct-app.metadata.json +1 -0
  18. package/esm2015/lib/helpers/get-app.js +5 -0
  19. package/esm2015/lib/helpers/get-app.js.map +1 -0
  20. package/esm2015/lib/helpers/get-app.metadata.json +1 -0
  21. package/esm2015/lib/helpers/get-entity.js +6 -0
  22. package/esm2015/lib/helpers/get-entity.js.map +1 -0
  23. package/esm2015/lib/helpers/get-entity.metadata.json +1 -0
  24. package/esm2015/lib/helpers/load-app.js +11 -0
  25. package/esm2015/lib/helpers/load-app.js.map +1 -0
  26. package/esm2015/lib/helpers/load-app.metadata.json +1 -0
  27. package/esm2015/lib/helpers/load-entity.js +24 -0
  28. package/esm2015/lib/helpers/load-entity.js.map +1 -0
  29. package/esm2015/lib/helpers/load-entity.metadata.json +1 -0
  30. package/esm2015/lib/helpers/register-app.js +2 -2
  31. package/esm2015/lib/helpers/register-app.js.map +1 -1
  32. package/esm2015/lib/helpers/register-entity.js +5 -0
  33. package/esm2015/lib/helpers/register-entity.js.map +1 -0
  34. package/esm2015/lib/helpers/register-entity.metadata.json +1 -0
  35. package/esm2015/lib/helpers/replace-apps.js +2 -2
  36. package/esm2015/lib/helpers/replace-apps.js.map +1 -1
  37. package/esm2015/lib/models/application.js +2 -0
  38. package/esm2015/lib/models/application.js.map +1 -1
  39. package/esm2015/lib/models/application.metadata.json +1 -1
  40. package/esm2015/lib/models/entity.js +2 -0
  41. package/esm2015/lib/models/entity.js.map +1 -0
  42. package/esm2015/lib/models/entity.metadata.json +1 -0
  43. package/esm2015/lib/models/registration-options.js.map +1 -1
  44. package/esm2015/lib/models/registration-options.metadata.json +1 -1
  45. package/esm2015/lib/registry.js +19 -2
  46. package/esm2015/lib/registry.js.map +1 -1
  47. package/esm2015/lib/registry.metadata.json +1 -1
  48. package/esm2015/microzord-core.js +1 -1
  49. package/esm2015/microzord-core.js.map +1 -1
  50. package/esm2015/microzord-core.metadata.json +1 -1
  51. package/esm2015/testing/application.mock.js +10 -0
  52. package/esm2015/testing/application.mock.js.map +1 -0
  53. package/esm2015/testing/application.mock.metadata.json +1 -0
  54. package/esm2015/testing/microzord-core-testing.js +5 -0
  55. package/esm2015/testing/microzord-core-testing.js.map +1 -0
  56. package/esm2015/testing/microzord-core-testing.metadata.json +1 -0
  57. package/esm2015/testing/public_api.js +2 -0
  58. package/esm2015/testing/public_api.js.map +1 -0
  59. package/esm2015/testing/public_api.metadata.json +1 -0
  60. package/fesm2015/microzord-core-testing.js +17 -0
  61. package/fesm2015/microzord-core-testing.js.map +1 -0
  62. package/fesm2015/microzord-core.js +109 -66
  63. package/fesm2015/microzord-core.js.map +1 -1
  64. package/index.d.ts +8 -2
  65. package/lib/helpers/bootstrap-app.d.ts +1 -1
  66. package/lib/helpers/construct-and-bootstrap-app.d.ts +3 -0
  67. package/lib/helpers/construct-app.d.ts +3 -0
  68. package/lib/helpers/get-app.d.ts +3 -0
  69. package/lib/helpers/get-entity.d.ts +3 -0
  70. package/lib/helpers/load-app.d.ts +3 -0
  71. package/lib/helpers/load-entity.d.ts +3 -0
  72. package/lib/helpers/register-app.d.ts +2 -2
  73. package/lib/helpers/register-entity.d.ts +2 -0
  74. package/lib/models/application.d.ts +3 -4
  75. package/lib/models/entity.d.ts +3 -0
  76. package/lib/models/registration-options.d.ts +4 -2
  77. package/lib/registry.d.ts +11 -4
  78. package/microzord-core.d.ts +1 -1
  79. package/microzord-core.metadata.json +1 -1
  80. package/package.json +4 -4
  81. package/testing/application.mock.d.ts +5 -0
  82. package/testing/microzord-core-testing.d.ts +4 -0
  83. package/testing/microzord-core-testing.metadata.json +1 -0
  84. package/testing/package.json +11 -0
  85. package/testing/public_api.d.ts +1 -0
  86. package/esm2015/lib/helpers/get-app-constructor.js +0 -6
  87. package/esm2015/lib/helpers/get-app-constructor.js.map +0 -1
  88. package/esm2015/lib/helpers/get-app-constructor.metadata.json +0 -1
  89. package/esm2015/lib/helpers/load-app-constructor.js +0 -24
  90. package/esm2015/lib/helpers/load-app-constructor.js.map +0 -1
  91. package/esm2015/lib/helpers/load-app-constructor.metadata.json +0 -1
  92. package/lib/helpers/get-app-constructor.d.ts +0 -3
  93. package/lib/helpers/load-app-constructor.d.ts +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"microzord-core.umd.js","sources":["../../../../libs/core/src/lib/registry.ts","../../../../libs/core/src/lib/helpers/get-app-constructor.ts","../../../../libs/core/src/lib/helpers/load-app-constructor.ts","../../../../libs/core/src/lib/helpers/bootstrap-app.ts","../../../../libs/core/src/lib/helpers/register-app.ts","../../../../libs/core/src/lib/helpers/replace-apps.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../libs/core/src/lib/models/application.ts","../../../../libs/core/src/lib/models/events.ts","../../../../libs/core/src/lib/models/lifecycle.ts","../../../../libs/core/src/microzord-core.ts"],"sourcesContent":["import {ApplicationConstructor} from './models/application';\nimport {RegistrationOptions} from './models/registration-options';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const appOptionsRegistry = new Map<string, RegistrationOptions<any>>();\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const loadedAppRegistry = new Map<string, ApplicationConstructor<any>>();\n","import {Observable, of} from 'rxjs';\nimport {ApplicationConstructor} from '../models/application';\nimport {loadedAppRegistry} from '../registry';\n\nexport function getAppConstructor<T extends Record<string, any> = Record<string, any>>(\n appName: string,\n): Observable<ApplicationConstructor<T> | null> {\n return of(loadedAppRegistry.get(appName) || null);\n}\n","import {defer, isObservable, Observable, of} from 'rxjs';\nimport {catchError, switchMap, tap} from 'rxjs/operators';\nimport {ApplicationConstructor} from '../models/application';\nimport {appOptionsRegistry, loadedAppRegistry} from '../registry';\nimport {getAppConstructor} from './get-app-constructor';\n\nexport function loadAppConstructor<T extends Record<string, any> = Record<string, any>>(\n appName: string,\n): Observable<ApplicationConstructor<T>> {\n return getAppConstructor<T>(appName).pipe(\n switchMap(appConstructor =>\n appConstructor\n ? of(appConstructor)\n : defer(() => {\n const appOptions = appOptionsRegistry.get(appName);\n\n if (!appOptions) {\n throw `Microzord appliction \"${appName}\" has not been registered. Check the spelling or register an app.`;\n }\n\n if (!appOptions.loadApp) {\n throw `Microzord appliction \"${appName}\" is registered but it has no \"loadApp\" function. Please, provide it`;\n }\n\n const result = appOptions.loadApp(appOptions.props);\n\n return result &&\n (isObservable(result) ||\n ('then' in result && typeof result['then'] === 'function'))\n ? defer(() => result)\n : of(result as ApplicationConstructor<T>);\n }),\n ),\n tap(applicationConstructor => loadedAppRegistry.set(appName, applicationConstructor)),\n );\n}\n","import {defer, Observable} from 'rxjs';\nimport {map, mapTo, switchMap} from 'rxjs/operators';\nimport {Application} from '../models/application';\nimport {appOptionsRegistry} from '../registry';\nimport {loadAppConstructor} from './load-app-constructor';\n\nexport function bootstrapApp<T extends Record<string, any> = Record<string, any>>(\n appName: string,\n selector: string | Element,\n props?: T,\n): Observable<Application<T>> {\n return loadAppConstructor<T>(appName).pipe(\n map(\n AppConstructor =>\n new AppConstructor(appName, appOptionsRegistry.get(appName)?.props),\n ),\n switchMap(app =>\n defer(() => (console.log(props), app.bootstrap(selector, props))).pipe(mapTo(app)),\n ),\n );\n}\n","import {appOptionsRegistry} from '../registry';\nimport {RegistrationOptions} from '../models/registration-options';\n\nexport function registerApp<T extends Record<string, any> = Record<string, any>>(\n options: RegistrationOptions<T>,\n) {\n appOptionsRegistry.set(options.name, options);\n}\n","import {defer, Observable} from 'rxjs';\nimport {Application} from '../models/application';\nimport {bootstrapApp} from './bootstrap-app';\n\nexport function replaceApps<T extends Record<string, any> = Record<string, any>>(\n from: Application,\n to: string,\n props?: T,\n): Observable<Application<T>> {\n return defer(() => {\n from.destroy();\n\n return bootstrapApp(to, from.container, props);\n });\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {MicrozordEvent, MicrozordMessageEvent, MicrozordNavigationEvent} from './events';\nimport {MicrozordLifecycleEvent} from './lifecycle';\n\nexport type Listener<T extends MicrozordEvent> = (event: T) => void;\n\nexport abstract class Application<T extends Record<string, any> = Record<string, any>> {\n isBootstrapped = false;\n isDestroyed = true;\n container: Element | string = '';\n\n protected readonly hook = new Set<Listener<MicrozordLifecycleEvent>>();\n protected readonly message = new Set<Listener<MicrozordMessageEvent>>();\n protected readonly navigationEvent = new Set<Listener<MicrozordNavigationEvent>>();\n\n // todo: заспекать типы props\n constructor(public readonly name: string, public props?: T) {}\n\n onMessage(fn: Listener<MicrozordMessageEvent>): () => void {\n this.message.add(fn);\n\n return () => {\n this.message.delete(fn);\n };\n }\n\n emitMessage(event: MicrozordMessageEvent) {\n this.callListeners(this.message, event);\n }\n\n onRouteChange(fn: Listener<MicrozordNavigationEvent>): () => void {\n this.navigationEvent.add(fn);\n\n return () => {\n this.navigationEvent.delete(fn);\n };\n }\n\n emitRouteChange(event: MicrozordNavigationEvent) {\n this.callListeners(this.navigationEvent, event);\n }\n\n onHook(fn: Listener<MicrozordLifecycleEvent>): () => void {\n this.hook.add(fn);\n\n return () => {\n this.hook.delete(fn);\n };\n }\n\n emitHook(event: MicrozordLifecycleEvent) {\n this.callListeners(this.hook, event);\n }\n\n destroy() {\n this.hook.clear(); // todo: в этот поток перед комплитом нужен евент дестроя\n this.message.clear();\n this.navigationEvent.clear();\n\n this.isBootstrapped = false;\n this.isDestroyed = true;\n }\n\n async bootstrap(container: string | Element, _props?: T): Promise<void> {\n this.isBootstrapped = true;\n this.container = container;\n }\n\n abstract send(msg: string | MicrozordMessageEvent): Promise<void>;\n\n // todo: шо за пропс? Надо придумать\n abstract navigate(url: string, props?: unknown): Promise<void>;\n\n protected callListeners<K extends MicrozordEvent>(\n listeners: Set<Listener<K>>,\n event: K,\n ) {\n event.target = this;\n\n [...listeners].forEach(fn => {\n fn(event);\n });\n }\n}\n\nexport interface ApplicationConstructor<\n T extends Record<string, any> = Record<string, any>,\n> {\n new (name: string, props?: T): Application<T>;\n}\n","import {Application} from './application';\n\nexport class MicrozordEvent {\n target: Application<any> | null = null;\n constructor(public readonly type: string) {}\n}\n\n// todo: подумать над сообщениями\nexport class MicrozordMessageEvent extends MicrozordEvent {\n static isMessageEvent(event: MicrozordEvent): event is MicrozordMessageEvent {\n return (\n event && event.constructor && event.constructor.name === MicrozordMessageEvent.name\n );\n }\n}\n\n// todo: подумать над ивентами роутинга\nexport class MicrozordNavigationEvent extends MicrozordEvent {\n static isNavigationEvent(event: MicrozordEvent): event is MicrozordNavigationEvent {\n return (\n event &&\n event.constructor &&\n event.constructor.name === MicrozordNavigationEvent.name\n );\n }\n}\n","import {MicrozordEvent} from './events';\n\nexport enum LifecycleEventTypes {\n bootstrapped = 'bootstrapped',\n destroyed = 'destroyed',\n}\n\nexport class MicrozordLifecycleEvent extends MicrozordEvent {\n static isLifecycleEvent(event: MicrozordEvent): event is MicrozordLifecycleEvent {\n return (\n event &&\n event.constructor &&\n event.constructor.name === MicrozordLifecycleEvent.name\n );\n }\n\n static bootstrapped(): MicrozordLifecycleEvent {\n return new MicrozordLifecycleEvent(LifecycleEventTypes.bootstrapped);\n }\n\n static isBootstrappedEvent(event: MicrozordLifecycleEvent): boolean {\n return event.type === LifecycleEventTypes.bootstrapped;\n }\n\n static destroyed(): MicrozordLifecycleEvent {\n return new MicrozordLifecycleEvent(LifecycleEventTypes.destroyed);\n }\n\n static isDestroyedEvent(event: MicrozordLifecycleEvent): boolean {\n return event.type === LifecycleEventTypes.destroyed;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {loadedAppRegistry as ɵa} from './lib/registry';"],"names":["of","switchMap","defer","isObservable","tap","map","mapTo","LifecycleEventTypes"],"mappings":"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"}
1
+ {"version":3,"file":"microzord-core.umd.js","sources":["../../../../libs/core/src/lib/registry.ts","../../../../libs/core/src/lib/helpers/get-entity.ts","../../../../libs/core/src/lib/helpers/get-app.ts","../../../../libs/core/src/lib/helpers/load-entity.ts","../../../../libs/core/src/lib/helpers/load-app.ts","../../../../libs/core/src/lib/helpers/construct-app.ts","../../../../libs/core/src/lib/helpers/bootstrap-app.ts","../../../../libs/core/src/lib/helpers/construct-and-bootstrap-app.ts","../../../../libs/core/src/lib/helpers/register-entity.ts","../../../../libs/core/src/lib/helpers/register-app.ts","../../../../libs/core/src/lib/helpers/replace-apps.ts","../../../../node_modules/tslib/tslib.es6.mjs","../../../../libs/core/src/lib/models/events.ts","../../../../libs/core/src/lib/models/lifecycle.ts","../../../../libs/core/src/lib/models/application.ts","../../../../libs/core/src/microzord-core.ts"],"sourcesContent":["import {EntityRegistrationOptions} from './models/registration-options';\nimport {EntityConstructor} from './models/entity';\n\nexport class MicrozordRegistry<K, V> {\n private _map = new Map<K, V>();\n\n getMap(): ReadonlyMap<K, V> {\n return this._map;\n }\n\n clear(): void {\n this._map.clear();\n }\n\n get<E extends V = V>(key: K): E | undefined {\n return this._map.get(key) as E;\n }\n\n set<E extends V = V>(key: K, value: E): void {\n this._map.set(key, value);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const entityOptionsRegistry = new MicrozordRegistry<\n string,\n EntityRegistrationOptions<any>\n>();\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const loadedEntityRegistry = new MicrozordRegistry<\n string,\n EntityConstructor<any, any>\n>();\n","import {Observable, of} from 'rxjs';\nimport {loadedEntityRegistry} from '../registry';\nimport {EntityConstructor} from '../models/entity';\n\nexport function getEntity<T, K>(\n entityName: string,\n): Observable<EntityConstructor<T, K> | null> {\n return of(loadedEntityRegistry.get(entityName) || null);\n}\n","import {Observable} from 'rxjs';\nimport {ApplicationConstructor} from '../models/application';\nimport {getEntity} from './get-entity';\n\nexport function getApp<T extends Record<string, any> = Record<string, any>>(\n appName: string,\n): Observable<ApplicationConstructor<T> | null> {\n return getEntity(appName);\n}\n","import {defer, isObservable, Observable, of} from 'rxjs';\nimport {switchMap, tap} from 'rxjs/operators';\nimport {entityOptionsRegistry, loadedEntityRegistry} from '../registry';\nimport {EntityConstructor} from '../models/entity';\nimport {EntityRegistrationOptions} from '../models/registration-options';\nimport {getEntity} from './get-entity';\n\nexport function loadEntity<T, K>(\n entityName: string,\n): Observable<EntityConstructor<T, K>> {\n return getEntity<T, K>(entityName).pipe(\n switchMap(entity =>\n entity\n ? of(entity)\n : defer<Observable<EntityConstructor<T, K>>>(() => {\n const options =\n entityOptionsRegistry.get<\n EntityRegistrationOptions<EntityConstructor<T, K>>\n >(entityName);\n\n if (!options) {\n throw `Microzord entity \"${entityName}\" has not been registered. Check the spelling or register an app.`;\n }\n\n if (!options.load) {\n throw `Microzord entity \"${entityName}\" is registered but it has no \"load\" function. Please, provide it`;\n }\n\n const result = options.load();\n\n return result &&\n (isObservable(result) ||\n ('then' in result && typeof result['then'] === 'function'))\n ? defer(() => result)\n : of(result as EntityConstructor<T, K>);\n }),\n ),\n tap(entity => loadedEntityRegistry.set(entityName, entity)),\n );\n}\n","import {Observable, of} from 'rxjs';\nimport {switchMap, tap} from 'rxjs/operators';\nimport {Application, ApplicationConstructor} from '../models/application';\nimport {loadedEntityRegistry} from '../registry';\nimport {getApp} from './get-app';\nimport {loadEntity} from './load-entity';\n\nexport function loadApp<T extends Record<string, any> = Record<string, any>>(\n appName: string,\n): Observable<ApplicationConstructor<T>> {\n return getApp<T>(appName).pipe(\n switchMap(appConstructor =>\n appConstructor\n ? of(appConstructor).pipe(\n tap(applicationConstructor =>\n loadedEntityRegistry.set(appName, applicationConstructor),\n ),\n )\n : loadEntity<T, Application<T>>(appName),\n ),\n );\n}\n","import {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {Application} from '../models/application';\nimport {entityOptionsRegistry} from '../registry';\nimport {loadApp} from './load-app';\nimport {AppRegistrationOptions} from '../models/registration-options';\n\nexport function constructApp<T extends Record<string, unknown>>(\n appName: string,\n): Observable<Application<T>> {\n return loadApp<T>(appName).pipe(\n map(\n AppConstructor =>\n new AppConstructor(\n appName,\n entityOptionsRegistry.get<AppRegistrationOptions<T>>(appName)?.props,\n ),\n ),\n );\n}\n","import {defer, Observable, of} from 'rxjs';\nimport {mapTo, switchMap} from 'rxjs/operators';\nimport {Application} from '../models/application';\n\nexport function bootstrapApp<T extends Record<string, unknown>>(\n app: Application<T>,\n selector: string | Element,\n props?: T,\n): Observable<Application<T>> {\n return of(app).pipe(\n switchMap(app => defer(() => app.bootstrap(selector, props)).pipe(mapTo(app))),\n );\n}\n","import {Observable} from 'rxjs';\nimport {switchMap} from 'rxjs/operators';\nimport {Application} from '../models/application';\nimport {constructApp} from './construct-app';\nimport {bootstrapApp} from './bootstrap-app';\n\nexport function constructAndBootstrapApp<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(appName: string, selector: string | Element, props?: T): Observable<Application<T>> {\n return constructApp<T>(appName).pipe(\n switchMap(app => bootstrapApp(app, selector, props)),\n );\n}\n","import {entityOptionsRegistry} from '../registry';\nimport {EntityRegistrationOptions} from '../models/registration-options';\n\nexport function registerEntity<\n T,\n K extends EntityRegistrationOptions<T> = EntityRegistrationOptions<T>,\n>(options: K): void {\n entityOptionsRegistry.set(options.name, options);\n}\n","import {AppRegistrationOptions} from '../models/registration-options';\nimport {registerEntity} from './register-entity';\n\nexport function registerApp<T extends Record<string, any> = Record<string, any>>(\n options: AppRegistrationOptions<T>,\n) {\n registerEntity(options);\n}\n","import {defer, Observable} from 'rxjs';\nimport {Application} from '../models/application';\nimport {constructAndBootstrapApp} from './construct-and-bootstrap-app';\n\nexport function replaceApps<T extends Record<string, any> = Record<string, any>>(\n from: Application,\n to: string,\n props?: T,\n): Observable<Application<T>> {\n return defer(() => {\n from.destroy();\n\n return constructAndBootstrapApp(to, from.container, props);\n });\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import {Application} from './application';\n\nexport class MicrozordEvent {\n target: Application<any> | null = null;\n constructor(public readonly type: string) {}\n}\n\n// todo: подумать над сообщениями\nexport class MicrozordMessageEvent extends MicrozordEvent {\n static isMessageEvent(event: MicrozordEvent): event is MicrozordMessageEvent {\n return (\n event && event.constructor && event.constructor.name === MicrozordMessageEvent.name\n );\n }\n}\n\n// todo: подумать над ивентами роутинга\nexport class MicrozordNavigationEvent extends MicrozordEvent {\n static isNavigationEvent(event: MicrozordEvent): event is MicrozordNavigationEvent {\n return (\n event &&\n event.constructor &&\n event.constructor.name === MicrozordNavigationEvent.name\n );\n }\n}\n","import {MicrozordEvent} from './events';\n\nexport enum LifecycleEventTypes {\n bootstrapped = 'bootstrapped',\n destroyed = 'destroyed',\n}\n\nexport class MicrozordLifecycleEvent extends MicrozordEvent {\n static isLifecycleEvent(event: MicrozordEvent): event is MicrozordLifecycleEvent {\n return (\n event &&\n event.constructor &&\n event.constructor.name === MicrozordLifecycleEvent.name\n );\n }\n\n static bootstrapped(): MicrozordLifecycleEvent {\n return new MicrozordLifecycleEvent(LifecycleEventTypes.bootstrapped);\n }\n\n static isBootstrappedEvent(event: MicrozordLifecycleEvent): boolean {\n return event.type === LifecycleEventTypes.bootstrapped;\n }\n\n static destroyed(): MicrozordLifecycleEvent {\n return new MicrozordLifecycleEvent(LifecycleEventTypes.destroyed);\n }\n\n static isDestroyedEvent(event: MicrozordLifecycleEvent): boolean {\n return event.type === LifecycleEventTypes.destroyed;\n }\n}\n","import {MicrozordEvent, MicrozordMessageEvent, MicrozordNavigationEvent} from './events';\nimport {MicrozordLifecycleEvent} from './lifecycle';\nimport {EntityConstructor} from './entity';\n\nexport type Listener<T extends MicrozordEvent> = (event: T) => void;\n\nexport abstract class Application<\n T extends Record<string, unknown> = Record<string, unknown>,\n> {\n isBootstrapped = false;\n isDestroyed = true;\n container: Element | string = '';\n\n protected readonly hook = new Set<Listener<MicrozordLifecycleEvent>>();\n protected readonly message = new Set<Listener<MicrozordMessageEvent>>();\n protected readonly navigationEvent = new Set<Listener<MicrozordNavigationEvent>>();\n\n // todo: заспекать типы props\n constructor(public readonly name: string, public props?: T) {}\n\n onMessage(fn: Listener<MicrozordMessageEvent>): () => void {\n this.message.add(fn);\n\n return () => {\n this.message.delete(fn);\n };\n }\n\n emitMessage(event: MicrozordMessageEvent) {\n this.callListeners(this.message, event);\n }\n\n onRouteChange(fn: Listener<MicrozordNavigationEvent>): () => void {\n this.navigationEvent.add(fn);\n\n return () => {\n this.navigationEvent.delete(fn);\n };\n }\n\n emitRouteChange(event: MicrozordNavigationEvent) {\n this.callListeners(this.navigationEvent, event);\n }\n\n onHook(fn: Listener<MicrozordLifecycleEvent>): () => void {\n this.hook.add(fn);\n\n return () => {\n this.hook.delete(fn);\n };\n }\n\n emitHook(event: MicrozordLifecycleEvent) {\n this.callListeners(this.hook, event);\n }\n\n destroy() {\n this.emitHook(MicrozordLifecycleEvent.destroyed());\n\n this.hook.clear(); // todo: в этот поток перед комплитом нужен евент дестроя\n this.message.clear();\n this.navigationEvent.clear();\n\n this.isBootstrapped = false;\n this.isDestroyed = true;\n }\n\n async bootstrap(container: string | Element, _props?: T): Promise<void> {\n this.isBootstrapped = true;\n this.container = container;\n }\n\n abstract send(msg: string | MicrozordMessageEvent): Promise<void>;\n\n // todo: шо за пропс? Надо придумать\n abstract navigate(url: string, props?: unknown): Promise<void>;\n\n protected callListeners<K extends MicrozordEvent>(\n listeners: Set<Listener<K>>,\n event: K,\n ) {\n event.target = this;\n\n [...listeners].forEach(fn => {\n fn(event);\n });\n }\n}\n\nexport type ApplicationConstructor<\n T extends Record<string, unknown> = Record<string, unknown>,\n> = EntityConstructor<T, Application<T>>;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {MicrozordRegistry as ɵa,loadedEntityRegistry as ɵb} from './lib/registry';"],"names":["of","switchMap","defer","isObservable","tap","map","mapTo","LifecycleEventTypes"],"mappings":"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"}
package/esm2015/index.js CHANGED
@@ -1,9 +1,15 @@
1
+ export * from './lib/helpers/construct-and-bootstrap-app';
1
2
  export * from './lib/helpers/bootstrap-app';
2
- export * from './lib/helpers/get-app-constructor';
3
- export * from './lib/helpers/load-app-constructor';
3
+ export * from './lib/helpers/construct-app';
4
+ export * from './lib/helpers/get-app';
5
+ export * from './lib/helpers/get-entity';
6
+ export * from './lib/helpers/load-app';
7
+ export * from './lib/helpers/load-entity';
4
8
  export * from './lib/helpers/register-app';
9
+ export * from './lib/helpers/register-entity';
5
10
  export * from './lib/helpers/replace-apps';
6
11
  export * from './lib/models/application';
12
+ export * from './lib/models/entity';
7
13
  export * from './lib/models/events';
8
14
  export * from './lib/models/lifecycle';
9
15
  export * from './lib/models/registration-options';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/core/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC","sourcesContent":["export * from './lib/helpers/bootstrap-app';\nexport * from './lib/helpers/get-app-constructor';\nexport * from './lib/helpers/load-app-constructor';\nexport * from './lib/helpers/register-app';\nexport * from './lib/helpers/replace-apps';\n\nexport * from './lib/models/application';\nexport * from './lib/models/events';\nexport * from './lib/models/lifecycle';\nexport * from './lib/models/registration-options';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/core/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC","sourcesContent":["export * from './lib/helpers/construct-and-bootstrap-app';\nexport * from './lib/helpers/bootstrap-app';\nexport * from './lib/helpers/construct-app';\nexport * from './lib/helpers/get-app';\nexport * from './lib/helpers/get-entity';\nexport * from './lib/helpers/load-app';\nexport * from './lib/helpers/load-entity';\nexport * from './lib/helpers/register-app';\nexport * from './lib/helpers/register-entity';\nexport * from './lib/helpers/replace-apps';\n\nexport * from './lib/models/application';\nexport * from './lib/models/entity';\nexport * from './lib/models/events';\nexport * from './lib/models/lifecycle';\nexport * from './lib/models/registration-options';\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{},"exports":[{"from":"./lib/helpers/bootstrap-app"},{"from":"./lib/helpers/get-app-constructor"},{"from":"./lib/helpers/load-app-constructor"},{"from":"./lib/helpers/register-app"},{"from":"./lib/helpers/replace-apps"},{"from":"./lib/models/application"},{"from":"./lib/models/events"},{"from":"./lib/models/lifecycle"},{"from":"./lib/models/registration-options"}]}]
1
+ [{"__symbolic":"module","version":4,"metadata":{},"exports":[{"from":"./lib/helpers/construct-and-bootstrap-app"},{"from":"./lib/helpers/bootstrap-app"},{"from":"./lib/helpers/construct-app"},{"from":"./lib/helpers/get-app"},{"from":"./lib/helpers/get-entity"},{"from":"./lib/helpers/load-app"},{"from":"./lib/helpers/load-entity"},{"from":"./lib/helpers/register-app"},{"from":"./lib/helpers/register-entity"},{"from":"./lib/helpers/replace-apps"},{"from":"./lib/models/application"},{"from":"./lib/models/entity"},{"from":"./lib/models/events"},{"from":"./lib/models/lifecycle"},{"from":"./lib/models/registration-options"}]}]
@@ -1,8 +1,6 @@
1
- import { defer } from 'rxjs';
2
- import { map, mapTo, switchMap } from 'rxjs/operators';
3
- import { appOptionsRegistry } from '../registry';
4
- import { loadAppConstructor } from './load-app-constructor';
5
- export function bootstrapApp(appName, selector, props) {
6
- return loadAppConstructor(appName).pipe(map(AppConstructor => { var _a; return new AppConstructor(appName, (_a = appOptionsRegistry.get(appName)) === null || _a === void 0 ? void 0 : _a.props); }), switchMap(app => defer(() => (console.log(props), app.bootstrap(selector, props))).pipe(mapTo(app))));
1
+ import { defer, of } from 'rxjs';
2
+ import { mapTo, switchMap } from 'rxjs/operators';
3
+ export function bootstrapApp(app, selector, props) {
4
+ return of(app).pipe(switchMap(app => defer(() => app.bootstrap(selector, props)).pipe(mapTo(app))));
7
5
  }
8
6
  //# sourceMappingURL=bootstrap-app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap-app.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/helpers/bootstrap-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAa,MAAM,MAAM,CAAC;AACvC,OAAO,EAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAC,kBAAkB,EAAC,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAC,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAE1D,MAAM,UAAU,YAAY,CAC1B,OAAe,EACf,QAA0B,EAC1B,KAAS;IAET,OAAO,kBAAkB,CAAI,OAAO,CAAC,CAAC,IAAI,CACxC,GAAG,CACD,cAAc,CAAC,EAAE,WACf,OAAA,IAAI,cAAc,CAAC,OAAO,EAAE,MAAA,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,0CAAE,KAAK,CAAC,CAAA,EAAA,CACtE,EACD,SAAS,CAAC,GAAG,CAAC,EAAE,CACd,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CACnF,CACF,CAAC;AACJ,CAAC","sourcesContent":["import {defer, Observable} from 'rxjs';\nimport {map, mapTo, switchMap} from 'rxjs/operators';\nimport {Application} from '../models/application';\nimport {appOptionsRegistry} from '../registry';\nimport {loadAppConstructor} from './load-app-constructor';\n\nexport function bootstrapApp<T extends Record<string, any> = Record<string, any>>(\n appName: string,\n selector: string | Element,\n props?: T,\n): Observable<Application<T>> {\n return loadAppConstructor<T>(appName).pipe(\n map(\n AppConstructor =>\n new AppConstructor(appName, appOptionsRegistry.get(appName)?.props),\n ),\n switchMap(app =>\n defer(() => (console.log(props), app.bootstrap(selector, props))).pipe(mapTo(app)),\n ),\n );\n}\n"]}
1
+ {"version":3,"file":"bootstrap-app.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/helpers/bootstrap-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAc,EAAE,EAAC,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAC,KAAK,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAGhD,MAAM,UAAU,YAAY,CAC1B,GAAmB,EACnB,QAA0B,EAC1B,KAAS;IAET,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CACjB,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAC/E,CAAC;AACJ,CAAC","sourcesContent":["import {defer, Observable, of} from 'rxjs';\nimport {mapTo, switchMap} from 'rxjs/operators';\nimport {Application} from '../models/application';\n\nexport function bootstrapApp<T extends Record<string, unknown>>(\n app: Application<T>,\n selector: string | Element,\n props?: T,\n): Observable<Application<T>> {\n return of(app).pipe(\n switchMap(app => defer(() => app.bootstrap(selector, props)).pipe(mapTo(app))),\n );\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"bootstrapApp":{"__symbolic":"function","parameters":["appName","selector","props"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./load-app-constructor","name":"loadAppConstructor","line":11,"character":9},"arguments":[{"__symbolic":"reference","name":"appName"}]},"member":"pipe"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"map","line":12,"character":4},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":13,"character":6}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"switchMap","line":16,"character":4},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":16,"character":14}]}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"bootstrapApp":{"__symbolic":"function","parameters":["app","selector","props"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"of","line":9,"character":9},"arguments":[{"__symbolic":"reference","name":"app"}]},"member":"pipe"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"switchMap","line":10,"character":4},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":10,"character":14}]}]}}}}]
@@ -0,0 +1,7 @@
1
+ import { switchMap } from 'rxjs/operators';
2
+ import { constructApp } from './construct-app';
3
+ import { bootstrapApp } from './bootstrap-app';
4
+ export function constructAndBootstrapApp(appName, selector, props) {
5
+ return constructApp(appName).pipe(switchMap(app => bootstrapApp(app, selector, props)));
6
+ }
7
+ //# sourceMappingURL=construct-and-bootstrap-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"construct-and-bootstrap-app.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/helpers/construct-and-bootstrap-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAE7C,MAAM,UAAU,wBAAwB,CAEtC,OAAe,EAAE,QAA0B,EAAE,KAAS;IACtD,OAAO,YAAY,CAAI,OAAO,CAAC,CAAC,IAAI,CAClC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CACrD,CAAC;AACJ,CAAC","sourcesContent":["import {Observable} from 'rxjs';\nimport {switchMap} from 'rxjs/operators';\nimport {Application} from '../models/application';\nimport {constructApp} from './construct-app';\nimport {bootstrapApp} from './bootstrap-app';\n\nexport function constructAndBootstrapApp<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(appName: string, selector: string | Element, props?: T): Observable<Application<T>> {\n return constructApp<T>(appName).pipe(\n switchMap(app => bootstrapApp(app, selector, props)),\n );\n}\n"]}
@@ -0,0 +1 @@
1
+ [{"__symbolic":"module","version":4,"metadata":{"constructAndBootstrapApp":{"__symbolic":"function","parameters":["appName","selector","props"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./construct-app","name":"constructApp","line":9,"character":9},"arguments":[{"__symbolic":"reference","name":"appName"}]},"member":"pipe"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"switchMap","line":10,"character":4},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":10,"character":14}]}]}}}}]
@@ -0,0 +1,10 @@
1
+ import { map } from 'rxjs/operators';
2
+ import { entityOptionsRegistry } from '../registry';
3
+ import { loadApp } from './load-app';
4
+ export function constructApp(appName) {
5
+ return loadApp(appName).pipe(map(AppConstructor => {
6
+ var _a;
7
+ return new AppConstructor(appName, (_a = entityOptionsRegistry.get(appName)) === null || _a === void 0 ? void 0 : _a.props);
8
+ }));
9
+ }
10
+ //# sourceMappingURL=construct-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"construct-app.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/helpers/construct-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,gBAAgB,CAAC;AAEnC,OAAO,EAAC,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAClD,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AAGnC,MAAM,UAAU,YAAY,CAC1B,OAAe;IAEf,OAAO,OAAO,CAAI,OAAO,CAAC,CAAC,IAAI,CAC7B,GAAG,CACD,cAAc,CAAC,EAAE;;QACf,OAAA,IAAI,cAAc,CAChB,OAAO,EACP,MAAA,qBAAqB,CAAC,GAAG,CAA4B,OAAO,CAAC,0CAAE,KAAK,CACrE,CAAA;KAAA,CACJ,CACF,CAAC;AACJ,CAAC","sourcesContent":["import {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {Application} from '../models/application';\nimport {entityOptionsRegistry} from '../registry';\nimport {loadApp} from './load-app';\nimport {AppRegistrationOptions} from '../models/registration-options';\n\nexport function constructApp<T extends Record<string, unknown>>(\n appName: string,\n): Observable<Application<T>> {\n return loadApp<T>(appName).pipe(\n map(\n AppConstructor =>\n new AppConstructor(\n appName,\n entityOptionsRegistry.get<AppRegistrationOptions<T>>(appName)?.props,\n ),\n ),\n );\n}\n"]}
@@ -0,0 +1 @@
1
+ [{"__symbolic":"module","version":4,"metadata":{"constructApp":{"__symbolic":"function","parameters":["appName"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./load-app","name":"loadApp","line":10,"character":9},"arguments":[{"__symbolic":"reference","name":"appName"}]},"member":"pipe"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"map","line":11,"character":4},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":12,"character":6}]}]}}}}]
@@ -0,0 +1,5 @@
1
+ import { getEntity } from './get-entity';
2
+ export function getApp(appName) {
3
+ return getEntity(appName);
4
+ }
5
+ //# sourceMappingURL=get-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-app.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/helpers/get-app.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAEvC,MAAM,UAAU,MAAM,CACpB,OAAe;IAEf,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC","sourcesContent":["import {Observable} from 'rxjs';\nimport {ApplicationConstructor} from '../models/application';\nimport {getEntity} from './get-entity';\n\nexport function getApp<T extends Record<string, any> = Record<string, any>>(\n appName: string,\n): Observable<ApplicationConstructor<T> | null> {\n return getEntity(appName);\n}\n"]}
@@ -0,0 +1 @@
1
+ [{"__symbolic":"module","version":4,"metadata":{"getApp":{"__symbolic":"function","parameters":["appName"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./get-entity","name":"getEntity","line":7,"character":9},"arguments":[{"__symbolic":"reference","name":"appName"}]}}}}]
@@ -0,0 +1,6 @@
1
+ import { of } from 'rxjs';
2
+ import { loadedEntityRegistry } from '../registry';
3
+ export function getEntity(entityName) {
4
+ return of(loadedEntityRegistry.get(entityName) || null);
5
+ }
6
+ //# sourceMappingURL=get-entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-entity.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/helpers/get-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,EAAE,EAAC,MAAM,MAAM,CAAC;AACpC,OAAO,EAAC,oBAAoB,EAAC,MAAM,aAAa,CAAC;AAGjD,MAAM,UAAU,SAAS,CACvB,UAAkB;IAElB,OAAO,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC;AAC1D,CAAC","sourcesContent":["import {Observable, of} from 'rxjs';\nimport {loadedEntityRegistry} from '../registry';\nimport {EntityConstructor} from '../models/entity';\n\nexport function getEntity<T, K>(\n entityName: string,\n): Observable<EntityConstructor<T, K> | null> {\n return of(loadedEntityRegistry.get(entityName) || null);\n}\n"]}
@@ -0,0 +1 @@
1
+ [{"__symbolic":"module","version":4,"metadata":{"getEntity":{"__symbolic":"function","parameters":["entityName"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"of","line":7,"character":9},"arguments":[{"__symbolic":"binop","operator":"||","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"../registry","name":"loadedEntityRegistry","line":7,"character":12},"member":"get"},"arguments":[{"__symbolic":"reference","name":"entityName"}]},"right":null}]}}}}]
@@ -0,0 +1,11 @@
1
+ import { of } from 'rxjs';
2
+ import { switchMap, tap } from 'rxjs/operators';
3
+ import { loadedEntityRegistry } from '../registry';
4
+ import { getApp } from './get-app';
5
+ import { loadEntity } from './load-entity';
6
+ export function loadApp(appName) {
7
+ return getApp(appName).pipe(switchMap(appConstructor => appConstructor
8
+ ? of(appConstructor).pipe(tap(applicationConstructor => loadedEntityRegistry.set(appName, applicationConstructor)))
9
+ : loadEntity(appName)));
10
+ }
11
+ //# sourceMappingURL=load-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-app.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/helpers/load-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,EAAE,EAAC,MAAM,MAAM,CAAC;AACpC,OAAO,EAAC,SAAS,EAAE,GAAG,EAAC,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAC,oBAAoB,EAAC,MAAM,aAAa,CAAC;AACjD,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AACjC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,MAAM,UAAU,OAAO,CACrB,OAAe;IAEf,OAAO,MAAM,CAAI,OAAO,CAAC,CAAC,IAAI,CAC5B,SAAS,CAAC,cAAc,CAAC,EAAE,CACzB,cAAc;QACZ,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,IAAI,CACrB,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAC3B,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAC1D,CACF;QACH,CAAC,CAAC,UAAU,CAAoB,OAAO,CAAC,CAC3C,CACF,CAAC;AACJ,CAAC","sourcesContent":["import {Observable, of} from 'rxjs';\nimport {switchMap, tap} from 'rxjs/operators';\nimport {Application, ApplicationConstructor} from '../models/application';\nimport {loadedEntityRegistry} from '../registry';\nimport {getApp} from './get-app';\nimport {loadEntity} from './load-entity';\n\nexport function loadApp<T extends Record<string, any> = Record<string, any>>(\n appName: string,\n): Observable<ApplicationConstructor<T>> {\n return getApp<T>(appName).pipe(\n switchMap(appConstructor =>\n appConstructor\n ? of(appConstructor).pipe(\n tap(applicationConstructor =>\n loadedEntityRegistry.set(appName, applicationConstructor),\n ),\n )\n : loadEntity<T, Application<T>>(appName),\n ),\n );\n}\n"]}
@@ -0,0 +1 @@
1
+ [{"__symbolic":"module","version":4,"metadata":{"loadApp":{"__symbolic":"function","parameters":["appName"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./get-app","name":"getApp","line":10,"character":9},"arguments":[{"__symbolic":"reference","name":"appName"}]},"member":"pipe"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"switchMap","line":11,"character":4},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":11,"character":14}]}]}}}}]
@@ -0,0 +1,24 @@
1
+ import { defer, isObservable, of } from 'rxjs';
2
+ import { switchMap, tap } from 'rxjs/operators';
3
+ import { entityOptionsRegistry, loadedEntityRegistry } from '../registry';
4
+ import { getEntity } from './get-entity';
5
+ export function loadEntity(entityName) {
6
+ return getEntity(entityName).pipe(switchMap(entity => entity
7
+ ? of(entity)
8
+ : defer(() => {
9
+ const options = entityOptionsRegistry.get(entityName);
10
+ if (!options) {
11
+ throw `Microzord entity "${entityName}" has not been registered. Check the spelling or register an app.`;
12
+ }
13
+ if (!options.load) {
14
+ throw `Microzord entity "${entityName}" is registered but it has no "load" function. Please, provide it`;
15
+ }
16
+ const result = options.load();
17
+ return result &&
18
+ (isObservable(result) ||
19
+ ('then' in result && typeof result['then'] === 'function'))
20
+ ? defer(() => result)
21
+ : of(result);
22
+ })), tap(entity => loadedEntityRegistry.set(entityName, entity)));
23
+ }
24
+ //# sourceMappingURL=load-entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-entity.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/helpers/load-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,YAAY,EAAc,EAAE,EAAC,MAAM,MAAM,CAAC;AACzD,OAAO,EAAC,SAAS,EAAE,GAAG,EAAC,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAC,qBAAqB,EAAE,oBAAoB,EAAC,MAAM,aAAa,CAAC;AAGxE,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAEvC,MAAM,UAAU,UAAU,CACxB,UAAkB;IAElB,OAAO,SAAS,CAAO,UAAU,CAAC,CAAC,IAAI,CACrC,SAAS,CAAC,MAAM,CAAC,EAAE,CACjB,MAAM;QACJ,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;QACZ,CAAC,CAAC,KAAK,CAAsC,GAAG,EAAE;YAC9C,MAAM,OAAO,GACX,qBAAqB,CAAC,GAAG,CAEvB,UAAU,CAAC,CAAC;YAEhB,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,qBAAqB,UAAU,mEAAmE,CAAC;aAC1G;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACjB,MAAM,qBAAqB,UAAU,mEAAmE,CAAC;aAC1G;YAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAE9B,OAAO,MAAM;gBACX,CAAC,YAAY,CAAC,MAAM,CAAC;oBACnB,CAAC,MAAM,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,CAAC;gBAC7D,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;gBACrB,CAAC,CAAC,EAAE,CAAC,MAAiC,CAAC,CAAC;QAC5C,CAAC,CAAC,CACP,EACD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAC5D,CAAC;AACJ,CAAC","sourcesContent":["import {defer, isObservable, Observable, of} from 'rxjs';\nimport {switchMap, tap} from 'rxjs/operators';\nimport {entityOptionsRegistry, loadedEntityRegistry} from '../registry';\nimport {EntityConstructor} from '../models/entity';\nimport {EntityRegistrationOptions} from '../models/registration-options';\nimport {getEntity} from './get-entity';\n\nexport function loadEntity<T, K>(\n entityName: string,\n): Observable<EntityConstructor<T, K>> {\n return getEntity<T, K>(entityName).pipe(\n switchMap(entity =>\n entity\n ? of(entity)\n : defer<Observable<EntityConstructor<T, K>>>(() => {\n const options =\n entityOptionsRegistry.get<\n EntityRegistrationOptions<EntityConstructor<T, K>>\n >(entityName);\n\n if (!options) {\n throw `Microzord entity \"${entityName}\" has not been registered. Check the spelling or register an app.`;\n }\n\n if (!options.load) {\n throw `Microzord entity \"${entityName}\" is registered but it has no \"load\" function. Please, provide it`;\n }\n\n const result = options.load();\n\n return result &&\n (isObservable(result) ||\n ('then' in result && typeof result['then'] === 'function'))\n ? defer(() => result)\n : of(result as EntityConstructor<T, K>);\n }),\n ),\n tap(entity => loadedEntityRegistry.set(entityName, entity)),\n );\n}\n"]}
@@ -0,0 +1 @@
1
+ [{"__symbolic":"module","version":4,"metadata":{"loadEntity":{"__symbolic":"function","parameters":["entityName"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./get-entity","name":"getEntity","line":10,"character":9},"arguments":[{"__symbolic":"reference","name":"entityName"}]},"member":"pipe"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"switchMap","line":11,"character":4},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":11,"character":14}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"tap","line":37,"character":4},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":37,"character":8}]}]}}}}]
@@ -1,5 +1,5 @@
1
- import { appOptionsRegistry } from '../registry';
1
+ import { registerEntity } from './register-entity';
2
2
  export function registerApp(options) {
3
- appOptionsRegistry.set(options.name, options);
3
+ registerEntity(options);
4
4
  }
5
5
  //# sourceMappingURL=register-app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register-app.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/helpers/register-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,aAAa,CAAC;AAG/C,MAAM,UAAU,WAAW,CACzB,OAA+B;IAE/B,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC","sourcesContent":["import {appOptionsRegistry} from '../registry';\nimport {RegistrationOptions} from '../models/registration-options';\n\nexport function registerApp<T extends Record<string, any> = Record<string, any>>(\n options: RegistrationOptions<T>,\n) {\n appOptionsRegistry.set(options.name, options);\n}\n"]}
1
+ {"version":3,"file":"register-app.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/helpers/register-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,WAAW,CACzB,OAAkC;IAElC,cAAc,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC","sourcesContent":["import {AppRegistrationOptions} from '../models/registration-options';\nimport {registerEntity} from './register-entity';\n\nexport function registerApp<T extends Record<string, any> = Record<string, any>>(\n options: AppRegistrationOptions<T>,\n) {\n registerEntity(options);\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { entityOptionsRegistry } from '../registry';
2
+ export function registerEntity(options) {
3
+ entityOptionsRegistry.set(options.name, options);
4
+ }
5
+ //# sourceMappingURL=register-entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-entity.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/helpers/register-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAGlD,MAAM,UAAU,cAAc,CAG5B,OAAU;IACV,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC","sourcesContent":["import {entityOptionsRegistry} from '../registry';\nimport {EntityRegistrationOptions} from '../models/registration-options';\n\nexport function registerEntity<\n T,\n K extends EntityRegistrationOptions<T> = EntityRegistrationOptions<T>,\n>(options: K): void {\n entityOptionsRegistry.set(options.name, options);\n}\n"]}
@@ -0,0 +1 @@
1
+ [{"__symbolic":"module","version":4,"metadata":{"registerEntity":{"__symbolic":"function"}}}]
@@ -1,9 +1,9 @@
1
1
  import { defer } from 'rxjs';
2
- import { bootstrapApp } from './bootstrap-app';
2
+ import { constructAndBootstrapApp } from './construct-and-bootstrap-app';
3
3
  export function replaceApps(from, to, props) {
4
4
  return defer(() => {
5
5
  from.destroy();
6
- return bootstrapApp(to, from.container, props);
6
+ return constructAndBootstrapApp(to, from.container, props);
7
7
  });
8
8
  }
9
9
  //# sourceMappingURL=replace-apps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"replace-apps.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/helpers/replace-apps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAa,MAAM,MAAM,CAAC;AAEvC,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAE7C,MAAM,UAAU,WAAW,CACzB,IAAiB,EACjB,EAAU,EACV,KAAS;IAET,OAAO,KAAK,CAAC,GAAG,EAAE;QAChB,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,OAAO,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {defer, Observable} from 'rxjs';\nimport {Application} from '../models/application';\nimport {bootstrapApp} from './bootstrap-app';\n\nexport function replaceApps<T extends Record<string, any> = Record<string, any>>(\n from: Application,\n to: string,\n props?: T,\n): Observable<Application<T>> {\n return defer(() => {\n from.destroy();\n\n return bootstrapApp(to, from.container, props);\n });\n}\n"]}
1
+ {"version":3,"file":"replace-apps.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/helpers/replace-apps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAa,MAAM,MAAM,CAAC;AAEvC,OAAO,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;AAEvE,MAAM,UAAU,WAAW,CACzB,IAAiB,EACjB,EAAU,EACV,KAAS;IAET,OAAO,KAAK,CAAC,GAAG,EAAE;QAChB,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,OAAO,wBAAwB,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {defer, Observable} from 'rxjs';\nimport {Application} from '../models/application';\nimport {constructAndBootstrapApp} from './construct-and-bootstrap-app';\n\nexport function replaceApps<T extends Record<string, any> = Record<string, any>>(\n from: Application,\n to: string,\n props?: T,\n): Observable<Application<T>> {\n return defer(() => {\n from.destroy();\n\n return constructAndBootstrapApp(to, from.container, props);\n });\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import { __awaiter } from "tslib";
2
+ import { MicrozordLifecycleEvent } from './lifecycle';
2
3
  export class Application {
3
4
  // todo: заспекать типы props
4
5
  constructor(name, props) {
@@ -39,6 +40,7 @@ export class Application {
39
40
  this.callListeners(this.hook, event);
40
41
  }
41
42
  destroy() {
43
+ this.emitHook(MicrozordLifecycleEvent.destroyed());
42
44
  this.hook.clear(); // todo: в этот поток перед комплитом нужен евент дестроя
43
45
  this.message.clear();
44
46
  this.navigationEvent.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/models/application.ts"],"names":[],"mappings":";AAKA,MAAM,OAAgB,WAAW;IAS/B,6BAA6B;IAC7B,YAA4B,IAAY,EAAS,KAAS;QAA9B,SAAI,GAAJ,IAAI,CAAQ;QAAS,UAAK,GAAL,KAAK,CAAI;QAT1D,mBAAc,GAAG,KAAK,CAAC;QACvB,gBAAW,GAAG,IAAI,CAAC;QACnB,cAAS,GAAqB,EAAE,CAAC;QAEd,SAAI,GAAG,IAAI,GAAG,EAAqC,CAAC;QACpD,YAAO,GAAG,IAAI,GAAG,EAAmC,CAAC;QACrD,oBAAe,GAAG,IAAI,GAAG,EAAsC,CAAC;IAGtB,CAAC;IAE9D,SAAS,CAAC,EAAmC;QAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAErB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAA4B;QACtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,aAAa,CAAC,EAAsC;QAClD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,KAA+B;QAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,EAAqC;QAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAElB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAA8B;QACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,yDAAyD;QAC5E,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAE7B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAEK,SAAS,CAAC,SAA2B,EAAE,MAAU;;YACrD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC;KAAA;IAOS,aAAa,CACrB,SAA2B,EAC3B,KAAQ;QAER,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QAEpB,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAC1B,EAAE,CAAC,KAAK,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import {MicrozordEvent, MicrozordMessageEvent, MicrozordNavigationEvent} from './events';\nimport {MicrozordLifecycleEvent} from './lifecycle';\n\nexport type Listener<T extends MicrozordEvent> = (event: T) => void;\n\nexport abstract class Application<T extends Record<string, any> = Record<string, any>> {\n isBootstrapped = false;\n isDestroyed = true;\n container: Element | string = '';\n\n protected readonly hook = new Set<Listener<MicrozordLifecycleEvent>>();\n protected readonly message = new Set<Listener<MicrozordMessageEvent>>();\n protected readonly navigationEvent = new Set<Listener<MicrozordNavigationEvent>>();\n\n // todo: заспекать типы props\n constructor(public readonly name: string, public props?: T) {}\n\n onMessage(fn: Listener<MicrozordMessageEvent>): () => void {\n this.message.add(fn);\n\n return () => {\n this.message.delete(fn);\n };\n }\n\n emitMessage(event: MicrozordMessageEvent) {\n this.callListeners(this.message, event);\n }\n\n onRouteChange(fn: Listener<MicrozordNavigationEvent>): () => void {\n this.navigationEvent.add(fn);\n\n return () => {\n this.navigationEvent.delete(fn);\n };\n }\n\n emitRouteChange(event: MicrozordNavigationEvent) {\n this.callListeners(this.navigationEvent, event);\n }\n\n onHook(fn: Listener<MicrozordLifecycleEvent>): () => void {\n this.hook.add(fn);\n\n return () => {\n this.hook.delete(fn);\n };\n }\n\n emitHook(event: MicrozordLifecycleEvent) {\n this.callListeners(this.hook, event);\n }\n\n destroy() {\n this.hook.clear(); // todo: в этот поток перед комплитом нужен евент дестроя\n this.message.clear();\n this.navigationEvent.clear();\n\n this.isBootstrapped = false;\n this.isDestroyed = true;\n }\n\n async bootstrap(container: string | Element, _props?: T): Promise<void> {\n this.isBootstrapped = true;\n this.container = container;\n }\n\n abstract send(msg: string | MicrozordMessageEvent): Promise<void>;\n\n // todo: шо за пропс? Надо придумать\n abstract navigate(url: string, props?: unknown): Promise<void>;\n\n protected callListeners<K extends MicrozordEvent>(\n listeners: Set<Listener<K>>,\n event: K,\n ) {\n event.target = this;\n\n [...listeners].forEach(fn => {\n fn(event);\n });\n }\n}\n\nexport interface ApplicationConstructor<\n T extends Record<string, any> = Record<string, any>,\n> {\n new (name: string, props?: T): Application<T>;\n}\n"]}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/models/application.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAKpD,MAAM,OAAgB,WAAW;IAW/B,6BAA6B;IAC7B,YAA4B,IAAY,EAAS,KAAS;QAA9B,SAAI,GAAJ,IAAI,CAAQ;QAAS,UAAK,GAAL,KAAK,CAAI;QAT1D,mBAAc,GAAG,KAAK,CAAC;QACvB,gBAAW,GAAG,IAAI,CAAC;QACnB,cAAS,GAAqB,EAAE,CAAC;QAEd,SAAI,GAAG,IAAI,GAAG,EAAqC,CAAC;QACpD,YAAO,GAAG,IAAI,GAAG,EAAmC,CAAC;QACrD,oBAAe,GAAG,IAAI,GAAG,EAAsC,CAAC;IAGtB,CAAC;IAE9D,SAAS,CAAC,EAAmC;QAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAErB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAA4B;QACtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,aAAa,CAAC,EAAsC;QAClD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,KAA+B;QAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,EAAqC;QAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAElB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAA8B;QACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,EAAE,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,yDAAyD;QAC5E,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAE7B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAEK,SAAS,CAAC,SAA2B,EAAE,MAAU;;YACrD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC;KAAA;IAOS,aAAa,CACrB,SAA2B,EAC3B,KAAQ;QAER,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QAEpB,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAC1B,EAAE,CAAC,KAAK,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import {MicrozordEvent, MicrozordMessageEvent, MicrozordNavigationEvent} from './events';\nimport {MicrozordLifecycleEvent} from './lifecycle';\nimport {EntityConstructor} from './entity';\n\nexport type Listener<T extends MicrozordEvent> = (event: T) => void;\n\nexport abstract class Application<\n T extends Record<string, unknown> = Record<string, unknown>,\n> {\n isBootstrapped = false;\n isDestroyed = true;\n container: Element | string = '';\n\n protected readonly hook = new Set<Listener<MicrozordLifecycleEvent>>();\n protected readonly message = new Set<Listener<MicrozordMessageEvent>>();\n protected readonly navigationEvent = new Set<Listener<MicrozordNavigationEvent>>();\n\n // todo: заспекать типы props\n constructor(public readonly name: string, public props?: T) {}\n\n onMessage(fn: Listener<MicrozordMessageEvent>): () => void {\n this.message.add(fn);\n\n return () => {\n this.message.delete(fn);\n };\n }\n\n emitMessage(event: MicrozordMessageEvent) {\n this.callListeners(this.message, event);\n }\n\n onRouteChange(fn: Listener<MicrozordNavigationEvent>): () => void {\n this.navigationEvent.add(fn);\n\n return () => {\n this.navigationEvent.delete(fn);\n };\n }\n\n emitRouteChange(event: MicrozordNavigationEvent) {\n this.callListeners(this.navigationEvent, event);\n }\n\n onHook(fn: Listener<MicrozordLifecycleEvent>): () => void {\n this.hook.add(fn);\n\n return () => {\n this.hook.delete(fn);\n };\n }\n\n emitHook(event: MicrozordLifecycleEvent) {\n this.callListeners(this.hook, event);\n }\n\n destroy() {\n this.emitHook(MicrozordLifecycleEvent.destroyed());\n\n this.hook.clear(); // todo: в этот поток перед комплитом нужен евент дестроя\n this.message.clear();\n this.navigationEvent.clear();\n\n this.isBootstrapped = false;\n this.isDestroyed = true;\n }\n\n async bootstrap(container: string | Element, _props?: T): Promise<void> {\n this.isBootstrapped = true;\n this.container = container;\n }\n\n abstract send(msg: string | MicrozordMessageEvent): Promise<void>;\n\n // todo: шо за пропс? Надо придумать\n abstract navigate(url: string, props?: unknown): Promise<void>;\n\n protected callListeners<K extends MicrozordEvent>(\n listeners: Set<Listener<K>>,\n event: K,\n ) {\n event.target = this;\n\n [...listeners].forEach(fn => {\n fn(event);\n });\n }\n}\n\nexport type ApplicationConstructor<\n T extends Record<string, unknown> = Record<string, unknown>,\n> = EntityConstructor<T, Application<T>>;\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"Listener":{"__symbolic":"interface"},"Application":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Could not resolve type","line":15,"character":59,"context":{"typeName":"T"}}]}],"onMessage":[{"__symbolic":"method"}],"emitMessage":[{"__symbolic":"method"}],"onRouteChange":[{"__symbolic":"method"}],"emitRouteChange":[{"__symbolic":"method"}],"onHook":[{"__symbolic":"method"}],"emitHook":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"bootstrap":[{"__symbolic":"method"}],"send":[{"__symbolic":"method"}],"navigate":[{"__symbolic":"method"}],"callListeners":[{"__symbolic":"method"}]}},"ApplicationConstructor":{"__symbolic":"interface"}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"Listener":{"__symbolic":"interface"},"Application":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Could not resolve type","line":18,"character":59,"context":{"typeName":"T"}}]}],"onMessage":[{"__symbolic":"method"}],"emitMessage":[{"__symbolic":"method"}],"onRouteChange":[{"__symbolic":"method"}],"emitRouteChange":[{"__symbolic":"method"}],"onHook":[{"__symbolic":"method"}],"emitHook":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"bootstrap":[{"__symbolic":"method"}],"send":[{"__symbolic":"method"}],"navigate":[{"__symbolic":"method"}],"callListeners":[{"__symbolic":"method"}]}},"ApplicationConstructor":{"__symbolic":"interface"}}}]
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/models/entity.ts"],"names":[],"mappings":"","sourcesContent":["export interface EntityConstructor<T, K> {\n new (name: string, props?: T): K;\n}\n"]}
@@ -0,0 +1 @@
1
+ [{"__symbolic":"module","version":4,"metadata":{"EntityConstructor":{"__symbolic":"interface"}}}]