contentstack-utils

API Publik—ContentstackUtils, Option/Renderable, RTE/JSON, GQL, varian, kesalahan; tanpa klien HTTP bawaan.

npx skills add https://github.com/contentstack/contentstack-utils-swift --skill contentstack-utils

Contentstack Utils – SDK skill

When to use

  • Implementing or changing RTE/HTML rendering, JSON RTE parsing, or variant helpers.
  • Updating README.md / CHANGELOG.md / podspec for user-visible behavior.
  • Assessing semver impact of public / open changes.

Main entry (consumer API)

  • Consumers import ContentstackUtils and use ContentstackUtils: e.g. render(content:_:), render(contents:_:), jsonToHtml(node:_:), getVariantAliases, nested GQL.jsonToHtml(rte:_:).
  • Keep the static surface small and documented; breaking changes need semver and changelog notes.

Customization

  • Subclass or extend via Option (open class) conforming to Renderable: renderItem(embeddedObject:metadata:), renderMark(markType:text:), renderNode(nodeType:node:next:).
  • Do not remove or rename open hooks without a major version.

Data model

  • RTE JSON uses Node, JSONNode / JSONNodes, MarkType, StyleType, Metadata, embedded entry/asset types (EmbeddedObject, EmbeddedEntry, etc.).
  • Preserve Codable / decoding compatibility with Contentstack Delivery and GraphQL payloads.

Errors

  • Expose domain failures with nested types where appropriate (e.g. ContentstackUtils.VariantUtilityError.invalidArgument).
  • Use throws for recoverable failures; avoid force-unwraps on public paths.

HTML and documentation

  • Rendering uses Kanna/HTML internally; keep output predictable for documented inputs.
  • Document new node types or GQL JSON shapes in README.md / CHANGELOG.md.

No network layer

  • This package does not ship HTTP clients or tokens.
  • README examples showing Stack, fetch, or Apollo are integration sketches only—do not add hard dependencies on the main Contentstack iOS SDK or Apollo in Package.swift unless product explicitly requires it.

Legacy naming

  • Some names (e.g. embdeddedItems) are entrenched; changing them is a breaking API change—coordinate with maintainers.

Docs and versioning

  • Align ContentstackUtils.podspec and git tags with releases. Follow semver for public / open changes.

References

  • Contentstack
  • skills/swift-style/SKILL.md, skills/framework/SKILL.md

Lebih banyak skill dari contentstack

cms-assets
contentstack
Memberikan saran kepada pengembang tentang pengorganisasian, pengiriman, dan transformasi aset di Contentstack. Mencakup struktur folder, transformasi Image Delivery API, penerbitan…
cms-branches-aliases
contentstack
Memberi saran kepada pengembang tentang penggunaan cabang Contentstack untuk pengembangan konten terisolasi dan alias untuk deployment konten tanpa downtime. Mencakup strategi cabang,…
cms-data-modeling-best-practices
contentstack
Pandu pengembang untuk memodelkan konten di Contentstack menggunakan struktur yang paling sederhana dan dapat digunakan kembali. Skill ini menjelaskan kapan menggunakan tipe konten, referensi, global…
cms-live-preview-visual-builder-support-assistant
contentstack
Diagnosis dan panduan implementasi Contentstack Live Preview dan Visual Builder. Lacak konteks pratinjau, identifikasi kontrak yang rusak, dan rekomendasikan…
cms-releases
contentstack
Memberi saran kepada developer tentang penggunaan Contentstack Releases untuk deployment konten atomik yang terkoordinasi. Mencakup pembuatan release, manajemen item, deployment bertahap,…
cms-roles-permissions
contentstack
Memberi saran kepada pengembang tentang merancang peran, izin, tim, dan akses token di Contentstack. Menjelaskan peran bawaan, peran kustom, penggabungan izin,…
cms-taxonomy
contentstack
Memberi saran kepada pengembang tentang penggunaan Contentstack Taxonomy untuk klasifikasi konten hierarkis terstruktur dan filtering sisi pengiriman. Mencakup taksonomi vs tag,...
cms-tokens-authentication
contentstack
Memberikan saran kepada pengembang tentang cara memilih metode autentikasi Contentstack dan jenis token yang tepat untuk kasus penggunaan frontend, backend, otomasi, dan aplikasi pihak ketiga.