contentstack-utils

作成者: contentstack

公開API—ContentstackUtils、Option/Renderable、RTE/JSON、GQL、バリアント、エラー;バンドルされたHTTPクライアントなし

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

contentstackのその他のスキル

cms-assets
contentstack
開発者がContentstackでアセットを整理、配信、変換する方法についてアドバイスします。フォルダ構造、Image Delivery API変換、公開について取り上げます…
cms-branches-aliases
contentstack
Contentstackのブランチを使用した分離されたコンテンツ開発と、エイリアスを使用したダウンタイムゼロのコンテンツデプロイについて開発者にアドバイスします。ブランチ戦略、…
cms-data-modeling-best-practices
contentstack
開発者がContentstackでコンテンツをモデリングする際、最もシンプルで再利用可能な構造を用いるよう導きます。このスキルでは、コンテンツタイプ、参照、グローバル…をいつ使用すべきかを説明します。
cms-live-preview-visual-builder-support-assistant
contentstack
Contentstack Live PreviewおよびVisual Builderの実装を診断し、ガイドします。プレビューコンテキストを追跡し、壊れたコントラクトを特定して、推奨…
cms-releases
contentstack
Contentstack Releasesを使用した、調整されたアトミックなコンテンツデプロイについて開発者にアドバイスします。リリース作成、アイテム管理、段階的デプロイをカバーします…
cms-roles-permissions
contentstack
Contentstackにおけるロール、権限、チーム、トークンアクセスの設計について開発者に助言します。組み込みロール、カスタムロール、権限のマージ、…について説明します。
cms-taxonomy
contentstack
開発者に対し、構造化された階層的なコンテンツ分類と配信側フィルタリングのためのContentstack Taxonomyの使用についてアドバイスします。タクソノミーとタグの比較、…
cms-tokens-authentication
contentstack
フロントエンド、バックエンド、自動化、およびサードパーティアプリのユースケースに適したContentstack認証方法とトークンタイプの選択について、開発者にアドバイスします。…