@limitless-angular/sanity
Version:
A powerful Angular library for Sanity.io integration, featuring Portable Text rendering and optimized image loading.
49 lines (44 loc) • 1.78 kB
JavaScript
import { SANITY_CLIENT_FACTORY, SANITY_CONFIG } from '@limitless-angular/sanity/shared';
export * from '@limitless-angular/sanity/shared';
import { makeEnvironmentProviders, ENVIRONMENT_INITIALIZER } from '@angular/core';
import { LIVE_PREVIEW_REFRESH_INTERVAL } from '@limitless-angular/sanity/preview-kit';
const DEFAULT_LIVE_PREVIEW_REFRESH_INTERVAL = 10000;
function provideSanity(factoryOrConfig, ...features) {
return makeEnvironmentProviders([
...(typeof factoryOrConfig === 'function'
? [
{ provide: SANITY_CLIENT_FACTORY, useValue: factoryOrConfig },
{ provide: SANITY_CONFIG, useValue: factoryOrConfig()?.config() },
]
: [{ provide: SANITY_CONFIG, useValue: factoryOrConfig }]),
{
provide: ENVIRONMENT_INITIALIZER,
multi: true,
useValue: () => {
// This is a placeholder for any initialization logic you might need.
// For example, you could set up global error handling for Sanity queries here.
},
},
features.map((feature) => feature.ɵproviders),
]);
}
function sanityFeature(kind, providers) {
return { ɵkind: kind, ɵproviders: providers };
}
function withLivePreview(options = {}) {
const providers = [
{
provide: LIVE_PREVIEW_REFRESH_INTERVAL,
useValue: options.refreshInterval ?? DEFAULT_LIVE_PREVIEW_REFRESH_INTERVAL,
},
];
return sanityFeature(0 /* SanityFeatureKind.SanityLivePreviewFeature */, providers);
}
/*
* Public API Surface of @limitless-angular/sanity
*/
/**
* Generated bundle index. Do not edit.
*/
export { provideSanity, withLivePreview };
//# sourceMappingURL=limitless-angular-sanity.mjs.map