UNPKG

@alwatr/render-state

Version:

Clone deeply nested objects and arrays in JavaScript.

8 lines (7 loc) 2.24 kB
{ "version": 3, "sources": ["../src/main.ts"], "sourcesContent": ["import {createLogger} from '@alwatr/logger';\nimport {packageTracer} from '@alwatr/package-tracer';\n\n__dev_mode__: packageTracer.add(__package_name__, __package_version__);\n\nconst logger = /* #__PURE__ */ createLogger(__package_name__);\n\nexport const renderState = <R, T extends string>(\n state: T,\n renderRecord: Record<T | '_default', undefined | T | (() => R)>,\n thisArg: unknown = null,\n): R | undefined => {\n logger.logMethodArgs?.('renderState', {state, renderRecord});\n\n let render = renderRecord[state];\n\n if (typeof render === 'string') {\n render = renderRecord[render as T];\n }\n\n if (render === undefined) {\n if (renderRecord._default === undefined) {\n logger.error('renderState', 'invalid_render_state');\n return;\n }\n // else\n if (typeof renderRecord._default === 'string') {\n if (renderRecord[renderRecord._default] === undefined) {\n logger.error('renderState', 'invalid_default_render');\n return;\n }\n // else\n return renderState(renderRecord._default, renderRecord, thisArg);\n }\n // else\n render = renderRecord._default;\n }\n\n if (typeof render !== 'function') {\n logger.error('renderState', 'invalid_render_state');\n return;\n }\n\n try {\n return render.call(thisArg);\n }\n catch (err) {\n logger.error('renderState', 'render_error', err);\n return;\n }\n};\n"], "mappings": ";;;AAAA,SAAQ,oBAAmB;AAC3B,SAAQ,qBAAoB;AAE5B,aAAc,eAAc,IAAI,wBAAkB,OAAmB;AAErE,IAAM,SAAyB,6BAAa,sBAAgB;AAErD,IAAM,cAAc,CACzB,OACA,cACA,UAAmB,SACD;AAClB,SAAO,gBAAgB,eAAe,EAAC,OAAO,aAAY,CAAC;AAE3D,MAAI,SAAS,aAAa,KAAK;AAE/B,MAAI,OAAO,WAAW,UAAU;AAC9B,aAAS,aAAa,MAAW;AAAA,EACnC;AAEA,MAAI,WAAW,QAAW;AACxB,QAAI,aAAa,aAAa,QAAW;AACvC,aAAO,MAAM,eAAe,sBAAsB;AAClD;AAAA,IACF;AAEA,QAAI,OAAO,aAAa,aAAa,UAAU;AAC7C,UAAI,aAAa,aAAa,QAAQ,MAAM,QAAW;AACrD,eAAO,MAAM,eAAe,wBAAwB;AACpD;AAAA,MACF;AAEA,aAAO,YAAY,aAAa,UAAU,cAAc,OAAO;AAAA,IACjE;AAEA,aAAS,aAAa;AAAA,EACxB;AAEA,MAAI,OAAO,WAAW,YAAY;AAChC,WAAO,MAAM,eAAe,sBAAsB;AAClD;AAAA,EACF;AAEA,MAAI;AACF,WAAO,OAAO,KAAK,OAAO;AAAA,EAC5B,SACO,KAAK;AACV,WAAO,MAAM,eAAe,gBAAgB,GAAG;AAC/C;AAAA,EACF;AACF;", "names": [] }