contentstack-utils

API pública—ContentstackUtils, Option/Renderable, RTE/JSON, GQL, variantes, erros; sem cliente HTTP incluído.

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

Mais skills de contentstack

cms-assets
contentstack
Aconselhe desenvolvedores sobre organização, entrega e transformação de ativos no Contentstack. Aborde estrutura de pastas, transformações da Image Delivery API, publicação…
cms-branches-aliases
contentstack
Aconselhe desenvolvedores sobre o uso de branches do Contentstack para desenvolvimento isolado de conteúdo e aliases para implantações de conteúdo sem tempo de inatividade. Cubra estratégia de branches,…
cms-data-modeling-best-practices
contentstack
Orientar desenvolvedores a modelar conteúdo no Contentstack usando a estrutura reutilizável mais simples. A skill explica quando usar content types, references, global…
cms-live-preview-visual-builder-support-assistant
contentstack
Diagnostique e oriente implementações do Contentstack Live Preview e Visual Builder. Rastreie o contexto de preview, identifique o contrato quebrado e recomende a…
cms-releases
contentstack
Orientar desenvolvedores no uso de Contentstack Releases para implantação coordenada e atômica de conteúdo. Abordar criação de releases, gerenciamento de itens, implantação em estágios,…
cms-roles-permissions
contentstack
Aconselhe desenvolvedores sobre o design de funções, permissões, equipes e acesso por token no Contentstack. Explique funções integradas, funções personalizadas, mesclagem de permissões,…
cms-taxonomy
contentstack
Aconselhe desenvolvedores sobre o uso do Contentstack Taxonomy para classificação de conteúdo estruturada e hierárquica e filtragem no lado da entrega. Aborda taxonomy vs tags,…
cms-tokens-authentication
contentstack
Orientar desenvolvedores na escolha do método de autenticação e tipo de token adequados do Contentstack para casos de uso de frontend, backend, automação e aplicativos de terceiros.…