import _ from 'lodash'; import type { ArrayDifference, Difference, ObjectDifference } from '../json-diff.types'; import { useCopy } from '@/composable/copy'; export function DiffRootViewer({ diff }: { diff: Difference }) { return (
); } function DiffViewer({ diff, showKeys = true }: { diff: Difference; showKeys?: boolean }) { const { type, status } = diff; if (status === 'updated') { return ComparisonViewer({ diff, showKeys }); } if (type === 'array') { return ChildrenViewer({ diff, showKeys, showChildrenKeys: false, openTag: '[', closeTag: ']' }); } if (type === 'object') { return ChildrenViewer({ diff, showKeys, openTag: '{', closeTag: '}' }); } return LineDiffViewer({ diff, showKeys }); } function LineDiffViewer({ diff, showKeys }: { diff: Difference; showKeys?: boolean }) { const { value, key, status, oldValue } = diff; const valueToDisplay = status === 'removed' ? oldValue : value; return (
  • {showKeys && ( <> {key} {': '} )} {Value({ value: valueToDisplay, status })} ,
  • ); } function ComparisonViewer({ diff, showKeys }: { diff: Difference; showKeys?: boolean }) { const { value, key, oldValue } = diff; return (
  • {showKeys && ( <> {key} {': '} )} {Value({ value: oldValue, status: 'removed' })} {Value({ value, status: 'added' })},
  • ); } function ChildrenViewer({ diff, openTag, closeTag, showKeys, showChildrenKeys = true, }: { diff: ArrayDifference | ObjectDifference showKeys: boolean showChildrenKeys?: boolean openTag: string closeTag: string }) { const { children, key, status, type } = diff; return (
  • {showKeys && ( <> {key} {': '} )} {openTag} {children.length > 0 && } {`${closeTag},`}
  • ); } function formatValue(value: unknown) { if (_.isNull(value)) { return 'null'; } return JSON.stringify(value); } function Value({ value, status }: { value: unknown; status: string }) { const formatedValue = formatValue(value); const { copy } = useCopy({ source: formatedValue }); return ( copy()}> {formatedValue} ); } value='db-migrate'>db-migrate Unnamed repository; edit this file 'description' to name the repository.
    aboutsummaryrefslogtreecommitdiff
    path: root/examples/portfolio/public/assets/backgrounds (unfollow)
    AgeCommit message (Expand)AuthorFilesLines
    2024-11-13[ci] release (beta) (#12405)astro@5.0.0-beta.8Gravatar Houston (Bot) 29-54/+125
    2024-11-13[ci] release (#12422)astro@4.16.12Gravatar Houston (Bot) 28-54/+55
    2024-11-13fix(routing): middleware in dev (#12420)Gravatar Emanuele Stoppa 6-9/+52
    2024-11-12[ci] release (#12403)astro@4.16.11Gravatar Houston (Bot) 30-73/+68
    2024-11-11fix(routing): emit error for forbidden rewrite (#12339)Gravatar Emanuele Stoppa 7-0/+88
    2024-11-11[ci] formatGravatar Sarah Rainsberger 1-38/+38
    2024-11-11update markdown config docs (#12382)Gravatar Sarah Rainsberger 1-4/+45
    2024-11-08Actions middleware (#12373)Gravatar Ben Holmes 26-311/+483
    2024-11-08Fix incorrect status code in dev server for action errors (#12401)Gravatar Ben Holmes 2-13/+21
    2024-11-08fix(actions): better runtime check for invalid usages (#12402)Gravatar Emanuele Stoppa 8-5/+47
    2024-11-08fix: error overlay message escape (#12305)Gravatar Florian Lefebvre 3-0/+28
    2024-11-06[ci] release (beta) (#12370)create-astro@4.11.0-beta.0astro@5.0.0-beta.7@astrojs/svelte@6.0.0-beta.2Gravatar Houston (Bot) 31-55/+84
    2024-11-06Add svelte changesetGravatar bluwy 5-39/+51
    2024-11-06[ci] release (#12369)astro@4.16.10@astrojs/svelte@5.7.3Gravatar Houston (Bot) 34-81/+74
    2024-11-06Update to Vite 6.0.0-beta.6 (#12323)Gravatar Bjorn Lu 15-100/+123
    2024-11-06[ci] formatGravatar Bjorn Lu 2-18/+17
    2024-11-06Add support for Svelte 5 @render syntax (#12390)Gravatar Bjorn Lu 3-0/+30
    2024-11-06fix(deps): update all non-major dependencies (#12366)Gravatar renovate[bot] 29-533/+552