@crumbcms/sdk
v0.1.1
Published
Crumb CMS SDK for browser, React, and Next.js apps
Readme
@crumbcms/sdk
Crumb CMS SDK for browser apps, React apps, and Next.js apps.
Install
vp add @crumbcms/sdkConfig
Generate a root crumb.config.ts file:
crumb init --project proj_123That writes a project-first config with env-backed defaults. A typical file looks like this:
import { defineCrumbConfig } from "@crumbcms/sdk";
export default defineCrumbConfig({
projectId: process.env.CRUMB_PROJECT_ID ?? "proj_123",
apiBaseUrl: process.env.CRUMB_API_BASE_URL ?? "https://crumbcms.com/api",
});If you want to narrow or alias what gets generated, add optional key-based selections:
import { defineCrumbConfig } from "@crumbcms/sdk";
export default defineCrumbConfig({
projectId: process.env.CRUMB_PROJECT_ID ?? "proj_123",
apiBaseUrl: process.env.CRUMB_API_BASE_URL ?? "https://crumbcms.com/api",
resources: {
homepage: { kind: "single", key: "homepage" },
writing: { kind: "collection", key: "writing" },
contact: { kind: "form", key: "contact-form" },
},
});Generate Types
crumb sync-typesThat writes crumb.generated.ts in the current working directory. The generator discovers live project resources from Crumb, resolves model IDs for you, and exports live schemas, inferred data types, and crumbGeneratedResources.
Typical runtime wiring:
import { createCrumbClient } from "@crumbcms/sdk";
import crumbConfig from "./crumb.config";
import { crumbGeneratedResources } from "./crumb.generated";
export const crumb = createCrumbClient({
...crumbConfig,
resources: crumbGeneratedResources,
});Publish Workflow
Build the package:
vp run build --filter @crumbcms/sdkCreate a tarball:
cd packages/sdk
vp pm pack --pack-destination ../../.artifacts/npmDry-run publish:
cd packages/sdk
vp pm publish --access public --dry-runPublish to npm:
cd packages/sdk
vp pm publish --access publicLocal Testing In Another App
Install from the packed tarball:
vp add /absolute/path/to/crumbcms-sdk-0.1.0.tgzFor fast local iteration, link the package directory from the consuming app:
vp link /absolute/path/to/crumb-cms/packages/sdk