@pixi/react
Version:
Write PixiJS applications using React declarative style.
1 lines • 2.74 kB
Source Map (JSON)
{"version":3,"file":"createInstance.mjs","sources":["../../src/helpers/createInstance.ts"],"sourcesContent":["import { ReactToPixiEventPropNames } from '../constants/EventPropNames';\nimport { PixiReactIgnoredProps } from '../constants/PixiReactIgnoredProps';\nimport { type HostConfig } from '../typedefs/HostConfig';\nimport { applyProps } from './applyProps';\nimport { catalogue } from './catalogue';\nimport { convertStringToPascalCase } from './convertStringToPascalCase';\nimport { gentleCloneProps } from './gentleCloneProps';\nimport { log } from './log';\nimport { parseComponentType } from './parseComponentType';\nimport { prepareInstance } from './prepareInstance';\n\nexport function createInstance(\n type: HostConfig['type'],\n props: HostConfig['props'],\n root: HostConfig['containerInstance'],\n)\n{\n log('info', 'lifecycle::createInstance');\n\n const parsedType = parseComponentType(type);\n\n // Convert lowercase component name to PascalCase\n const name = convertStringToPascalCase(parsedType);\n\n if (!(name in catalogue))\n {\n throw new Error(`${name} is not part of the PIXI namespace! Did you forget to extend?`);\n }\n\n // Get the class from an imported Pixi.js namespace\n const PixiComponent = catalogue[name];\n\n const pixiProps = gentleCloneProps(props, PixiReactIgnoredProps);\n\n // Clone event props\n Object.entries(props).forEach(([key, value]) =>\n {\n if (key in ReactToPixiEventPropNames)\n {\n const pixiEventName = ReactToPixiEventPropNames[key as keyof typeof ReactToPixiEventPropNames];\n\n pixiProps[pixiEventName] = value;\n }\n });\n\n const instance = prepareInstance(new PixiComponent(pixiProps), {\n root,\n type: parsedType,\n });\n\n // Set initial props\n applyProps(instance, props);\n\n return instance;\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAWgB,SAAA,cAAA,CACZ,IACA,EAAA,KAAA,EACA,IAEJ,EAAA;AACI,EAAA,GAAA,CAAI,QAAQ,2BAA2B,CAAA;AAEvC,EAAM,MAAA,UAAA,GAAa,mBAAmB,IAAI,CAAA;AAG1C,EAAM,MAAA,IAAA,GAAO,0BAA0B,UAAU,CAAA;AAEjD,EAAI,IAAA,EAAE,QAAQ,SACd,CAAA,EAAA;AACI,IAAA,MAAM,IAAI,KAAA,CAAM,CAAG,EAAA,IAAI,CAA+D,6DAAA,CAAA,CAAA;AAAA;AAI1F,EAAM,MAAA,aAAA,GAAgB,UAAU,IAAI,CAAA;AAEpC,EAAM,MAAA,SAAA,GAAY,gBAAiB,CAAA,KAAA,EAAO,qBAAqB,CAAA;AAG/D,EAAO,MAAA,CAAA,OAAA,CAAQ,KAAK,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAC,GAAA,EAAK,KAAK,CAC1C,KAAA;AACI,IAAA,IAAI,OAAO,yBACX,EAAA;AACI,MAAM,MAAA,aAAA,GAAgB,0BAA0B,GAA6C,CAAA;AAE7F,MAAA,SAAA,CAAU,aAAa,CAAI,GAAA,KAAA;AAAA;AAC/B,GACH,CAAA;AAED,EAAA,MAAM,QAAW,GAAA,eAAA,CAAgB,IAAI,aAAA,CAAc,SAAS,CAAG,EAAA;AAAA,IAC3D,IAAA;AAAA,IACA,IAAM,EAAA;AAAA,GACT,CAAA;AAGD,EAAA,UAAA,CAAW,UAAU,KAAK,CAAA;AAE1B,EAAO,OAAA,QAAA;AACX;;;;"}