Skip to content
Snippets Groups Projects
Select Git revision
  • 6bca55417623b0d0938bf141052f6b1256603e5a
  • master default protected
  • 1.31
  • 4.38.8
  • 4.38.7
  • 4.38.6
  • 4.38.5
  • 4.38.4
  • 4.38.3
  • 4.38.2
  • 4.38.1
  • 4.38.0
  • 4.37.2
  • 4.37.1
  • 4.37.0
  • 4.36.0
  • 4.35.0
  • 4.34.1
  • 4.34.0
  • 4.33.1
  • 4.33.0
  • 4.32.2
  • 4.32.1
23 results

buildmap.js

Blame
  • Volker Schukai's avatar
    Volker Schukai authored
    15d04f4d
    History
    buildmap.js 876 B
    /** Monster 1.15.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */
    "use strict";import{Monster,assignToNamespace}from"../namespace.js";import{isFunction}from"../types/is.js";import{validateString}from"../types/validate.js";import{Pathfinder}from"./pathfinder.js";function buildMap(t,a,i,r,n){validateString(a);const o=new Map;let e=new Pathfinder(t),s=e.getVia(a);return s instanceof Map&&s.forEach((t,a,e)=>{isFunction(n)&&!0!==n.call(e,t,a)||(a=build(t,r,a),t=build(t,i),o.set(a,t))}),o}function build(t,e,a){if(void 0===e)return a||t;validateString(e);const i=[...e.matchAll(/(?<placeholder>\${(?<path>[a-z.-_0-9]*)})/gm)];let r=new Pathfinder(t);return 0===i.length?r.getVia(e):(i.forEach(t=>{var a=t?.groups,t=a?.placeholder;void 0!==t&&(a=a?.path,a=r.getVia(a),e=e.replaceAll(t,a))}),e)}assignToNamespace("Monster.Data",buildMap);export{Monster,buildMap};