@next-core/easyops-runtime 0.5.1 → 0.6.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.
@@ -7,6 +7,8 @@ exports.computeMenuData = computeMenuData;
7
7
  exports.computeMenuItems = computeMenuItems;
8
8
  var _constants = require("./constants.js");
9
9
  var _general = require("@next-core/utils/general");
10
+ var _pipes = require("@next-core/pipes");
11
+ var _cook = require("@next-core/cook");
10
12
  function computeMenuData(data, overrideAppId, runtimeContext, helpers) {
11
13
  if ("titleDataSource" in data && (0, _general.isObject)(data.titleDataSource) && Object.entries(data.titleDataSource).every(([key, value]) => value === null || value === "")) {
12
14
  delete data.titleDataSource;
@@ -14,6 +16,12 @@ function computeMenuData(data, overrideAppId, runtimeContext, helpers) {
14
16
  if ("if" in data && data.if === null) {
15
17
  delete data.if;
16
18
  }
19
+ if ("to" in data && data.to && !(0, _cook.isEvaluable)(data.to)) {
20
+ const yaml = _pipes.pipes.yaml(data.to);
21
+ if ((0, _general.isObject)(yaml) && ["pathname", "search", "hash"].some(key => (0, _general.hasOwnProperty)(yaml, key))) {
22
+ data.to = yaml;
23
+ }
24
+ }
17
25
  let newRuntimeContext = runtimeContext;
18
26
  if (overrideAppId !== runtimeContext.app.id) {
19
27
  var _helpers$getStoryboar;
@@ -1 +1 @@
1
- {"version":3,"file":"computeMenuData.js","names":["_constants","require","_general","computeMenuData","data","overrideAppId","runtimeContext","helpers","isObject","titleDataSource","Object","entries","every","key","value","if","newRuntimeContext","app","id","_helpers$getStoryboar","overrideApp","window","STANDALONE_MICRO_APPS","symbolOverrideApp","getStoryboardByAppId","appendI18nNamespace","symbolMenuI18nNamespace","asyncComputeRealValue","ignoreSymbols","computeMenuItems","items","Promise","all","map","children","rest","computedRest","computedChildren","symbolAppId"],"sources":["../../../src/menu/computeMenuData.ts"],"sourcesContent":["import type {\n RuntimeContext,\n RuntimeHelpers,\n RuntimeMenuItemRawData,\n RuntimeMenuRawData,\n} from \"./interfaces.js\";\nimport {\n symbolAppId,\n symbolMenuI18nNamespace,\n symbolOverrideApp,\n} from \"./constants.js\";\nimport { isObject } from \"@next-core/utils/general\";\n\ntype RuntimeMenuRestRawData = Omit<RuntimeMenuRawData, \"app\" | \"items\">;\ntype RuntimeMenuItemRestRawData = Omit<RuntimeMenuItemRawData, \"children\">;\n\nexport function computeMenuData<\n T extends RuntimeMenuRestRawData | RuntimeMenuItemRestRawData\n>(\n data: T,\n overrideAppId: string,\n runtimeContext: RuntimeContext,\n helpers: RuntimeHelpers\n): Promise<T> {\n if (\n \"titleDataSource\" in data &&\n isObject(data.titleDataSource) &&\n Object.entries(data.titleDataSource).every(\n ([key, value]) => value === null || value === \"\"\n )\n ) {\n delete data.titleDataSource;\n }\n if (\"if\" in data && data.if === null) {\n delete data.if;\n }\n let newRuntimeContext = runtimeContext;\n if (overrideAppId !== runtimeContext.app.id) {\n const overrideApp = window.STANDALONE_MICRO_APPS\n ? data[symbolOverrideApp]\n : helpers.getStoryboardByAppId(overrideAppId)?.app;\n newRuntimeContext = {\n ...runtimeContext,\n overrideApp,\n appendI18nNamespace: data[symbolMenuI18nNamespace],\n };\n }\n return helpers.asyncComputeRealValue(data, newRuntimeContext, {\n ignoreSymbols: true,\n }) as Promise<T>;\n}\n\nexport function computeMenuItems(\n items: RuntimeMenuItemRawData[],\n runtimeContext: RuntimeContext,\n helpers: RuntimeHelpers\n): Promise<RuntimeMenuItemRawData[]> {\n return Promise.all(\n items.map(async ({ children, ...rest }) => {\n const [computedRest, computedChildren] = await Promise.all([\n computeMenuData(rest, rest[symbolAppId], runtimeContext, helpers),\n children && (await computeMenuItems(children, runtimeContext, helpers)),\n ]);\n return {\n ...computedRest,\n children: computedChildren,\n };\n })\n );\n}\n"],"mappings":";;;;;;;AAMA,IAAAA,UAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AAKO,SAASE,eAAeA,CAG7BC,IAAO,EACPC,aAAqB,EACrBC,cAA8B,EAC9BC,OAAuB,EACX;EACZ,IACE,iBAAiB,IAAIH,IAAI,IACzB,IAAAI,iBAAQ,EAACJ,IAAI,CAACK,eAAe,CAAC,IAC9BC,MAAM,CAACC,OAAO,CAACP,IAAI,CAACK,eAAe,CAAC,CAACG,KAAK,CACxC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAKA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,EAChD,CAAC,EACD;IACA,OAAOV,IAAI,CAACK,eAAe;EAC7B;EACA,IAAI,IAAI,IAAIL,IAAI,IAAIA,IAAI,CAACW,EAAE,KAAK,IAAI,EAAE;IACpC,OAAOX,IAAI,CAACW,EAAE;EAChB;EACA,IAAIC,iBAAiB,GAAGV,cAAc;EACtC,IAAID,aAAa,KAAKC,cAAc,CAACW,GAAG,CAACC,EAAE,EAAE;IAAA,IAAAC,qBAAA;IAC3C,MAAMC,WAAW,GAAGC,MAAM,CAACC,qBAAqB,GAC5ClB,IAAI,CAACmB,4BAAiB,CAAC,IAAAJ,qBAAA,GACvBZ,OAAO,CAACiB,oBAAoB,CAACnB,aAAa,CAAC,cAAAc,qBAAA,uBAA3CA,qBAAA,CAA6CF,GAAG;IACpDD,iBAAiB,GAAG;MAClB,GAAGV,cAAc;MACjBc,WAAW;MACXK,mBAAmB,EAAErB,IAAI,CAACsB,kCAAuB;IACnD,CAAC;EACH;EACA,OAAOnB,OAAO,CAACoB,qBAAqB,CAACvB,IAAI,EAAEY,iBAAiB,EAAE;IAC5DY,aAAa,EAAE;EACjB,CAAC,CAAC;AACJ;AAEO,SAASC,gBAAgBA,CAC9BC,KAA+B,EAC/BxB,cAA8B,EAC9BC,OAAuB,EACY;EACnC,OAAOwB,OAAO,CAACC,GAAG,CAChBF,KAAK,CAACG,GAAG,CAAC,OAAO;IAAEC,QAAQ;IAAE,GAAGC;EAAK,CAAC,KAAK;IACzC,MAAM,CAACC,YAAY,EAAEC,gBAAgB,CAAC,GAAG,MAAMN,OAAO,CAACC,GAAG,CAAC,CACzD7B,eAAe,CAACgC,IAAI,EAAEA,IAAI,CAACG,sBAAW,CAAC,EAAEhC,cAAc,EAAEC,OAAO,CAAC,EACjE2B,QAAQ,KAAK,MAAML,gBAAgB,CAACK,QAAQ,EAAE5B,cAAc,EAAEC,OAAO,CAAC,CAAC,CACxE,CAAC;IACF,OAAO;MACL,GAAG6B,YAAY;MACfF,QAAQ,EAAEG;IACZ,CAAC;EACH,CAAC,CACH,CAAC;AACH"}
1
+ {"version":3,"file":"computeMenuData.js","names":["_constants","require","_general","_pipes","_cook","computeMenuData","data","overrideAppId","runtimeContext","helpers","isObject","titleDataSource","Object","entries","every","key","value","if","to","isEvaluable","yaml","pipes","some","hasOwnProperty","newRuntimeContext","app","id","_helpers$getStoryboar","overrideApp","window","STANDALONE_MICRO_APPS","symbolOverrideApp","getStoryboardByAppId","appendI18nNamespace","symbolMenuI18nNamespace","asyncComputeRealValue","ignoreSymbols","computeMenuItems","items","Promise","all","map","children","rest","computedRest","computedChildren","symbolAppId"],"sources":["../../../src/menu/computeMenuData.ts"],"sourcesContent":["import type {\n RuntimeContext,\n RuntimeHelpers,\n RuntimeMenuItemRawData,\n RuntimeMenuRawData,\n} from \"./interfaces.js\";\nimport {\n symbolAppId,\n symbolMenuI18nNamespace,\n symbolOverrideApp,\n} from \"./constants.js\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { pipes } from \"@next-core/pipes\";\nimport { isEvaluable } from \"@next-core/cook\";\n\ntype RuntimeMenuRestRawData = Omit<RuntimeMenuRawData, \"app\" | \"items\">;\ntype RuntimeMenuItemRestRawData = Omit<RuntimeMenuItemRawData, \"children\">;\n\nexport function computeMenuData<\n T extends RuntimeMenuRestRawData | RuntimeMenuItemRestRawData\n>(\n data: T,\n overrideAppId: string,\n runtimeContext: RuntimeContext,\n helpers: RuntimeHelpers\n): Promise<T> {\n if (\n \"titleDataSource\" in data &&\n isObject(data.titleDataSource) &&\n Object.entries(data.titleDataSource).every(\n ([key, value]) => value === null || value === \"\"\n )\n ) {\n delete data.titleDataSource;\n }\n if (\"if\" in data && data.if === null) {\n delete data.if;\n }\n if (\"to\" in data && data.to && !isEvaluable(data.to as string)) {\n const yaml = pipes.yaml(data.to as string);\n\n if (\n isObject(yaml) &&\n [\"pathname\", \"search\", \"hash\"].some((key) => hasOwnProperty(yaml, key))\n ) {\n data.to = yaml;\n }\n }\n\n let newRuntimeContext = runtimeContext;\n if (overrideAppId !== runtimeContext.app.id) {\n const overrideApp = window.STANDALONE_MICRO_APPS\n ? data[symbolOverrideApp]\n : helpers.getStoryboardByAppId(overrideAppId)?.app;\n newRuntimeContext = {\n ...runtimeContext,\n overrideApp,\n appendI18nNamespace: data[symbolMenuI18nNamespace],\n };\n }\n return helpers.asyncComputeRealValue(data, newRuntimeContext, {\n ignoreSymbols: true,\n }) as Promise<T>;\n}\n\nexport function computeMenuItems(\n items: RuntimeMenuItemRawData[],\n runtimeContext: RuntimeContext,\n helpers: RuntimeHelpers\n): Promise<RuntimeMenuItemRawData[]> {\n return Promise.all(\n items.map(async ({ children, ...rest }) => {\n const [computedRest, computedChildren] = await Promise.all([\n computeMenuData(rest, rest[symbolAppId], runtimeContext, helpers),\n children && (await computeMenuItems(children, runtimeContext, helpers)),\n ]);\n return {\n ...computedRest,\n children: computedChildren,\n };\n })\n );\n}\n"],"mappings":";;;;;;;AAMA,IAAAA,UAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAKO,SAASI,eAAeA,CAG7BC,IAAO,EACPC,aAAqB,EACrBC,cAA8B,EAC9BC,OAAuB,EACX;EACZ,IACE,iBAAiB,IAAIH,IAAI,IACzB,IAAAI,iBAAQ,EAACJ,IAAI,CAACK,eAAe,CAAC,IAC9BC,MAAM,CAACC,OAAO,CAACP,IAAI,CAACK,eAAe,CAAC,CAACG,KAAK,CACxC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAKA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,EAChD,CAAC,EACD;IACA,OAAOV,IAAI,CAACK,eAAe;EAC7B;EACA,IAAI,IAAI,IAAIL,IAAI,IAAIA,IAAI,CAACW,EAAE,KAAK,IAAI,EAAE;IACpC,OAAOX,IAAI,CAACW,EAAE;EAChB;EACA,IAAI,IAAI,IAAIX,IAAI,IAAIA,IAAI,CAACY,EAAE,IAAI,CAAC,IAAAC,iBAAW,EAACb,IAAI,CAACY,EAAY,CAAC,EAAE;IAC9D,MAAME,IAAI,GAAGC,YAAK,CAACD,IAAI,CAACd,IAAI,CAACY,EAAY,CAAC;IAE1C,IACE,IAAAR,iBAAQ,EAACU,IAAI,CAAC,IACd,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAACE,IAAI,CAAEP,GAAG,IAAK,IAAAQ,uBAAc,EAACH,IAAI,EAAEL,GAAG,CAAC,CAAC,EACvE;MACAT,IAAI,CAACY,EAAE,GAAGE,IAAI;IAChB;EACF;EAEA,IAAII,iBAAiB,GAAGhB,cAAc;EACtC,IAAID,aAAa,KAAKC,cAAc,CAACiB,GAAG,CAACC,EAAE,EAAE;IAAA,IAAAC,qBAAA;IAC3C,MAAMC,WAAW,GAAGC,MAAM,CAACC,qBAAqB,GAC5CxB,IAAI,CAACyB,4BAAiB,CAAC,IAAAJ,qBAAA,GACvBlB,OAAO,CAACuB,oBAAoB,CAACzB,aAAa,CAAC,cAAAoB,qBAAA,uBAA3CA,qBAAA,CAA6CF,GAAG;IACpDD,iBAAiB,GAAG;MAClB,GAAGhB,cAAc;MACjBoB,WAAW;MACXK,mBAAmB,EAAE3B,IAAI,CAAC4B,kCAAuB;IACnD,CAAC;EACH;EACA,OAAOzB,OAAO,CAAC0B,qBAAqB,CAAC7B,IAAI,EAAEkB,iBAAiB,EAAE;IAC5DY,aAAa,EAAE;EACjB,CAAC,CAAC;AACJ;AAEO,SAASC,gBAAgBA,CAC9BC,KAA+B,EAC/B9B,cAA8B,EAC9BC,OAAuB,EACY;EACnC,OAAO8B,OAAO,CAACC,GAAG,CAChBF,KAAK,CAACG,GAAG,CAAC,OAAO;IAAEC,QAAQ;IAAE,GAAGC;EAAK,CAAC,KAAK;IACzC,MAAM,CAACC,YAAY,EAAEC,gBAAgB,CAAC,GAAG,MAAMN,OAAO,CAACC,GAAG,CAAC,CACzDnC,eAAe,CAACsC,IAAI,EAAEA,IAAI,CAACG,sBAAW,CAAC,EAAEtC,cAAc,EAAEC,OAAO,CAAC,EACjEiC,QAAQ,KAAK,MAAML,gBAAgB,CAACK,QAAQ,EAAElC,cAAc,EAAEC,OAAO,CAAC,CAAC,CACxE,CAAC;IACF,OAAO;MACL,GAAGmC,YAAY;MACfF,QAAQ,EAAEG;IACZ,CAAC;EACH,CAAC,CACH,CAAC;AACH"}
@@ -3,7 +3,9 @@ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
3
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
4
4
  var _excluded = ["children"];
5
5
  import { symbolAppId, symbolMenuI18nNamespace, symbolOverrideApp } from "./constants.js";
6
- import { isObject } from "@next-core/utils/general";
6
+ import { hasOwnProperty, isObject } from "@next-core/utils/general";
7
+ import { pipes } from "@next-core/pipes";
8
+ import { isEvaluable } from "@next-core/cook";
7
9
  export function computeMenuData(data, overrideAppId, runtimeContext, helpers) {
8
10
  if ("titleDataSource" in data && isObject(data.titleDataSource) && Object.entries(data.titleDataSource).every(_ref => {
9
11
  var [key, value] = _ref;
@@ -14,6 +16,12 @@ export function computeMenuData(data, overrideAppId, runtimeContext, helpers) {
14
16
  if ("if" in data && data.if === null) {
15
17
  delete data.if;
16
18
  }
19
+ if ("to" in data && data.to && !isEvaluable(data.to)) {
20
+ var yaml = pipes.yaml(data.to);
21
+ if (isObject(yaml) && ["pathname", "search", "hash"].some(key => hasOwnProperty(yaml, key))) {
22
+ data.to = yaml;
23
+ }
24
+ }
17
25
  var newRuntimeContext = runtimeContext;
18
26
  if (overrideAppId !== runtimeContext.app.id) {
19
27
  var _helpers$getStoryboar;
@@ -1 +1 @@
1
- {"version":3,"file":"computeMenuData.js","names":["symbolAppId","symbolMenuI18nNamespace","symbolOverrideApp","isObject","computeMenuData","data","overrideAppId","runtimeContext","helpers","titleDataSource","Object","entries","every","_ref","key","value","if","newRuntimeContext","app","id","_helpers$getStoryboar","overrideApp","window","STANDALONE_MICRO_APPS","getStoryboardByAppId","_objectSpread","appendI18nNamespace","asyncComputeRealValue","ignoreSymbols","computeMenuItems","items","Promise","all","map","_ref3","_asyncToGenerator","_ref2","children","rest","_objectWithoutProperties","_excluded","computedRest","computedChildren","_x","apply","arguments"],"sources":["../../../src/menu/computeMenuData.ts"],"sourcesContent":["import type {\n RuntimeContext,\n RuntimeHelpers,\n RuntimeMenuItemRawData,\n RuntimeMenuRawData,\n} from \"./interfaces.js\";\nimport {\n symbolAppId,\n symbolMenuI18nNamespace,\n symbolOverrideApp,\n} from \"./constants.js\";\nimport { isObject } from \"@next-core/utils/general\";\n\ntype RuntimeMenuRestRawData = Omit<RuntimeMenuRawData, \"app\" | \"items\">;\ntype RuntimeMenuItemRestRawData = Omit<RuntimeMenuItemRawData, \"children\">;\n\nexport function computeMenuData<\n T extends RuntimeMenuRestRawData | RuntimeMenuItemRestRawData\n>(\n data: T,\n overrideAppId: string,\n runtimeContext: RuntimeContext,\n helpers: RuntimeHelpers\n): Promise<T> {\n if (\n \"titleDataSource\" in data &&\n isObject(data.titleDataSource) &&\n Object.entries(data.titleDataSource).every(\n ([key, value]) => value === null || value === \"\"\n )\n ) {\n delete data.titleDataSource;\n }\n if (\"if\" in data && data.if === null) {\n delete data.if;\n }\n let newRuntimeContext = runtimeContext;\n if (overrideAppId !== runtimeContext.app.id) {\n const overrideApp = window.STANDALONE_MICRO_APPS\n ? data[symbolOverrideApp]\n : helpers.getStoryboardByAppId(overrideAppId)?.app;\n newRuntimeContext = {\n ...runtimeContext,\n overrideApp,\n appendI18nNamespace: data[symbolMenuI18nNamespace],\n };\n }\n return helpers.asyncComputeRealValue(data, newRuntimeContext, {\n ignoreSymbols: true,\n }) as Promise<T>;\n}\n\nexport function computeMenuItems(\n items: RuntimeMenuItemRawData[],\n runtimeContext: RuntimeContext,\n helpers: RuntimeHelpers\n): Promise<RuntimeMenuItemRawData[]> {\n return Promise.all(\n items.map(async ({ children, ...rest }) => {\n const [computedRest, computedChildren] = await Promise.all([\n computeMenuData(rest, rest[symbolAppId], runtimeContext, helpers),\n children && (await computeMenuItems(children, runtimeContext, helpers)),\n ]);\n return {\n ...computedRest,\n children: computedChildren,\n };\n })\n );\n}\n"],"mappings":";;;;AAMA,SACEA,WAAW,EACXC,uBAAuB,EACvBC,iBAAiB,QACZ,gBAAgB;AACvB,SAASC,QAAQ,QAAQ,0BAA0B;AAKnD,OAAO,SAASC,eAAeA,CAG7BC,IAAO,EACPC,aAAqB,EACrBC,cAA8B,EAC9BC,OAAuB,EACX;EACZ,IACE,iBAAiB,IAAIH,IAAI,IACzBF,QAAQ,CAACE,IAAI,CAACI,eAAe,CAAC,IAC9BC,MAAM,CAACC,OAAO,CAACN,IAAI,CAACI,eAAe,CAAC,CAACG,KAAK,CACxCC,IAAA;IAAA,IAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,GAAAF,IAAA;IAAA,OAAKE,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,EAAE;EAAA,CAClD,CAAC,EACD;IACA,OAAOV,IAAI,CAACI,eAAe;EAC7B;EACA,IAAI,IAAI,IAAIJ,IAAI,IAAIA,IAAI,CAACW,EAAE,KAAK,IAAI,EAAE;IACpC,OAAOX,IAAI,CAACW,EAAE;EAChB;EACA,IAAIC,iBAAiB,GAAGV,cAAc;EACtC,IAAID,aAAa,KAAKC,cAAc,CAACW,GAAG,CAACC,EAAE,EAAE;IAAA,IAAAC,qBAAA;IAC3C,IAAMC,WAAW,GAAGC,MAAM,CAACC,qBAAqB,GAC5ClB,IAAI,CAACH,iBAAiB,CAAC,IAAAkB,qBAAA,GACvBZ,OAAO,CAACgB,oBAAoB,CAAClB,aAAa,CAAC,cAAAc,qBAAA,uBAA3CA,qBAAA,CAA6CF,GAAG;IACpDD,iBAAiB,GAAAQ,aAAA,CAAAA,aAAA,KACZlB,cAAc;MACjBc,WAAW;MACXK,mBAAmB,EAAErB,IAAI,CAACJ,uBAAuB;IAAC,EACnD;EACH;EACA,OAAOO,OAAO,CAACmB,qBAAqB,CAACtB,IAAI,EAAEY,iBAAiB,EAAE;IAC5DW,aAAa,EAAE;EACjB,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,gBAAgBA,CAC9BC,KAA+B,EAC/BvB,cAA8B,EAC9BC,OAAuB,EACY;EACnC,OAAOuB,OAAO,CAACC,GAAG,CAChBF,KAAK,CAACG,GAAG;IAAA,IAAAC,KAAA,GAAAC,iBAAA,CAAC,WAAAC,KAAA,EAAiC;MAAA,IAA1B;UAAEC;QAAkB,CAAC,GAAAD,KAAA;QAANE,IAAI,GAAAC,wBAAA,CAAAH,KAAA,EAAAI,SAAA;MAClC,IAAM,CAACC,YAAY,EAAEC,gBAAgB,CAAC,SAASX,OAAO,CAACC,GAAG,CAAC,CACzD5B,eAAe,CAACkC,IAAI,EAAEA,IAAI,CAACtC,WAAW,CAAC,EAAEO,cAAc,EAAEC,OAAO,CAAC,EACjE6B,QAAQ,WAAWR,gBAAgB,CAACQ,QAAQ,EAAE9B,cAAc,EAAEC,OAAO,CAAC,CAAC,CACxE,CAAC;MACF,OAAAiB,aAAA,CAAAA,aAAA,KACKgB,YAAY;QACfJ,QAAQ,EAAEK;MAAgB;IAE9B,CAAC;IAAA,iBAAAC,EAAA;MAAA,OAAAT,KAAA,CAAAU,KAAA,OAAAC,SAAA;IAAA;EAAA,IACH,CAAC;AACH"}
1
+ {"version":3,"file":"computeMenuData.js","names":["symbolAppId","symbolMenuI18nNamespace","symbolOverrideApp","hasOwnProperty","isObject","pipes","isEvaluable","computeMenuData","data","overrideAppId","runtimeContext","helpers","titleDataSource","Object","entries","every","_ref","key","value","if","to","yaml","some","newRuntimeContext","app","id","_helpers$getStoryboar","overrideApp","window","STANDALONE_MICRO_APPS","getStoryboardByAppId","_objectSpread","appendI18nNamespace","asyncComputeRealValue","ignoreSymbols","computeMenuItems","items","Promise","all","map","_ref3","_asyncToGenerator","_ref2","children","rest","_objectWithoutProperties","_excluded","computedRest","computedChildren","_x","apply","arguments"],"sources":["../../../src/menu/computeMenuData.ts"],"sourcesContent":["import type {\n RuntimeContext,\n RuntimeHelpers,\n RuntimeMenuItemRawData,\n RuntimeMenuRawData,\n} from \"./interfaces.js\";\nimport {\n symbolAppId,\n symbolMenuI18nNamespace,\n symbolOverrideApp,\n} from \"./constants.js\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { pipes } from \"@next-core/pipes\";\nimport { isEvaluable } from \"@next-core/cook\";\n\ntype RuntimeMenuRestRawData = Omit<RuntimeMenuRawData, \"app\" | \"items\">;\ntype RuntimeMenuItemRestRawData = Omit<RuntimeMenuItemRawData, \"children\">;\n\nexport function computeMenuData<\n T extends RuntimeMenuRestRawData | RuntimeMenuItemRestRawData\n>(\n data: T,\n overrideAppId: string,\n runtimeContext: RuntimeContext,\n helpers: RuntimeHelpers\n): Promise<T> {\n if (\n \"titleDataSource\" in data &&\n isObject(data.titleDataSource) &&\n Object.entries(data.titleDataSource).every(\n ([key, value]) => value === null || value === \"\"\n )\n ) {\n delete data.titleDataSource;\n }\n if (\"if\" in data && data.if === null) {\n delete data.if;\n }\n if (\"to\" in data && data.to && !isEvaluable(data.to as string)) {\n const yaml = pipes.yaml(data.to as string);\n\n if (\n isObject(yaml) &&\n [\"pathname\", \"search\", \"hash\"].some((key) => hasOwnProperty(yaml, key))\n ) {\n data.to = yaml;\n }\n }\n\n let newRuntimeContext = runtimeContext;\n if (overrideAppId !== runtimeContext.app.id) {\n const overrideApp = window.STANDALONE_MICRO_APPS\n ? data[symbolOverrideApp]\n : helpers.getStoryboardByAppId(overrideAppId)?.app;\n newRuntimeContext = {\n ...runtimeContext,\n overrideApp,\n appendI18nNamespace: data[symbolMenuI18nNamespace],\n };\n }\n return helpers.asyncComputeRealValue(data, newRuntimeContext, {\n ignoreSymbols: true,\n }) as Promise<T>;\n}\n\nexport function computeMenuItems(\n items: RuntimeMenuItemRawData[],\n runtimeContext: RuntimeContext,\n helpers: RuntimeHelpers\n): Promise<RuntimeMenuItemRawData[]> {\n return Promise.all(\n items.map(async ({ children, ...rest }) => {\n const [computedRest, computedChildren] = await Promise.all([\n computeMenuData(rest, rest[symbolAppId], runtimeContext, helpers),\n children && (await computeMenuItems(children, runtimeContext, helpers)),\n ]);\n return {\n ...computedRest,\n children: computedChildren,\n };\n })\n );\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/easyops-runtime",
3
- "version": "0.5.1",
3
+ "version": "0.6.0",
4
4
  "homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/easyops-runtime",
5
5
  "license": "GPL-3.0",
6
6
  "repository": {
@@ -44,8 +44,10 @@
44
44
  "@next-api-sdk/cmdb-sdk": "^1.1.0",
45
45
  "@next-api-sdk/micro-app-sdk": "^1.2.1",
46
46
  "@next-api-sdk/micro-app-standalone-sdk": "^1.1.0",
47
+ "@next-core/cook": "^2.2.2",
47
48
  "@next-core/http": "^1.0.6",
48
- "@next-core/runtime": "^1.17.0",
49
+ "@next-core/pipes": "^2.0.6",
50
+ "@next-core/runtime": "^1.17.1",
49
51
  "@next-core/types": "^1.5.0",
50
52
  "@next-core/utils": "^1.5.4",
51
53
  "js-yaml": "^3.14.1",
@@ -56,5 +58,5 @@
56
58
  "@next-core/test-next": "^1.0.6",
57
59
  "jest-websocket-mock": "^2.4.0"
58
60
  },
59
- "gitHead": "1277be9befefadd87cde69797a1786b69f242a4e"
61
+ "gitHead": "618559c95f5a1ef0eaf4d2792b530deaf933d45d"
60
62
  }