@next-core/runtime 1.20.0 → 1.20.1

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.
@@ -9,7 +9,7 @@ var _setupTemplateProxy = require("./setupTemplateProxy.js");
9
9
  var _Renderer = require("../Renderer.js");
10
10
  function setupUseBrickInTemplate(props, hostContext) {
11
11
  function walk(props) {
12
- if (!(0, _general.isObject)(props)) {
12
+ if (!(0, _general.isObject)(props) || typeof props === "function") {
13
13
  return props;
14
14
  }
15
15
  if (Array.isArray(props)) {
@@ -1 +1 @@
1
- {"version":3,"file":"setupUseBrickInTemplate.js","names":["_general","require","_setupTemplateProxy","_Renderer","setupUseBrickInTemplate","props","hostContext","walk","isObject","Array","isArray","map","Object","fromEntries","entries","key","value","setup","concat","getOwnPropertySymbols","k","item","properties","slots","originalSlots","children","restConf","transpiledSlots","childrenToSlots","slotName","slotConf","_slotConf$bricks","type","bricks","setupTemplateProxy","ref"],"sources":["../../../../src/internal/CustomTemplates/setupUseBrickInTemplate.ts"],"sourcesContent":["import type { UseBrickSlotsConf, UseSingleBrickConf } from \"@next-core/types\";\nimport { isObject } from \"@next-core/utils/general\";\nimport type { TemplateHostContext } from \"../interfaces.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\n\nexport function setupUseBrickInTemplate<T>(\n props: T,\n hostContext: TemplateHostContext\n): T {\n function walk<P>(props: P): P {\n if (!isObject(props)) {\n return props;\n }\n\n if (Array.isArray(props)) {\n return props.map(walk) as P;\n }\n\n return Object.fromEntries(\n Object.entries(props)\n .map(([key, value]) =>\n isObject(value) && key === \"useBrick\"\n ? Array.isArray(value)\n ? [key, value.map(setup)]\n : [key, setup(value as UseSingleBrickConf)]\n : [key, walk(value)]\n )\n .concat(\n Object.getOwnPropertySymbols(props).map((k) => [\n k,\n (props as Record<string | symbol, unknown>)[k],\n ])\n )\n ) as P;\n }\n\n function setup(item: UseSingleBrickConf): UseSingleBrickConf {\n const { properties, slots: originalSlots, children, ...restConf } = item;\n\n const transpiledSlots = childrenToSlots(children, originalSlots) as\n | UseBrickSlotsConf\n | undefined;\n\n const slots = Object.fromEntries(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).map(setup),\n },\n ])\n ) as UseBrickSlotsConf;\n\n return {\n ...restConf,\n properties: walk(properties),\n slots,\n ...setupTemplateProxy(hostContext, restConf.ref, slots),\n };\n }\n\n return walk(props);\n}\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEO,SAASG,uBAAuBA,CACrCC,KAAQ,EACRC,WAAgC,EAC7B;EACH,SAASC,IAAIA,CAAIF,KAAQ,EAAK;IAC5B,IAAI,CAAC,IAAAG,iBAAQ,EAACH,KAAK,CAAC,EAAE;MACpB,OAAOA,KAAK;IACd;IAEA,IAAII,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC,EAAE;MACxB,OAAOA,KAAK,CAACM,GAAG,CAACJ,IAAI,CAAC;IACxB;IAEA,OAAOK,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACT,KAAK,CAAC,CAClBM,GAAG,CAAC,CAAC,CAACI,GAAG,EAAEC,KAAK,CAAC,KAChB,IAAAR,iBAAQ,EAACQ,KAAK,CAAC,IAAID,GAAG,KAAK,UAAU,GACjCN,KAAK,CAACC,OAAO,CAACM,KAAK,CAAC,GAClB,CAACD,GAAG,EAAEC,KAAK,CAACL,GAAG,CAACM,KAAK,CAAC,CAAC,GACvB,CAACF,GAAG,EAAEE,KAAK,CAACD,KAA2B,CAAC,CAAC,GAC3C,CAACD,GAAG,EAAER,IAAI,CAACS,KAAK,CAAC,CACvB,CAAC,CACAE,MAAM,CACLN,MAAM,CAACO,qBAAqB,CAACd,KAAK,CAAC,CAACM,GAAG,CAAES,CAAC,IAAK,CAC7CA,CAAC,EACAf,KAAK,CAAsCe,CAAC,CAAC,CAC/C,CACH,CACJ,CAAC;EACH;EAEA,SAASH,KAAKA,CAACI,IAAwB,EAAsB;IAC3D,MAAM;MAAEC,UAAU;MAAEC,KAAK,EAAEC,aAAa;MAAEC,QAAQ;MAAE,GAAGC;IAAS,CAAC,GAAGL,IAAI;IAExE,MAAMM,eAAe,GAAG,IAAAC,yBAAe,EAACH,QAAQ,EAAED,aAAa,CAElD;IAEb,MAAMD,KAAK,GAAGX,MAAM,CAACC,WAAW,CAC9BD,MAAM,CAACE,OAAO,CAACa,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAI,CAAC,CAAC,CAAC,CAAChB,GAAG,CAAC,CAAC,CAACkB,QAAQ,EAAEC,QAAQ,CAAC;MAAA,IAAAC,gBAAA;MAAA,OAAK,CAClEF,QAAQ,EACR;QACEG,IAAI,EAAE,QAAQ;QACdC,MAAM,EAAE,EAAAF,gBAAA,GAACD,QAAQ,CAACG,MAAM,cAAAF,gBAAA,cAAAA,gBAAA,GAAI,EAAE,EAAEpB,GAAG,CAACM,KAAK;MAC3C,CAAC,CACF;IAAA,EACH,CAAsB;IAEtB,OAAO;MACL,GAAGS,QAAQ;MACXJ,UAAU,EAAEf,IAAI,CAACe,UAAU,CAAC;MAC5BC,KAAK;MACL,GAAG,IAAAW,sCAAkB,EAAC5B,WAAW,EAAEoB,QAAQ,CAACS,GAAG,EAAEZ,KAAK;IACxD,CAAC;EACH;EAEA,OAAOhB,IAAI,CAACF,KAAK,CAAC;AACpB"}
1
+ {"version":3,"file":"setupUseBrickInTemplate.js","names":["_general","require","_setupTemplateProxy","_Renderer","setupUseBrickInTemplate","props","hostContext","walk","isObject","Array","isArray","map","Object","fromEntries","entries","key","value","setup","concat","getOwnPropertySymbols","k","item","properties","slots","originalSlots","children","restConf","transpiledSlots","childrenToSlots","slotName","slotConf","_slotConf$bricks","type","bricks","setupTemplateProxy","ref"],"sources":["../../../../src/internal/CustomTemplates/setupUseBrickInTemplate.ts"],"sourcesContent":["import type { UseBrickSlotsConf, UseSingleBrickConf } from \"@next-core/types\";\nimport { isObject } from \"@next-core/utils/general\";\nimport type { TemplateHostContext } from \"../interfaces.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\n\nexport function setupUseBrickInTemplate<T>(\n props: T,\n hostContext: TemplateHostContext\n): T {\n function walk<P>(props: P): P {\n if (!isObject(props) || typeof props === \"function\") {\n return props;\n }\n\n if (Array.isArray(props)) {\n return props.map(walk) as P;\n }\n\n return Object.fromEntries(\n Object.entries(props)\n .map(([key, value]) =>\n isObject(value) && key === \"useBrick\"\n ? Array.isArray(value)\n ? [key, value.map(setup)]\n : [key, setup(value as UseSingleBrickConf)]\n : [key, walk(value)]\n )\n .concat(\n Object.getOwnPropertySymbols(props).map((k) => [\n k,\n (props as Record<string | symbol, unknown>)[k],\n ])\n )\n ) as P;\n }\n\n function setup(item: UseSingleBrickConf): UseSingleBrickConf {\n const { properties, slots: originalSlots, children, ...restConf } = item;\n\n const transpiledSlots = childrenToSlots(children, originalSlots) as\n | UseBrickSlotsConf\n | undefined;\n\n const slots = Object.fromEntries(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).map(setup),\n },\n ])\n ) as UseBrickSlotsConf;\n\n return {\n ...restConf,\n properties: walk(properties),\n slots,\n ...setupTemplateProxy(hostContext, restConf.ref, slots),\n };\n }\n\n return walk(props);\n}\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEO,SAASG,uBAAuBA,CACrCC,KAAQ,EACRC,WAAgC,EAC7B;EACH,SAASC,IAAIA,CAAIF,KAAQ,EAAK;IAC5B,IAAI,CAAC,IAAAG,iBAAQ,EAACH,KAAK,CAAC,IAAI,OAAOA,KAAK,KAAK,UAAU,EAAE;MACnD,OAAOA,KAAK;IACd;IAEA,IAAII,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC,EAAE;MACxB,OAAOA,KAAK,CAACM,GAAG,CAACJ,IAAI,CAAC;IACxB;IAEA,OAAOK,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACT,KAAK,CAAC,CAClBM,GAAG,CAAC,CAAC,CAACI,GAAG,EAAEC,KAAK,CAAC,KAChB,IAAAR,iBAAQ,EAACQ,KAAK,CAAC,IAAID,GAAG,KAAK,UAAU,GACjCN,KAAK,CAACC,OAAO,CAACM,KAAK,CAAC,GAClB,CAACD,GAAG,EAAEC,KAAK,CAACL,GAAG,CAACM,KAAK,CAAC,CAAC,GACvB,CAACF,GAAG,EAAEE,KAAK,CAACD,KAA2B,CAAC,CAAC,GAC3C,CAACD,GAAG,EAAER,IAAI,CAACS,KAAK,CAAC,CACvB,CAAC,CACAE,MAAM,CACLN,MAAM,CAACO,qBAAqB,CAACd,KAAK,CAAC,CAACM,GAAG,CAAES,CAAC,IAAK,CAC7CA,CAAC,EACAf,KAAK,CAAsCe,CAAC,CAAC,CAC/C,CACH,CACJ,CAAC;EACH;EAEA,SAASH,KAAKA,CAACI,IAAwB,EAAsB;IAC3D,MAAM;MAAEC,UAAU;MAAEC,KAAK,EAAEC,aAAa;MAAEC,QAAQ;MAAE,GAAGC;IAAS,CAAC,GAAGL,IAAI;IAExE,MAAMM,eAAe,GAAG,IAAAC,yBAAe,EAACH,QAAQ,EAAED,aAAa,CAElD;IAEb,MAAMD,KAAK,GAAGX,MAAM,CAACC,WAAW,CAC9BD,MAAM,CAACE,OAAO,CAACa,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAI,CAAC,CAAC,CAAC,CAAChB,GAAG,CAAC,CAAC,CAACkB,QAAQ,EAAEC,QAAQ,CAAC;MAAA,IAAAC,gBAAA;MAAA,OAAK,CAClEF,QAAQ,EACR;QACEG,IAAI,EAAE,QAAQ;QACdC,MAAM,EAAE,EAAAF,gBAAA,GAACD,QAAQ,CAACG,MAAM,cAAAF,gBAAA,cAAAA,gBAAA,GAAI,EAAE,EAAEpB,GAAG,CAACM,KAAK;MAC3C,CAAC,CACF;IAAA,EACH,CAAsB;IAEtB,OAAO;MACL,GAAGS,QAAQ;MACXJ,UAAU,EAAEf,IAAI,CAACe,UAAU,CAAC;MAC5BC,KAAK;MACL,GAAG,IAAAW,sCAAkB,EAAC5B,WAAW,EAAEoB,QAAQ,CAACS,GAAG,EAAEZ,KAAK;IACxD,CAAC;EACH;EAEA,OAAOhB,IAAI,CAACF,KAAK,CAAC;AACpB"}
@@ -32,7 +32,7 @@ async function asyncComputeRealValue(value, runtimeContext, internalOptions = {}
32
32
  }
33
33
  return result;
34
34
  }
35
- if (!(0, _general.isObject)(value) || (0, _markAsComputed.hasBeenComputed)(value)) {
35
+ if (!(0, _general.isObject)(value) || (0, _markAsComputed.hasBeenComputed)(value) || typeof value === "function") {
36
36
  return value;
37
37
  }
38
38
  if (Array.isArray(value)) {
@@ -60,7 +60,7 @@ function computeRealValue(value, runtimeContext, internalOptions = {}) {
60
60
  }
61
61
  return result;
62
62
  }
63
- if (!(0, _general.isObject)(value) || (0, _markAsComputed.hasBeenComputed)(value)) {
63
+ if (!(0, _general.isObject)(value) || (0, _markAsComputed.hasBeenComputed)(value) || typeof value === "function") {
64
64
  return value;
65
65
  }
66
66
  if (Array.isArray(value)) {
@@ -1 +1 @@
1
- {"version":3,"file":"computeRealValue.js","names":["_cook","require","_general","_inject","_evaluate","_getNextStateOfUseBrick","_markAsComputed","asyncComputeRealValue","value","runtimeContext","internalOptions","preEvaluated","isPreEvaluated","lazy","$$lazyForUseBrick","isLazyContentInUseBrick","$$stateOfUseBrick","result","dismissMarkingComputed","isEvaluable","asyncEvaluate","shouldDismissMarkingComputed","hasOwnProperty","noInject","transform","transformAndInject","identity","inject","markAsComputed","isObject","hasBeenComputed","Array","isArray","nextOptions","getNextComputeOptions","Promise","all","map","v","Object","fromEntries","entries","k","concat","ignoreSymbols","getOwnPropertySymbols","computeRealValue","evaluate","key","getNextStateOfUseBrick"],"sources":["../../../../src/internal/compute/computeRealValue.ts"],"sourcesContent":["import { isEvaluable } from \"@next-core/cook\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { transformAndInject, transform, inject } from \"@next-core/inject\";\nimport {\n asyncEvaluate,\n isPreEvaluated,\n evaluate,\n shouldDismissMarkingComputed,\n} from \"./evaluate.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport {\n StateOfUseBrick,\n getNextStateOfUseBrick,\n isLazyContentInUseBrick,\n} from \"./getNextStateOfUseBrick.js\";\nimport { hasBeenComputed, markAsComputed } from \"./markAsComputed.js\";\n\nexport interface ComputeOptions {\n $$lazyForUseBrick?: boolean;\n $$stateOfUseBrick?: StateOfUseBrick;\n ignoreSymbols?: boolean;\n noInject?: boolean;\n}\n\nexport async function asyncComputeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n internalOptions: ComputeOptions = {}\n): Promise<unknown> {\n const preEvaluated = isPreEvaluated(value);\n\n if (preEvaluated || typeof value === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,\n // are kept and to be evaluated later.\n const lazy =\n internalOptions.$$lazyForUseBrick &&\n isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);\n\n let result: unknown;\n let dismissMarkingComputed = lazy;\n\n if (preEvaluated || isEvaluable(value as string)) {\n result = await asyncEvaluate(value, runtimeContext, { lazy });\n dismissMarkingComputed = shouldDismissMarkingComputed(value);\n } else {\n result = lazy\n ? value\n : (hasOwnProperty(runtimeContext, \"data\")\n ? internalOptions.noInject\n ? transform\n : transformAndInject\n : internalOptions.noInject\n ? identity\n : inject)(value, runtimeContext);\n }\n\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n\n return result;\n }\n\n if (!isObject(value) || hasBeenComputed(value)) {\n return value;\n }\n\n if (Array.isArray(value)) {\n const nextOptions = getNextComputeOptions(internalOptions, true);\n return Promise.all(\n value.map((v) => asyncComputeRealValue(v, runtimeContext, nextOptions))\n );\n }\n\n return Object.fromEntries(\n (\n await Promise.all(\n Object.entries(value).map(([k, v]) =>\n Promise.all([\n asyncComputeRealValue(k, runtimeContext),\n asyncComputeRealValue(\n v,\n runtimeContext,\n getNextComputeOptions(internalOptions, false, k)\n ),\n ])\n )\n )\n ).concat(\n internalOptions.ignoreSymbols\n ? []\n : Object.getOwnPropertySymbols(value).map((k) => [\n k,\n (value as Record<string | symbol, unknown>)[k],\n ])\n )\n );\n}\n\nexport function computeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n internalOptions: ComputeOptions = {}\n): unknown {\n const preEvaluated = isPreEvaluated(value);\n\n if (preEvaluated || typeof value === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,\n // are kept and to be evaluated later.\n const lazy =\n internalOptions.$$lazyForUseBrick &&\n isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);\n\n let result: unknown;\n let dismissMarkingComputed = lazy;\n\n if (preEvaluated || isEvaluable(value as string)) {\n result = evaluate(value, runtimeContext);\n dismissMarkingComputed = shouldDismissMarkingComputed(value);\n } else {\n result = lazy\n ? value\n : (hasOwnProperty(runtimeContext, \"data\")\n ? internalOptions.noInject\n ? transform\n : transformAndInject\n : internalOptions.noInject\n ? identity\n : inject)(value, runtimeContext);\n }\n\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n\n return result;\n }\n\n if (!isObject(value) || hasBeenComputed(value)) {\n return value;\n }\n\n if (Array.isArray(value)) {\n const nextOptions = getNextComputeOptions(internalOptions, true);\n return value.map((v) => computeRealValue(v, runtimeContext, nextOptions));\n }\n\n return Object.fromEntries(\n Object.entries(value)\n .map(([k, v]) => [\n computeRealValue(k, runtimeContext),\n computeRealValue(\n v,\n runtimeContext,\n getNextComputeOptions(internalOptions, false, k)\n ),\n ])\n .concat(\n internalOptions.ignoreSymbols\n ? []\n : Object.getOwnPropertySymbols(value).map((k) => [\n k,\n (value as Record<string | symbol, unknown>)[k],\n ])\n )\n );\n}\n\nfunction getNextComputeOptions(\n internalOptions: ComputeOptions,\n isArray: boolean,\n key?: string\n): ComputeOptions {\n return internalOptions.$$lazyForUseBrick\n ? {\n ...internalOptions,\n $$stateOfUseBrick: getNextStateOfUseBrick(\n internalOptions.$$stateOfUseBrick,\n isArray,\n key\n ),\n }\n : internalOptions;\n}\n\nfunction identity<T>(value: T): T {\n return value;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"computeRealValue.js","names":["_cook","require","_general","_inject","_evaluate","_getNextStateOfUseBrick","_markAsComputed","asyncComputeRealValue","value","runtimeContext","internalOptions","preEvaluated","isPreEvaluated","lazy","$$lazyForUseBrick","isLazyContentInUseBrick","$$stateOfUseBrick","result","dismissMarkingComputed","isEvaluable","asyncEvaluate","shouldDismissMarkingComputed","hasOwnProperty","noInject","transform","transformAndInject","identity","inject","markAsComputed","isObject","hasBeenComputed","Array","isArray","nextOptions","getNextComputeOptions","Promise","all","map","v","Object","fromEntries","entries","k","concat","ignoreSymbols","getOwnPropertySymbols","computeRealValue","evaluate","key","getNextStateOfUseBrick"],"sources":["../../../../src/internal/compute/computeRealValue.ts"],"sourcesContent":["import { isEvaluable } from \"@next-core/cook\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { transformAndInject, transform, inject } from \"@next-core/inject\";\nimport {\n asyncEvaluate,\n isPreEvaluated,\n evaluate,\n shouldDismissMarkingComputed,\n} from \"./evaluate.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport {\n StateOfUseBrick,\n getNextStateOfUseBrick,\n isLazyContentInUseBrick,\n} from \"./getNextStateOfUseBrick.js\";\nimport { hasBeenComputed, markAsComputed } from \"./markAsComputed.js\";\n\nexport interface ComputeOptions {\n $$lazyForUseBrick?: boolean;\n $$stateOfUseBrick?: StateOfUseBrick;\n ignoreSymbols?: boolean;\n noInject?: boolean;\n}\n\nexport async function asyncComputeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n internalOptions: ComputeOptions = {}\n): Promise<unknown> {\n const preEvaluated = isPreEvaluated(value);\n\n if (preEvaluated || typeof value === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,\n // are kept and to be evaluated later.\n const lazy =\n internalOptions.$$lazyForUseBrick &&\n isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);\n\n let result: unknown;\n let dismissMarkingComputed = lazy;\n\n if (preEvaluated || isEvaluable(value as string)) {\n result = await asyncEvaluate(value, runtimeContext, { lazy });\n dismissMarkingComputed = shouldDismissMarkingComputed(value);\n } else {\n result = lazy\n ? value\n : (hasOwnProperty(runtimeContext, \"data\")\n ? internalOptions.noInject\n ? transform\n : transformAndInject\n : internalOptions.noInject\n ? identity\n : inject)(value, runtimeContext);\n }\n\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n\n return result;\n }\n\n if (\n !isObject(value) ||\n hasBeenComputed(value) ||\n typeof value === \"function\"\n ) {\n return value;\n }\n\n if (Array.isArray(value)) {\n const nextOptions = getNextComputeOptions(internalOptions, true);\n return Promise.all(\n value.map((v) => asyncComputeRealValue(v, runtimeContext, nextOptions))\n );\n }\n\n return Object.fromEntries(\n (\n await Promise.all(\n Object.entries(value).map(([k, v]) =>\n Promise.all([\n asyncComputeRealValue(k, runtimeContext),\n asyncComputeRealValue(\n v,\n runtimeContext,\n getNextComputeOptions(internalOptions, false, k)\n ),\n ])\n )\n )\n ).concat(\n internalOptions.ignoreSymbols\n ? []\n : Object.getOwnPropertySymbols(value).map((k) => [\n k,\n (value as Record<string | symbol, unknown>)[k],\n ])\n )\n );\n}\n\nexport function computeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n internalOptions: ComputeOptions = {}\n): unknown {\n const preEvaluated = isPreEvaluated(value);\n\n if (preEvaluated || typeof value === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,\n // are kept and to be evaluated later.\n const lazy =\n internalOptions.$$lazyForUseBrick &&\n isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);\n\n let result: unknown;\n let dismissMarkingComputed = lazy;\n\n if (preEvaluated || isEvaluable(value as string)) {\n result = evaluate(value, runtimeContext);\n dismissMarkingComputed = shouldDismissMarkingComputed(value);\n } else {\n result = lazy\n ? value\n : (hasOwnProperty(runtimeContext, \"data\")\n ? internalOptions.noInject\n ? transform\n : transformAndInject\n : internalOptions.noInject\n ? identity\n : inject)(value, runtimeContext);\n }\n\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n\n return result;\n }\n\n if (\n !isObject(value) ||\n hasBeenComputed(value) ||\n typeof value === \"function\"\n ) {\n return value;\n }\n\n if (Array.isArray(value)) {\n const nextOptions = getNextComputeOptions(internalOptions, true);\n return value.map((v) => computeRealValue(v, runtimeContext, nextOptions));\n }\n\n return Object.fromEntries(\n Object.entries(value)\n .map(([k, v]) => [\n computeRealValue(k, runtimeContext),\n computeRealValue(\n v,\n runtimeContext,\n getNextComputeOptions(internalOptions, false, k)\n ),\n ])\n .concat(\n internalOptions.ignoreSymbols\n ? []\n : Object.getOwnPropertySymbols(value).map((k) => [\n k,\n (value as Record<string | symbol, unknown>)[k],\n ])\n )\n );\n}\n\nfunction getNextComputeOptions(\n internalOptions: ComputeOptions,\n isArray: boolean,\n key?: string\n): ComputeOptions {\n return internalOptions.$$lazyForUseBrick\n ? {\n ...internalOptions,\n $$stateOfUseBrick: getNextStateOfUseBrick(\n internalOptions.$$stateOfUseBrick,\n isArray,\n key\n ),\n }\n : internalOptions;\n}\n\nfunction identity<T>(value: T): T {\n return value;\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAOA,IAAAI,uBAAA,GAAAJ,OAAA;AAKA,IAAAK,eAAA,GAAAL,OAAA;AASO,eAAeM,qBAAqBA,CACzCC,KAAc,EACdC,cAA8B,EAC9BC,eAA+B,GAAG,CAAC,CAAC,EAClB;EAClB,MAAMC,YAAY,GAAG,IAAAC,wBAAc,EAACJ,KAAK,CAAC;EAE1C,IAAIG,YAAY,IAAI,OAAOH,KAAK,KAAK,QAAQ,EAAE;IAC7C;IACA;IACA,MAAMK,IAAI,GACRH,eAAe,CAACI,iBAAiB,IACjC,IAAAC,+CAAuB,EAACL,eAAe,CAACM,iBAAiB,CAAC;IAE5D,IAAIC,MAAe;IACnB,IAAIC,sBAAsB,GAAGL,IAAI;IAEjC,IAAIF,YAAY,IAAI,IAAAQ,iBAAW,EAACX,KAAe,CAAC,EAAE;MAChDS,MAAM,GAAG,MAAM,IAAAG,uBAAa,EAACZ,KAAK,EAAEC,cAAc,EAAE;QAAEI;MAAK,CAAC,CAAC;MAC7DK,sBAAsB,GAAG,IAAAG,sCAA4B,EAACb,KAAK,CAAC;IAC9D,CAAC,MAAM;MACLS,MAAM,GAAGJ,IAAI,GACTL,KAAK,GACL,CAAC,IAAAc,uBAAc,EAACb,cAAc,EAAE,MAAM,CAAC,GACnCC,eAAe,CAACa,QAAQ,GACtBC,iBAAS,GACTC,0BAAkB,GACpBf,eAAe,CAACa,QAAQ,GACxBG,QAAQ,GACRC,cAAM,EAAEnB,KAAK,EAAEC,cAAc,CAAC;IACxC;IAEA,IAAI,CAACS,sBAAsB,EAAE;MAC3B,IAAAU,8BAAc,EAACX,MAAM,CAAC;IACxB;IAEA,OAAOA,MAAM;EACf;EAEA,IACE,CAAC,IAAAY,iBAAQ,EAACrB,KAAK,CAAC,IAChB,IAAAsB,+BAAe,EAACtB,KAAK,CAAC,IACtB,OAAOA,KAAK,KAAK,UAAU,EAC3B;IACA,OAAOA,KAAK;EACd;EAEA,IAAIuB,KAAK,CAACC,OAAO,CAACxB,KAAK,CAAC,EAAE;IACxB,MAAMyB,WAAW,GAAGC,qBAAqB,CAACxB,eAAe,EAAE,IAAI,CAAC;IAChE,OAAOyB,OAAO,CAACC,GAAG,CAChB5B,KAAK,CAAC6B,GAAG,CAAEC,CAAC,IAAK/B,qBAAqB,CAAC+B,CAAC,EAAE7B,cAAc,EAAEwB,WAAW,CAAC,CACxE,CAAC;EACH;EAEA,OAAOM,MAAM,CAACC,WAAW,CACvB,CACE,MAAML,OAAO,CAACC,GAAG,CACfG,MAAM,CAACE,OAAO,CAACjC,KAAK,CAAC,CAAC6B,GAAG,CAAC,CAAC,CAACK,CAAC,EAAEJ,CAAC,CAAC,KAC/BH,OAAO,CAACC,GAAG,CAAC,CACV7B,qBAAqB,CAACmC,CAAC,EAAEjC,cAAc,CAAC,EACxCF,qBAAqB,CACnB+B,CAAC,EACD7B,cAAc,EACdyB,qBAAqB,CAACxB,eAAe,EAAE,KAAK,EAAEgC,CAAC,CACjD,CAAC,CACF,CACH,CACF,CAAC,EACDC,MAAM,CACNjC,eAAe,CAACkC,aAAa,GACzB,EAAE,GACFL,MAAM,CAACM,qBAAqB,CAACrC,KAAK,CAAC,CAAC6B,GAAG,CAAEK,CAAC,IAAK,CAC7CA,CAAC,EACAlC,KAAK,CAAsCkC,CAAC,CAAC,CAC/C,CACP,CACF,CAAC;AACH;AAEO,SAASI,gBAAgBA,CAC9BtC,KAAc,EACdC,cAA8B,EAC9BC,eAA+B,GAAG,CAAC,CAAC,EAC3B;EACT,MAAMC,YAAY,GAAG,IAAAC,wBAAc,EAACJ,KAAK,CAAC;EAE1C,IAAIG,YAAY,IAAI,OAAOH,KAAK,KAAK,QAAQ,EAAE;IAC7C;IACA;IACA,MAAMK,IAAI,GACRH,eAAe,CAACI,iBAAiB,IACjC,IAAAC,+CAAuB,EAACL,eAAe,CAACM,iBAAiB,CAAC;IAE5D,IAAIC,MAAe;IACnB,IAAIC,sBAAsB,GAAGL,IAAI;IAEjC,IAAIF,YAAY,IAAI,IAAAQ,iBAAW,EAACX,KAAe,CAAC,EAAE;MAChDS,MAAM,GAAG,IAAA8B,kBAAQ,EAACvC,KAAK,EAAEC,cAAc,CAAC;MACxCS,sBAAsB,GAAG,IAAAG,sCAA4B,EAACb,KAAK,CAAC;IAC9D,CAAC,MAAM;MACLS,MAAM,GAAGJ,IAAI,GACTL,KAAK,GACL,CAAC,IAAAc,uBAAc,EAACb,cAAc,EAAE,MAAM,CAAC,GACnCC,eAAe,CAACa,QAAQ,GACtBC,iBAAS,GACTC,0BAAkB,GACpBf,eAAe,CAACa,QAAQ,GACxBG,QAAQ,GACRC,cAAM,EAAEnB,KAAK,EAAEC,cAAc,CAAC;IACxC;IAEA,IAAI,CAACS,sBAAsB,EAAE;MAC3B,IAAAU,8BAAc,EAACX,MAAM,CAAC;IACxB;IAEA,OAAOA,MAAM;EACf;EAEA,IACE,CAAC,IAAAY,iBAAQ,EAACrB,KAAK,CAAC,IAChB,IAAAsB,+BAAe,EAACtB,KAAK,CAAC,IACtB,OAAOA,KAAK,KAAK,UAAU,EAC3B;IACA,OAAOA,KAAK;EACd;EAEA,IAAIuB,KAAK,CAACC,OAAO,CAACxB,KAAK,CAAC,EAAE;IACxB,MAAMyB,WAAW,GAAGC,qBAAqB,CAACxB,eAAe,EAAE,IAAI,CAAC;IAChE,OAAOF,KAAK,CAAC6B,GAAG,CAAEC,CAAC,IAAKQ,gBAAgB,CAACR,CAAC,EAAE7B,cAAc,EAAEwB,WAAW,CAAC,CAAC;EAC3E;EAEA,OAAOM,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACjC,KAAK,CAAC,CAClB6B,GAAG,CAAC,CAAC,CAACK,CAAC,EAAEJ,CAAC,CAAC,KAAK,CACfQ,gBAAgB,CAACJ,CAAC,EAAEjC,cAAc,CAAC,EACnCqC,gBAAgB,CACdR,CAAC,EACD7B,cAAc,EACdyB,qBAAqB,CAACxB,eAAe,EAAE,KAAK,EAAEgC,CAAC,CACjD,CAAC,CACF,CAAC,CACDC,MAAM,CACLjC,eAAe,CAACkC,aAAa,GACzB,EAAE,GACFL,MAAM,CAACM,qBAAqB,CAACrC,KAAK,CAAC,CAAC6B,GAAG,CAAEK,CAAC,IAAK,CAC7CA,CAAC,EACAlC,KAAK,CAAsCkC,CAAC,CAAC,CAC/C,CACP,CACJ,CAAC;AACH;AAEA,SAASR,qBAAqBA,CAC5BxB,eAA+B,EAC/BsB,OAAgB,EAChBgB,GAAY,EACI;EAChB,OAAOtC,eAAe,CAACI,iBAAiB,GACpC;IACE,GAAGJ,eAAe;IAClBM,iBAAiB,EAAE,IAAAiC,8CAAsB,EACvCvC,eAAe,CAACM,iBAAiB,EACjCgB,OAAO,EACPgB,GACF;EACF,CAAC,GACDtC,eAAe;AACrB;AAEA,SAASgB,QAAQA,CAAIlB,KAAQ,EAAK;EAChC,OAAOA,KAAK;AACd"}
@@ -6,7 +6,7 @@ import { setupTemplateProxy } from "./setupTemplateProxy.js";
6
6
  import { childrenToSlots } from "../Renderer.js";
7
7
  export function setupUseBrickInTemplate(props, hostContext) {
8
8
  function walk(props) {
9
- if (!isObject(props)) {
9
+ if (!isObject(props) || typeof props === "function") {
10
10
  return props;
11
11
  }
12
12
  if (Array.isArray(props)) {
@@ -1 +1 @@
1
- {"version":3,"file":"setupUseBrickInTemplate.js","names":["isObject","setupTemplateProxy","childrenToSlots","setupUseBrickInTemplate","props","hostContext","walk","Array","isArray","map","Object","fromEntries","entries","_ref","key","value","setup","concat","getOwnPropertySymbols","k","item","properties","slots","originalSlots","children","restConf","_objectWithoutProperties","_excluded","transpiledSlots","_ref2","_slotConf$bricks","slotName","slotConf","type","bricks","_objectSpread","ref"],"sources":["../../../../src/internal/CustomTemplates/setupUseBrickInTemplate.ts"],"sourcesContent":["import type { UseBrickSlotsConf, UseSingleBrickConf } from \"@next-core/types\";\nimport { isObject } from \"@next-core/utils/general\";\nimport type { TemplateHostContext } from \"../interfaces.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\n\nexport function setupUseBrickInTemplate<T>(\n props: T,\n hostContext: TemplateHostContext\n): T {\n function walk<P>(props: P): P {\n if (!isObject(props)) {\n return props;\n }\n\n if (Array.isArray(props)) {\n return props.map(walk) as P;\n }\n\n return Object.fromEntries(\n Object.entries(props)\n .map(([key, value]) =>\n isObject(value) && key === \"useBrick\"\n ? Array.isArray(value)\n ? [key, value.map(setup)]\n : [key, setup(value as UseSingleBrickConf)]\n : [key, walk(value)]\n )\n .concat(\n Object.getOwnPropertySymbols(props).map((k) => [\n k,\n (props as Record<string | symbol, unknown>)[k],\n ])\n )\n ) as P;\n }\n\n function setup(item: UseSingleBrickConf): UseSingleBrickConf {\n const { properties, slots: originalSlots, children, ...restConf } = item;\n\n const transpiledSlots = childrenToSlots(children, originalSlots) as\n | UseBrickSlotsConf\n | undefined;\n\n const slots = Object.fromEntries(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).map(setup),\n },\n ])\n ) as UseBrickSlotsConf;\n\n return {\n ...restConf,\n properties: walk(properties),\n slots,\n ...setupTemplateProxy(hostContext, restConf.ref, slots),\n };\n }\n\n return walk(props);\n}\n"],"mappings":";;;AACA,SAASA,QAAQ,QAAQ,0BAA0B;AAEnD,SAASC,kBAAkB,QAAQ,yBAAyB;AAC5D,SAASC,eAAe,QAAQ,gBAAgB;AAEhD,OAAO,SAASC,uBAAuBA,CACrCC,KAAQ,EACRC,WAAgC,EAC7B;EACH,SAASC,IAAIA,CAAIF,KAAQ,EAAK;IAC5B,IAAI,CAACJ,QAAQ,CAACI,KAAK,CAAC,EAAE;MACpB,OAAOA,KAAK;IACd;IAEA,IAAIG,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,EAAE;MACxB,OAAOA,KAAK,CAACK,GAAG,CAACH,IAAI,CAAC;IACxB;IAEA,OAAOI,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACR,KAAK,CAAC,CAClBK,GAAG,CAACI,IAAA;MAAA,IAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,GAAAF,IAAA;MAAA,OAChBb,QAAQ,CAACe,KAAK,CAAC,IAAID,GAAG,KAAK,UAAU,GACjCP,KAAK,CAACC,OAAO,CAACO,KAAK,CAAC,GAClB,CAACD,GAAG,EAAEC,KAAK,CAACN,GAAG,CAACO,KAAK,CAAC,CAAC,GACvB,CAACF,GAAG,EAAEE,KAAK,CAACD,KAA2B,CAAC,CAAC,GAC3C,CAACD,GAAG,EAAER,IAAI,CAACS,KAAK,CAAC,CAAC;IAAA,CACxB,CAAC,CACAE,MAAM,CACLP,MAAM,CAACQ,qBAAqB,CAACd,KAAK,CAAC,CAACK,GAAG,CAAEU,CAAC,IAAK,CAC7CA,CAAC,EACAf,KAAK,CAAsCe,CAAC,CAAC,CAC/C,CACH,CACJ,CAAC;EACH;EAEA,SAASH,KAAKA,CAACI,IAAwB,EAAsB;IAC3D,IAAM;QAAEC,UAAU;QAAEC,KAAK,EAAEC,aAAa;QAAEC;MAAsB,CAAC,GAAGJ,IAAI;MAAjBK,QAAQ,GAAAC,wBAAA,CAAKN,IAAI,EAAAO,SAAA;IAExE,IAAMC,eAAe,GAAG1B,eAAe,CAACsB,QAAQ,EAAED,aAAa,CAElD;IAEb,IAAMD,KAAK,GAAGZ,MAAM,CAACC,WAAW,CAC9BD,MAAM,CAACE,OAAO,CAACgB,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAI,CAAC,CAAC,CAAC,CAACnB,GAAG,CAACoB,KAAA;MAAA,IAAAC,gBAAA;MAAA,IAAC,CAACC,QAAQ,EAAEC,QAAQ,CAAC,GAAAH,KAAA;MAAA,OAAK,CAClEE,QAAQ,EACR;QACEE,IAAI,EAAE,QAAQ;QACdC,MAAM,EAAE,EAAAJ,gBAAA,GAACE,QAAQ,CAACE,MAAM,cAAAJ,gBAAA,cAAAA,gBAAA,GAAI,EAAE,EAAErB,GAAG,CAACO,KAAK;MAC3C,CAAC,CACF;IAAA,EACH,CAAsB;IAEtB,OAAAmB,aAAA,CAAAA,aAAA,KACKV,QAAQ;MACXJ,UAAU,EAAEf,IAAI,CAACe,UAAU,CAAC;MAC5BC;IAAK,GACFrB,kBAAkB,CAACI,WAAW,EAAEoB,QAAQ,CAACW,GAAG,EAAEd,KAAK,CAAC;EAE3D;EAEA,OAAOhB,IAAI,CAACF,KAAK,CAAC;AACpB"}
1
+ {"version":3,"file":"setupUseBrickInTemplate.js","names":["isObject","setupTemplateProxy","childrenToSlots","setupUseBrickInTemplate","props","hostContext","walk","Array","isArray","map","Object","fromEntries","entries","_ref","key","value","setup","concat","getOwnPropertySymbols","k","item","properties","slots","originalSlots","children","restConf","_objectWithoutProperties","_excluded","transpiledSlots","_ref2","_slotConf$bricks","slotName","slotConf","type","bricks","_objectSpread","ref"],"sources":["../../../../src/internal/CustomTemplates/setupUseBrickInTemplate.ts"],"sourcesContent":["import type { UseBrickSlotsConf, UseSingleBrickConf } from \"@next-core/types\";\nimport { isObject } from \"@next-core/utils/general\";\nimport type { TemplateHostContext } from \"../interfaces.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\n\nexport function setupUseBrickInTemplate<T>(\n props: T,\n hostContext: TemplateHostContext\n): T {\n function walk<P>(props: P): P {\n if (!isObject(props) || typeof props === \"function\") {\n return props;\n }\n\n if (Array.isArray(props)) {\n return props.map(walk) as P;\n }\n\n return Object.fromEntries(\n Object.entries(props)\n .map(([key, value]) =>\n isObject(value) && key === \"useBrick\"\n ? Array.isArray(value)\n ? [key, value.map(setup)]\n : [key, setup(value as UseSingleBrickConf)]\n : [key, walk(value)]\n )\n .concat(\n Object.getOwnPropertySymbols(props).map((k) => [\n k,\n (props as Record<string | symbol, unknown>)[k],\n ])\n )\n ) as P;\n }\n\n function setup(item: UseSingleBrickConf): UseSingleBrickConf {\n const { properties, slots: originalSlots, children, ...restConf } = item;\n\n const transpiledSlots = childrenToSlots(children, originalSlots) as\n | UseBrickSlotsConf\n | undefined;\n\n const slots = Object.fromEntries(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).map(setup),\n },\n ])\n ) as UseBrickSlotsConf;\n\n return {\n ...restConf,\n properties: walk(properties),\n slots,\n ...setupTemplateProxy(hostContext, restConf.ref, slots),\n };\n }\n\n return walk(props);\n}\n"],"mappings":";;;AACA,SAASA,QAAQ,QAAQ,0BAA0B;AAEnD,SAASC,kBAAkB,QAAQ,yBAAyB;AAC5D,SAASC,eAAe,QAAQ,gBAAgB;AAEhD,OAAO,SAASC,uBAAuBA,CACrCC,KAAQ,EACRC,WAAgC,EAC7B;EACH,SAASC,IAAIA,CAAIF,KAAQ,EAAK;IAC5B,IAAI,CAACJ,QAAQ,CAACI,KAAK,CAAC,IAAI,OAAOA,KAAK,KAAK,UAAU,EAAE;MACnD,OAAOA,KAAK;IACd;IAEA,IAAIG,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,EAAE;MACxB,OAAOA,KAAK,CAACK,GAAG,CAACH,IAAI,CAAC;IACxB;IAEA,OAAOI,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACR,KAAK,CAAC,CAClBK,GAAG,CAACI,IAAA;MAAA,IAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,GAAAF,IAAA;MAAA,OAChBb,QAAQ,CAACe,KAAK,CAAC,IAAID,GAAG,KAAK,UAAU,GACjCP,KAAK,CAACC,OAAO,CAACO,KAAK,CAAC,GAClB,CAACD,GAAG,EAAEC,KAAK,CAACN,GAAG,CAACO,KAAK,CAAC,CAAC,GACvB,CAACF,GAAG,EAAEE,KAAK,CAACD,KAA2B,CAAC,CAAC,GAC3C,CAACD,GAAG,EAAER,IAAI,CAACS,KAAK,CAAC,CAAC;IAAA,CACxB,CAAC,CACAE,MAAM,CACLP,MAAM,CAACQ,qBAAqB,CAACd,KAAK,CAAC,CAACK,GAAG,CAAEU,CAAC,IAAK,CAC7CA,CAAC,EACAf,KAAK,CAAsCe,CAAC,CAAC,CAC/C,CACH,CACJ,CAAC;EACH;EAEA,SAASH,KAAKA,CAACI,IAAwB,EAAsB;IAC3D,IAAM;QAAEC,UAAU;QAAEC,KAAK,EAAEC,aAAa;QAAEC;MAAsB,CAAC,GAAGJ,IAAI;MAAjBK,QAAQ,GAAAC,wBAAA,CAAKN,IAAI,EAAAO,SAAA;IAExE,IAAMC,eAAe,GAAG1B,eAAe,CAACsB,QAAQ,EAAED,aAAa,CAElD;IAEb,IAAMD,KAAK,GAAGZ,MAAM,CAACC,WAAW,CAC9BD,MAAM,CAACE,OAAO,CAACgB,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAI,CAAC,CAAC,CAAC,CAACnB,GAAG,CAACoB,KAAA;MAAA,IAAAC,gBAAA;MAAA,IAAC,CAACC,QAAQ,EAAEC,QAAQ,CAAC,GAAAH,KAAA;MAAA,OAAK,CAClEE,QAAQ,EACR;QACEE,IAAI,EAAE,QAAQ;QACdC,MAAM,EAAE,EAAAJ,gBAAA,GAACE,QAAQ,CAACE,MAAM,cAAAJ,gBAAA,cAAAA,gBAAA,GAAI,EAAE,EAAErB,GAAG,CAACO,KAAK;MAC3C,CAAC,CACF;IAAA,EACH,CAAsB;IAEtB,OAAAmB,aAAA,CAAAA,aAAA,KACKV,QAAQ;MACXJ,UAAU,EAAEf,IAAI,CAACe,UAAU,CAAC;MAC5BC;IAAK,GACFrB,kBAAkB,CAACI,WAAW,EAAEoB,QAAQ,CAACW,GAAG,EAAEd,KAAK,CAAC;EAE3D;EAEA,OAAOhB,IAAI,CAACF,KAAK,CAAC;AACpB"}
@@ -32,7 +32,7 @@ function _asyncComputeRealValue() {
32
32
  }
33
33
  return result;
34
34
  }
35
- if (!isObject(value) || hasBeenComputed(value)) {
35
+ if (!isObject(value) || hasBeenComputed(value) || typeof value === "function") {
36
36
  return value;
37
37
  }
38
38
  if (Array.isArray(value)) {
@@ -66,7 +66,7 @@ export function computeRealValue(value, runtimeContext) {
66
66
  }
67
67
  return result;
68
68
  }
69
- if (!isObject(value) || hasBeenComputed(value)) {
69
+ if (!isObject(value) || hasBeenComputed(value) || typeof value === "function") {
70
70
  return value;
71
71
  }
72
72
  if (Array.isArray(value)) {
@@ -1 +1 @@
1
- {"version":3,"file":"computeRealValue.js","names":["isEvaluable","hasOwnProperty","isObject","transformAndInject","transform","inject","asyncEvaluate","isPreEvaluated","evaluate","shouldDismissMarkingComputed","getNextStateOfUseBrick","isLazyContentInUseBrick","hasBeenComputed","markAsComputed","asyncComputeRealValue","_x","_x2","_asyncComputeRealValue","apply","arguments","_asyncToGenerator","value","runtimeContext","internalOptions","length","undefined","preEvaluated","lazy","$$lazyForUseBrick","$$stateOfUseBrick","result","dismissMarkingComputed","noInject","identity","Array","isArray","nextOptions","getNextComputeOptions","Promise","all","map","v","Object","fromEntries","entries","_ref2","k","concat","ignoreSymbols","getOwnPropertySymbols","computeRealValue","_ref","key","_objectSpread"],"sources":["../../../../src/internal/compute/computeRealValue.ts"],"sourcesContent":["import { isEvaluable } from \"@next-core/cook\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { transformAndInject, transform, inject } from \"@next-core/inject\";\nimport {\n asyncEvaluate,\n isPreEvaluated,\n evaluate,\n shouldDismissMarkingComputed,\n} from \"./evaluate.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport {\n StateOfUseBrick,\n getNextStateOfUseBrick,\n isLazyContentInUseBrick,\n} from \"./getNextStateOfUseBrick.js\";\nimport { hasBeenComputed, markAsComputed } from \"./markAsComputed.js\";\n\nexport interface ComputeOptions {\n $$lazyForUseBrick?: boolean;\n $$stateOfUseBrick?: StateOfUseBrick;\n ignoreSymbols?: boolean;\n noInject?: boolean;\n}\n\nexport async function asyncComputeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n internalOptions: ComputeOptions = {}\n): Promise<unknown> {\n const preEvaluated = isPreEvaluated(value);\n\n if (preEvaluated || typeof value === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,\n // are kept and to be evaluated later.\n const lazy =\n internalOptions.$$lazyForUseBrick &&\n isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);\n\n let result: unknown;\n let dismissMarkingComputed = lazy;\n\n if (preEvaluated || isEvaluable(value as string)) {\n result = await asyncEvaluate(value, runtimeContext, { lazy });\n dismissMarkingComputed = shouldDismissMarkingComputed(value);\n } else {\n result = lazy\n ? value\n : (hasOwnProperty(runtimeContext, \"data\")\n ? internalOptions.noInject\n ? transform\n : transformAndInject\n : internalOptions.noInject\n ? identity\n : inject)(value, runtimeContext);\n }\n\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n\n return result;\n }\n\n if (!isObject(value) || hasBeenComputed(value)) {\n return value;\n }\n\n if (Array.isArray(value)) {\n const nextOptions = getNextComputeOptions(internalOptions, true);\n return Promise.all(\n value.map((v) => asyncComputeRealValue(v, runtimeContext, nextOptions))\n );\n }\n\n return Object.fromEntries(\n (\n await Promise.all(\n Object.entries(value).map(([k, v]) =>\n Promise.all([\n asyncComputeRealValue(k, runtimeContext),\n asyncComputeRealValue(\n v,\n runtimeContext,\n getNextComputeOptions(internalOptions, false, k)\n ),\n ])\n )\n )\n ).concat(\n internalOptions.ignoreSymbols\n ? []\n : Object.getOwnPropertySymbols(value).map((k) => [\n k,\n (value as Record<string | symbol, unknown>)[k],\n ])\n )\n );\n}\n\nexport function computeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n internalOptions: ComputeOptions = {}\n): unknown {\n const preEvaluated = isPreEvaluated(value);\n\n if (preEvaluated || typeof value === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,\n // are kept and to be evaluated later.\n const lazy =\n internalOptions.$$lazyForUseBrick &&\n isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);\n\n let result: unknown;\n let dismissMarkingComputed = lazy;\n\n if (preEvaluated || isEvaluable(value as string)) {\n result = evaluate(value, runtimeContext);\n dismissMarkingComputed = shouldDismissMarkingComputed(value);\n } else {\n result = lazy\n ? value\n : (hasOwnProperty(runtimeContext, \"data\")\n ? internalOptions.noInject\n ? transform\n : transformAndInject\n : internalOptions.noInject\n ? identity\n : inject)(value, runtimeContext);\n }\n\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n\n return result;\n }\n\n if (!isObject(value) || hasBeenComputed(value)) {\n return value;\n }\n\n if (Array.isArray(value)) {\n const nextOptions = getNextComputeOptions(internalOptions, true);\n return value.map((v) => computeRealValue(v, runtimeContext, nextOptions));\n }\n\n return Object.fromEntries(\n Object.entries(value)\n .map(([k, v]) => [\n computeRealValue(k, runtimeContext),\n computeRealValue(\n v,\n runtimeContext,\n getNextComputeOptions(internalOptions, false, k)\n ),\n ])\n .concat(\n internalOptions.ignoreSymbols\n ? []\n : Object.getOwnPropertySymbols(value).map((k) => [\n k,\n (value as Record<string | symbol, unknown>)[k],\n ])\n )\n );\n}\n\nfunction getNextComputeOptions(\n internalOptions: ComputeOptions,\n isArray: boolean,\n key?: string\n): ComputeOptions {\n return internalOptions.$$lazyForUseBrick\n ? {\n ...internalOptions,\n $$stateOfUseBrick: getNextStateOfUseBrick(\n internalOptions.$$stateOfUseBrick,\n isArray,\n key\n ),\n }\n : internalOptions;\n}\n\nfunction identity<T>(value: T): T {\n return value;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"computeRealValue.js","names":["isEvaluable","hasOwnProperty","isObject","transformAndInject","transform","inject","asyncEvaluate","isPreEvaluated","evaluate","shouldDismissMarkingComputed","getNextStateOfUseBrick","isLazyContentInUseBrick","hasBeenComputed","markAsComputed","asyncComputeRealValue","_x","_x2","_asyncComputeRealValue","apply","arguments","_asyncToGenerator","value","runtimeContext","internalOptions","length","undefined","preEvaluated","lazy","$$lazyForUseBrick","$$stateOfUseBrick","result","dismissMarkingComputed","noInject","identity","Array","isArray","nextOptions","getNextComputeOptions","Promise","all","map","v","Object","fromEntries","entries","_ref2","k","concat","ignoreSymbols","getOwnPropertySymbols","computeRealValue","_ref","key","_objectSpread"],"sources":["../../../../src/internal/compute/computeRealValue.ts"],"sourcesContent":["import { isEvaluable } from \"@next-core/cook\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { transformAndInject, transform, inject } from \"@next-core/inject\";\nimport {\n asyncEvaluate,\n isPreEvaluated,\n evaluate,\n shouldDismissMarkingComputed,\n} from \"./evaluate.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport {\n StateOfUseBrick,\n getNextStateOfUseBrick,\n isLazyContentInUseBrick,\n} from \"./getNextStateOfUseBrick.js\";\nimport { hasBeenComputed, markAsComputed } from \"./markAsComputed.js\";\n\nexport interface ComputeOptions {\n $$lazyForUseBrick?: boolean;\n $$stateOfUseBrick?: StateOfUseBrick;\n ignoreSymbols?: boolean;\n noInject?: boolean;\n}\n\nexport async function asyncComputeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n internalOptions: ComputeOptions = {}\n): Promise<unknown> {\n const preEvaluated = isPreEvaluated(value);\n\n if (preEvaluated || typeof value === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,\n // are kept and to be evaluated later.\n const lazy =\n internalOptions.$$lazyForUseBrick &&\n isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);\n\n let result: unknown;\n let dismissMarkingComputed = lazy;\n\n if (preEvaluated || isEvaluable(value as string)) {\n result = await asyncEvaluate(value, runtimeContext, { lazy });\n dismissMarkingComputed = shouldDismissMarkingComputed(value);\n } else {\n result = lazy\n ? value\n : (hasOwnProperty(runtimeContext, \"data\")\n ? internalOptions.noInject\n ? transform\n : transformAndInject\n : internalOptions.noInject\n ? identity\n : inject)(value, runtimeContext);\n }\n\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n\n return result;\n }\n\n if (\n !isObject(value) ||\n hasBeenComputed(value) ||\n typeof value === \"function\"\n ) {\n return value;\n }\n\n if (Array.isArray(value)) {\n const nextOptions = getNextComputeOptions(internalOptions, true);\n return Promise.all(\n value.map((v) => asyncComputeRealValue(v, runtimeContext, nextOptions))\n );\n }\n\n return Object.fromEntries(\n (\n await Promise.all(\n Object.entries(value).map(([k, v]) =>\n Promise.all([\n asyncComputeRealValue(k, runtimeContext),\n asyncComputeRealValue(\n v,\n runtimeContext,\n getNextComputeOptions(internalOptions, false, k)\n ),\n ])\n )\n )\n ).concat(\n internalOptions.ignoreSymbols\n ? []\n : Object.getOwnPropertySymbols(value).map((k) => [\n k,\n (value as Record<string | symbol, unknown>)[k],\n ])\n )\n );\n}\n\nexport function computeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n internalOptions: ComputeOptions = {}\n): unknown {\n const preEvaluated = isPreEvaluated(value);\n\n if (preEvaluated || typeof value === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,\n // are kept and to be evaluated later.\n const lazy =\n internalOptions.$$lazyForUseBrick &&\n isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);\n\n let result: unknown;\n let dismissMarkingComputed = lazy;\n\n if (preEvaluated || isEvaluable(value as string)) {\n result = evaluate(value, runtimeContext);\n dismissMarkingComputed = shouldDismissMarkingComputed(value);\n } else {\n result = lazy\n ? value\n : (hasOwnProperty(runtimeContext, \"data\")\n ? internalOptions.noInject\n ? transform\n : transformAndInject\n : internalOptions.noInject\n ? identity\n : inject)(value, runtimeContext);\n }\n\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n\n return result;\n }\n\n if (\n !isObject(value) ||\n hasBeenComputed(value) ||\n typeof value === \"function\"\n ) {\n return value;\n }\n\n if (Array.isArray(value)) {\n const nextOptions = getNextComputeOptions(internalOptions, true);\n return value.map((v) => computeRealValue(v, runtimeContext, nextOptions));\n }\n\n return Object.fromEntries(\n Object.entries(value)\n .map(([k, v]) => [\n computeRealValue(k, runtimeContext),\n computeRealValue(\n v,\n runtimeContext,\n getNextComputeOptions(internalOptions, false, k)\n ),\n ])\n .concat(\n internalOptions.ignoreSymbols\n ? []\n : Object.getOwnPropertySymbols(value).map((k) => [\n k,\n (value as Record<string | symbol, unknown>)[k],\n ])\n )\n );\n}\n\nfunction getNextComputeOptions(\n internalOptions: ComputeOptions,\n isArray: boolean,\n key?: string\n): ComputeOptions {\n return internalOptions.$$lazyForUseBrick\n ? {\n ...internalOptions,\n $$stateOfUseBrick: getNextStateOfUseBrick(\n internalOptions.$$stateOfUseBrick,\n isArray,\n key\n ),\n }\n : internalOptions;\n}\n\nfunction identity<T>(value: T): T {\n return value;\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/runtime",
3
- "version": "1.20.0",
3
+ "version": "1.20.1",
4
4
  "homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/runtime",
5
5
  "license": "GPL-3.0",
6
6
  "repository": {
@@ -65,5 +65,5 @@
65
65
  "@next-core/build-next-libs": "^1.0.6",
66
66
  "@next-core/test-next": "^1.0.8"
67
67
  },
68
- "gitHead": "bc4892a4ed95e4dce76f8e5152ed36dffa032029"
68
+ "gitHead": "4135daeeeab39d087c1eba45db33c2f6e9c5bba6"
69
69
  }