flowbite-react
Version:
Official React components built for Flowbite and Tailwind CSS
1 lines • 3.17 kB
Source Map (JSON)
{"version":3,"file":"compare-nodes.cjs","sources":["../../../src/cli/utils/compare-nodes.ts"],"sourcesContent":["/**\n * Compare two AST nodes ignoring location info and comments\n */\nexport function compareNodes(a: unknown, b: unknown): boolean {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n return a.every((item, i) => compareNodes(item, b[i]));\n }\n if (typeof a !== \"object\" || typeof b !== \"object\") {\n return a === b;\n }\n\n // Handle string literals specially - normalize quotes\n if (\n \"type\" in a &&\n \"type\" in b &&\n (a.type === \"StringLiteral\" || a.type === \"Literal\") &&\n (b.type === \"StringLiteral\" || b.type === \"Literal\") &&\n \"value\" in a &&\n \"value\" in b &&\n typeof a.value === \"string\" &&\n typeof b.value === \"string\"\n ) {\n return a.value === b.value;\n }\n\n // Skip location and comment-related properties\n const keysA = Object.keys(a).filter(\n (k) => ![\"start\", \"end\", \"loc\", \"range\", \"tokens\", \"comments\", \"leadingComments\", \"trailingComments\"].includes(k),\n );\n const keysB = Object.keys(b).filter(\n (k) => ![\"start\", \"end\", \"loc\", \"range\", \"tokens\", \"comments\", \"leadingComments\", \"trailingComments\"].includes(k),\n );\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n return keysA.every((key) => compareNodes(a[key as keyof typeof a], b[key as keyof typeof b]));\n}\n"],"names":[],"mappings":";;AACO,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE;AACnC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AACf,IAAI,OAAO,IAAI;AACf;AACA,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AAChB,IAAI,OAAO,KAAK;AAChB;AACA,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AACxB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE;AACpD,MAAM,OAAO,KAAK;AAClB;AACA,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD;AACA,EAAE,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACtD,IAAI,OAAO,CAAC,KAAK,CAAC;AAClB;AACA,EAAE,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE;AAChP,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;AAC9B;AACA,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;AACrC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,CAAC;AACpH,GAAG;AACH,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;AACrC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,CAAC;AACpH,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;AACrC,IAAI,OAAO,KAAK;AAChB;AACA,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D;;;;"}