@liiift-studio/sanity-utilities
v1.4.0
Published
Centralized Sanity utilities package for Liiift Studio foundry projects
Readme
@liiift-studio/sanity-utilities
Centralized Sanity utilities package for Liiift Studio foundry projects.
Overview
This package provides a collection of powerful utilities for Sanity Studio that help manage and manipulate content across foundry projects. All utilities are designed with safety features including danger mode locks and confirmation dialogs for destructive operations.
Installation
npm install @liiift-studio/sanity-utilitiesLocal Development
When developing the utilities package locally, you can use npm link to avoid publishing after every change. This creates a symlink so your Sanity project points directly to your local development folder.
Setup Once
# 1. In the foundry-utilities directory
cd /path/to/foundry-utilities
npm link
# 2. In your Sanity project directory
cd /path/to/your-project/sanity
npm link @liiift-studio/sanity-utilitiesNow any changes you make to the utilities package will be instantly available in your Sanity studio (Vite will hot-reload automatically).
When Done Developing
# Unlink and return to the published version
cd /path/to/your-project/sanity
npm unlink @liiift-studio/sanity-utilities
npm install @liiift-studio/sanity-utilities@latestDevelopment Workflow
- Make changes to utility components in
foundry-utilities/components/ - Save the file — Vite hot-reloads instantly
- Test in your linked Sanity studio
- When ready to release:
- Bump version:
npm version patch(orminor/major) - Publish:
npm publish --access public - Update consuming projects:
npm install @liiift-studio/sanity-utilities@latest
- Bump version:
Usage
Basic Usage
Import and use the utilities desk in your Sanity config:
import { UtilitiesDesk } from '@liiift-studio/sanity-utilities';
// In your sanity.config.js
export default defineConfig({
// ... other config
tools: [UtilitiesDesk()]
});Available Components
All utility components are exported individually if you need custom implementations:
import {
ConvertIdsToSlug,
ConvertToWeakReferences,
DangerModeWarning,
DeleteUnusedAssets,
DuplicateAndRename,
ExportData,
GetFontData,
SearchAddData,
SearchAndDelete,
UtilitiesDesk
} from '@liiift-studio/sanity-utilities';Utilities Included
1. Convert IDs to Slug
Converts font document IDs from auto-generated to slug-based IDs, updating all references across your content.
2. Convert to Weak References
Transforms strong document references into weak references across matching documents.
3. Delete Unused Assets
Scans for unreferenced image and file assets and allows bulk deletion with preview thumbnails.
4. Duplicate and Rename
Copies field values to new field names across all documents of a specific type.
5. Export Data
Exports documents to CSV or JSON formats with optional reference population.
6. Get Font Data
Analyzes uploaded font files using fontkit, displaying metadata and OpenType properties.
7. Search & Add Data
Bulk add or replace field data with multiple modes:
- Full Replace
- Find & Replace
- Prepend
- Append
- Transform (toLowerCase, toUpperCase, trim)
8. Search & Delete
Searches for and deletes documents matching specific criteria with confirmation dialogs.
Safety Features
- Danger Mode Locks: Destructive operations require unlocking danger mode
- Warning Modals: 48-hour suppression option for danger mode warnings
- Confirmation Dialogs: Double confirmation for bulk delete operations
- Preview Features: See what will be affected before taking action
Requirements
- Sanity Studio v3
- React 18+
- @sanity/ui v1 or v2
- @sanity/icons v2 or v3
License
UNLICENSED - Internal use only for Liiift Studio projects
Support
For issues or questions, please contact the Liiift Studio development team.
