Socket
Socket
Sign inDemoInstall

@prismicio/mock

Package Overview
Dependencies
Maintainers
19
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@prismicio/mock - npm Package Compare versions

Comparing version 0.0.7 to 0.0.8

52

dist/index.d.ts

@@ -33,3 +33,3 @@ import * as prismicT from '@prismicio/types';

} & MockValueConfig<Model>;
declare const customType$1: <Model extends prismicT.CustomTypeModel<string, prismicT.CustomTypeModelDefinition<string>> = prismicT.CustomTypeModel<string, prismicT.CustomTypeModelDefinition<string>>>(config?: MockCustomTypeValueConfig<Model>) => ModelValue<Model>;
declare const customType$1: <Model extends prismicT.CustomTypeModel<string, prismicT.CustomTypeModelDefinition<string>> = prismicT.CustomTypeModel<string, prismicT.CustomTypeModelDefinition<string>>>(config?: MockCustomTypeValueConfig<Model>) => ModelValue<Model, prismicT.FieldState>;

@@ -62,7 +62,7 @@ declare type MockColorValueConfig<Model extends prismicT.CustomTypeModelColorField = prismicT.CustomTypeModelColorField, State extends prismicT.FieldState = prismicT.FieldState> = MockValueConfig<Model> & MockValueStateConfig<State>;

declare type MockGroupValueConfig<Model extends prismicT.CustomTypeModelGroupField = prismicT.CustomTypeModelGroupField> = {
itemsCount?: number;
declare type MockGroupValueConfig<Model extends prismicT.CustomTypeModelGroupField = prismicT.CustomTypeModelGroupField, State extends prismicT.FieldState = prismicT.FieldState> = {
itemsCount?: State extends "empty" ? 0 : number;
configs?: ValueForModelMapConfigs;
} & MockValueConfig<Model>;
declare const group$1: <Model extends prismicT.CustomTypeModelGroupField<Record<string, prismicT.CustomTypeModelFieldForGroup>> = prismicT.CustomTypeModelGroupField<Record<string, prismicT.CustomTypeModelFieldForGroup>>>(config?: MockGroupValueConfig<Model>) => ModelValue<Model>;
} & MockValueConfig<Model> & MockValueStateConfig<State>;
declare const group$1: <Model extends prismicT.CustomTypeModelGroupField<Record<string, prismicT.CustomTypeModelFieldForGroup>> = prismicT.CustomTypeModelGroupField<Record<string, prismicT.CustomTypeModelFieldForGroup>>, State extends prismicT.FieldState = "filled">(config?: MockGroupValueConfig<Model, State>) => ModelValue<Model, State>;

@@ -126,11 +126,11 @@ declare type MockImageValueConfig<Model extends prismicT.CustomTypeModelImageField = prismicT.CustomTypeModelImageField, State extends prismicT.FieldState = prismicT.FieldState> = MockValueConfig<Model> & MockValueStateConfig<State>;

} & MockValueConfig<Model>;
declare const slice$1: <Model extends prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> = prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>(config?: MockSliceValueConfig<Model>) => ModelValue<Model>;
declare const slice$1: <Model extends prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> = prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>(config?: MockSliceValueConfig<Model>) => ModelValue<Model, prismicT.FieldState>;
declare type MockSliceZoneValueConfig<Model extends prismicT.CustomTypeModelSliceZoneField = prismicT.CustomTypeModelSliceZoneField> = {
declare type MockSliceZoneValueConfig<Model extends prismicT.CustomTypeModelSliceZoneField = prismicT.CustomTypeModelSliceZoneField, State extends prismicT.FieldState = prismicT.FieldState> = {
sharedSliceModels?: prismicT.SharedSliceModel[];
itemsCount?: number;
itemsCount?: State extends "empty" ? 0 : number;
primaryFieldConfigs?: ValueForModelMapConfigs;
itemsFieldConfigs?: ValueForModelMapConfigs;
} & MockValueConfig<Model>;
declare const sliceZone$1: <Model extends prismicT.CustomTypeModelSliceZoneField<Record<string, prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> | prismicT.CustomTypeModelSharedSlice>> = prismicT.CustomTypeModelSliceZoneField<Record<string, prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> | prismicT.CustomTypeModelSharedSlice>>>(config?: MockSliceZoneValueConfig<Model>) => ModelValue<Model>;
} & MockValueConfig<Model> & MockValueStateConfig<State>;
declare const sliceZone$1: <Model extends prismicT.CustomTypeModelSliceZoneField<Record<string, prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> | prismicT.CustomTypeModelSharedSlice>> = prismicT.CustomTypeModelSliceZoneField<Record<string, prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> | prismicT.CustomTypeModelSharedSlice>>, State extends prismicT.FieldState = prismicT.FieldState>(config?: MockSliceZoneValueConfig<Model, State>) => ModelValue<Model, State>;

@@ -144,6 +144,6 @@ declare type MockSharedSliceVariationValueConfig<Model extends prismicT.SharedSliceModelVariation = prismicT.SharedSliceModelVariation> = {

} & MockValueConfig<Model>;
declare const sharedSliceVariation$1: <Model extends prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> = prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>(config?: MockSharedSliceVariationValueConfig<Model>) => ModelValue<Model>;
declare const sharedSliceVariation$1: <Model extends prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> = prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>(config?: MockSharedSliceVariationValueConfig<Model>) => ModelValue<Model, prismicT.FieldState>;
declare type MockSharedSliceValueConfig<Model extends prismicT.SharedSliceModel = prismicT.SharedSliceModel> = Pick<MockSharedSliceVariationValueConfig, "itemsCount" | "primaryFieldConfigs" | "itemsFieldConfigs"> & MockValueConfig<Model>;
declare const sharedSlice$1: <Model extends prismicT.SharedSliceModel<string, prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>> = prismicT.SharedSliceModel<string, prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>>(config?: MockSharedSliceValueConfig<Model>) => ModelValue<Model>;
declare const sharedSlice$1: <Model extends prismicT.SharedSliceModel<string, prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>> = prismicT.SharedSliceModel<string, prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>>(config?: MockSharedSliceValueConfig<Model>) => ModelValue<Model, prismicT.FieldState>;

@@ -168,6 +168,6 @@ declare const patterns: {

declare type MockTitleValueConfig<Model extends prismicT.CustomTypeModelTitleField = prismicT.CustomTypeModelTitleField> = {
declare type MockTitleValueConfig<Model extends prismicT.CustomTypeModelTitleField = prismicT.CustomTypeModelTitleField, State extends prismicT.FieldState = prismicT.FieldState> = {
pattern?: MockRichTextHeadingValueConfig["pattern"];
} & MockValueConfig<Model>;
declare const title$1: (config?: MockTitleValueConfig) => prismicT.TitleField;
} & MockValueConfig<Model> & MockValueStateConfig<State>;
declare const title$1: <Model extends prismicT.CustomTypeModelRichTextSingleField = prismicT.CustomTypeModelRichTextSingleField, State extends prismicT.FieldState = prismicT.FieldState>(config?: MockTitleValueConfig<Model, State>) => prismicT.TitleField<State>;

@@ -184,3 +184,3 @@ declare type MockUIDValueConfig<Model extends prismicT.CustomTypeModelUIDField = prismicT.CustomTypeModelUIDField> = MockValueConfig<Model>;

type index$2_MockGeoPointValueConfig<_0, _1> = MockGeoPointValueConfig<_0, _1>;
type index$2_MockGroupValueConfig<_0> = MockGroupValueConfig<_0>;
type index$2_MockGroupValueConfig<_0, _1> = MockGroupValueConfig<_0, _1>;
type index$2_MockImageValueConfig<_0, _1> = MockImageValueConfig<_0, _1>;

@@ -194,7 +194,7 @@ type index$2_MockIntegrationFieldsValueConfig<_0, _1, _2> = MockIntegrationFieldsValueConfig<_0, _1, _2>;

type index$2_MockSliceValueConfig<_0> = MockSliceValueConfig<_0>;
type index$2_MockSliceZoneValueConfig<_0> = MockSliceZoneValueConfig<_0>;
type index$2_MockSliceZoneValueConfig<_0, _1> = MockSliceZoneValueConfig<_0, _1>;
type index$2_MockSharedSliceValueConfig<_0> = MockSharedSliceValueConfig<_0>;
type index$2_MockSharedSliceVariationValueConfig<_0> = MockSharedSliceVariationValueConfig<_0>;
type index$2_MockTimestampValueConfig<_0, _1> = MockTimestampValueConfig<_0, _1>;
type index$2_MockTitleValueConfig<_0> = MockTitleValueConfig<_0>;
type index$2_MockTitleValueConfig<_0, _1> = MockTitleValueConfig<_0, _1>;
type index$2_MockUIDValueConfig<_0> = MockUIDValueConfig<_0>;

@@ -255,3 +255,3 @@ declare namespace index$2 {

declare type IterableElement<TargetIterable> = TargetIterable extends Iterable<infer ElementType> ? ElementType : TargetIterable extends AsyncIterable<infer ElementType> ? ElementType : never;
declare type ValueOf<ObjectType extends Record<string, unknown>> = ObjectType[string];
declare type ValueOf<ObjectType, ValueType extends keyof ObjectType = keyof ObjectType> = ObjectType[ValueType];
declare type Seed = string | number | number[];

@@ -281,10 +281,10 @@ declare type MockRestApiConfig = {

};
declare type ModelValue<T extends PrismicModel> = T extends prismicT.CustomTypeModel ? CustomTypeModelValue<T> : T extends prismicT.CustomTypeModelUIDField ? prismicT.PrismicDocument["uid"] : T extends prismicT.CustomTypeModelFieldForGroup ? CustomTypeModelFieldForGroupValue<T> : T extends prismicT.CustomTypeModelGroupField ? CustomTypeModelGroupFieldValue<T> : T extends prismicT.CustomTypeModelSliceZoneField ? prismicT.SliceZone<ValueOf<{
[P in keyof T["config"]["choices"] as P extends string ? P : never]: T["config"]["choices"][P] extends prismicT.CustomTypeModelSlice ? CustomTypeModelSliceValue<T["config"]["choices"][P], P> : T["config"]["choices"][P] extends prismicT.CustomTypeModelSharedSlice ? prismicT.SharedSlice<P> : never;
}>> : T extends prismicT.CustomTypeModelSlice ? CustomTypeModelSliceValue<T> : T extends prismicT.CustomTypeModelSharedSlice ? prismicT.SharedSlice : T extends prismicT.SharedSliceModel ? SharedSliceModelValue<T> : T extends prismicT.SharedSliceModelVariation ? SharedSliceModelVariationValue<T> : never;
declare type ModelValue<T extends PrismicModel, State extends prismicT.FieldState = prismicT.FieldState> = T extends prismicT.CustomTypeModel ? CustomTypeModelValue<T> : T extends prismicT.CustomTypeModelUIDField ? prismicT.PrismicDocument["uid"] : T extends prismicT.CustomTypeModelFieldForGroup ? CustomTypeModelFieldForGroupValue<T, State> : T extends prismicT.CustomTypeModelGroupField ? CustomTypeModelGroupFieldValue<T, State> : T extends prismicT.CustomTypeModelSliceZoneField ? prismicT.SliceZone<ValueOf<{
[P in keyof T["config"]["choices"] as P extends string ? P : never]: T["config"]["choices"][P] extends prismicT.CustomTypeModelSlice ? CustomTypeModelSliceValue<T["config"]["choices"][P], P extends string ? P : string> : T["config"]["choices"][P] extends prismicT.CustomTypeModelSharedSlice ? prismicT.SharedSlice<P extends string ? P : string> : never;
}>, State> : T extends prismicT.CustomTypeModelSlice ? CustomTypeModelSliceValue<T> : T extends prismicT.CustomTypeModelSharedSlice ? prismicT.SharedSlice : T extends prismicT.SharedSliceModel ? SharedSliceModelValue<T> : T extends prismicT.SharedSliceModelVariation ? SharedSliceModelVariationValue<T> : never;
declare type CustomTypeModelValue<T extends prismicT.CustomTypeModel> = prismicT.PrismicDocument<ModelValueMap<{
[P in keyof ValueOf<T["json"]> as ValueOf<T["json"]>[P]["type"] extends typeof prismicT.CustomTypeModelFieldType.UID ? never : P]: ValueOf<T["json"]>[P];
}>>;
declare type CustomTypeModelFieldForGroupValue<T extends prismicT.CustomTypeModelFieldForGroup> = T extends prismicT.CustomTypeModelBooleanField ? prismicT.BooleanField : T extends prismicT.CustomTypeModelColorField ? prismicT.ColorField : T extends prismicT.CustomTypeModelTitleField ? prismicT.TitleField : T extends prismicT.CustomTypeModelRichTextField ? prismicT.RichTextField : T extends prismicT.CustomTypeModelImageField ? prismicT.ImageField : T extends prismicT.CustomTypeModelLinkField ? prismicT.LinkField : T extends prismicT.CustomTypeModelLinkToMediaField ? prismicT.LinkToMediaField : T extends prismicT.CustomTypeModelContentRelationshipField ? prismicT.RelationField : T extends prismicT.CustomTypeModelDateField ? prismicT.DateField : T extends prismicT.CustomTypeModelTimestampField ? prismicT.TimestampField : T extends prismicT.CustomTypeModelNumberField ? prismicT.NumberField : T extends prismicT.CustomTypeModelKeyTextField ? prismicT.KeyTextField : T extends prismicT.CustomTypeModelSelectField ? prismicT.SelectField : T extends prismicT.CustomTypeModelEmbedField ? prismicT.EmbedField : T extends prismicT.CustomTypeModelGeoPointField ? prismicT.GeoPointField : T extends prismicT.CustomTypeModelIntegrationFieldsField ? prismicT.IntegrationFields : never;
declare type CustomTypeModelGroupFieldValue<T extends prismicT.CustomTypeModelGroupField> = prismicT.GroupField<ModelValueMap<T["config"]["fields"]>>;
declare type CustomTypeModelFieldForGroupValue<T extends prismicT.CustomTypeModelFieldForGroup, State extends prismicT.FieldState = prismicT.FieldState> = T extends prismicT.CustomTypeModelBooleanField ? prismicT.BooleanField : T extends prismicT.CustomTypeModelColorField ? prismicT.ColorField<State> : T extends prismicT.CustomTypeModelTitleField ? prismicT.TitleField<State> : T extends prismicT.CustomTypeModelRichTextField ? prismicT.RichTextField<State> : T extends prismicT.CustomTypeModelImageField ? prismicT.ImageField<string | null, State> : T extends prismicT.CustomTypeModelLinkField ? prismicT.LinkField<string, string, never, State> : T extends prismicT.CustomTypeModelLinkToMediaField ? prismicT.LinkToMediaField<State> : T extends prismicT.CustomTypeModelContentRelationshipField ? prismicT.RelationField<string, string, never, State> : T extends prismicT.CustomTypeModelDateField ? prismicT.DateField<State> : T extends prismicT.CustomTypeModelTimestampField ? prismicT.TimestampField<State> : T extends prismicT.CustomTypeModelNumberField ? prismicT.NumberField<State> : T extends prismicT.CustomTypeModelKeyTextField ? prismicT.KeyTextField<State> : T extends prismicT.CustomTypeModelSelectField ? prismicT.SelectField<string, State> : T extends prismicT.CustomTypeModelEmbedField ? prismicT.EmbedField<prismicT.AnyOEmbed & prismicT.OEmbedExtra, State> : T extends prismicT.CustomTypeModelGeoPointField ? prismicT.GeoPointField<State> : T extends prismicT.CustomTypeModelIntegrationFieldsField ? prismicT.IntegrationFields<unknown, State> : never;
declare type CustomTypeModelGroupFieldValue<T extends prismicT.CustomTypeModelGroupField, State extends prismicT.FieldState = prismicT.FieldState> = prismicT.GroupField<ModelValueMap<T["config"]["fields"]>, State>;
declare type CustomTypeModelSliceValue<T extends prismicT.CustomTypeModelSlice, SliceType = string> = prismicT.Slice<SliceType, ModelValueMap<T["non-repeat"]>, ModelValueMap<T["repeat"]>>;

@@ -391,3 +391,5 @@ declare type SharedSliceModelValue<T extends prismicT.SharedSliceModel> = prismicT.SharedSlice<T["id"], SharedSliceModelVariationValue<IterableElement<T["variations"]>>>;

declare type MockIntegrationFieldsModelConfig = MockModelConfig;
declare type MockIntegrationFieldsModelConfig = {
catalog?: string;
} & MockModelConfig;
declare const integrationFields: (config?: MockIntegrationFieldsModelConfig) => prismicT.CustomTypeModelIntegrationFieldsField;

@@ -394,0 +396,0 @@

@@ -381,3 +381,3 @@ import * as changeCase from 'change-case';

label: changeCase.capitalCase(faker.company.bsNoun()),
catalog: changeCase.snakeCase(faker.lorem.words(4))
catalog: config.catalog || changeCase.snakeCase(faker.lorem.words(4))
}

@@ -882,15 +882,19 @@ };

var _a;
const faker = createFaker(config.seed);
const model = config.model || group$1({ seed: config.seed });
const itemsCount = (_a = config.itemsCount) != null ? _a : faker.datatype.number({
min: 1,
max: 6
});
return Array(itemsCount).fill(void 0).map(() => {
return valueForModelMap({
seed: config.seed,
map: model.config.fields,
configs: config.configs
if (config.state === "empty") {
return [];
} else {
const faker = createFaker(config.seed);
const model = config.model || group$1({ seed: config.seed });
const itemsCount = (_a = config.itemsCount) != null ? _a : faker.datatype.number({
min: 1,
max: 6
});
});
return Array(itemsCount).fill(void 0).map(() => {
return valueForModelMap({
seed: config.seed,
map: model.config.fields,
configs: config.configs
});
});
}
};

@@ -1428,32 +1432,25 @@

var _a;
const faker = createFaker(config.seed);
const model = config.model || sliceZone$1({ seed: config.seed });
if (Object.keys(model.config.choices).length > 0) {
const itemsCount = (_a = config.itemsCount) != null ? _a : faker.datatype.number({
min: 1,
max: 6
});
return Array(itemsCount).fill(void 0).map(() => {
var _a2;
const choices = Object.entries(model.config.choices);
const [choiceType, choiceModel] = faker.random.arrayElement(choices);
const choiceLabels = model.config.labels[choiceType] || [];
const choiceLabel = faker.random.arrayElement(choiceLabels);
switch (choiceModel.type) {
case prismicT.CustomTypeModelSliceType.Slice: {
return slice({
seed: config.seed,
model: choiceModel,
type: choiceType,
label: choiceLabel ? choiceLabel.name : null,
primaryFieldConfigs: config.primaryFieldConfigs,
itemsFieldConfigs: config.itemsFieldConfigs
});
}
case prismicT.CustomTypeModelSliceType.SharedSlice: {
const sharedSliceModel = (_a2 = config.sharedSliceModels) == null ? void 0 : _a2.find((sharedSliceModel2) => sharedSliceModel2.id === choiceType);
if (sharedSliceModel) {
return sharedSlice({
if (config.state === "empty") {
return [];
} else {
const faker = createFaker(config.seed);
const model = config.model || sliceZone$1({ seed: config.seed });
if (Object.keys(model.config.choices).length > 0) {
const itemsCount = (_a = config.itemsCount) != null ? _a : faker.datatype.number({
min: 1,
max: 6
});
return Array(itemsCount).fill(void 0).map(() => {
var _a2;
const choices = Object.entries(model.config.choices);
const [choiceType, choiceModel] = faker.random.arrayElement(choices);
const choiceLabels = model.config.labels[choiceType] || [];
const choiceLabel = faker.random.arrayElement(choiceLabels);
switch (choiceModel.type) {
case prismicT.CustomTypeModelSliceType.Slice: {
return slice({
seed: config.seed,
model: sharedSliceModel,
model: choiceModel,
type: choiceType,
label: choiceLabel ? choiceLabel.name : null,
primaryFieldConfigs: config.primaryFieldConfigs,

@@ -1463,7 +1460,18 @@ itemsFieldConfigs: config.itemsFieldConfigs

}
case prismicT.CustomTypeModelSliceType.SharedSlice: {
const sharedSliceModel = (_a2 = config.sharedSliceModels) == null ? void 0 : _a2.find((sharedSliceModel2) => sharedSliceModel2.id === choiceType);
if (sharedSliceModel) {
return sharedSlice({
seed: config.seed,
model: sharedSliceModel,
primaryFieldConfigs: config.primaryFieldConfigs,
itemsFieldConfigs: config.itemsFieldConfigs
});
}
}
}
}
}).filter((slice2) => slice2 !== void 0);
} else {
return [];
}).filter((slice2) => slice2 !== void 0);
} else {
return [];
}
}

@@ -1473,9 +1481,13 @@ };

const title = (config = {}) => {
return [
heading({
seed: config.seed,
model: config.model,
pattern: config.pattern
})
];
if (config.state === "empty") {
return [];
} else {
return [
heading({
seed: config.seed,
model: config.model,
pattern: config.pattern
})
];
}
};

@@ -1482,0 +1494,0 @@

@@ -56,3 +56,5 @@ import * as prismicT from '@prismicio/types';

declare type MockIntegrationFieldsModelConfig = MockModelConfig;
declare type MockIntegrationFieldsModelConfig = {
catalog?: string;
} & MockModelConfig;
declare const integrationFields: (config?: MockIntegrationFieldsModelConfig) => prismicT.CustomTypeModelIntegrationFieldsField;

@@ -59,0 +61,0 @@

@@ -187,3 +187,3 @@ 'use strict';

label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
catalog: changeCase__namespace.snakeCase(faker.lorem.words(4))
catalog: config.catalog || changeCase__namespace.snakeCase(faker.lorem.words(4))
}

@@ -190,0 +190,0 @@ };

import * as prismicT from '@prismicio/types';
declare type IterableElement<TargetIterable> = TargetIterable extends Iterable<infer ElementType> ? ElementType : TargetIterable extends AsyncIterable<infer ElementType> ? ElementType : never;
declare type ValueOf<ObjectType extends Record<string, unknown>> = ObjectType[string];
declare type ValueOf<ObjectType, ValueType extends keyof ObjectType = keyof ObjectType> = ObjectType[ValueType];
declare type Seed = string | number | number[];

@@ -22,10 +22,10 @@ declare type PrismicModel = prismicT.CustomTypeModel | prismicT.CustomTypeModelField | prismicT.CustomTypeModelSlice | prismicT.SharedSliceModel | prismicT.SharedSliceModelVariation;

};
declare type ModelValue<T extends PrismicModel> = T extends prismicT.CustomTypeModel ? CustomTypeModelValue<T> : T extends prismicT.CustomTypeModelUIDField ? prismicT.PrismicDocument["uid"] : T extends prismicT.CustomTypeModelFieldForGroup ? CustomTypeModelFieldForGroupValue<T> : T extends prismicT.CustomTypeModelGroupField ? CustomTypeModelGroupFieldValue<T> : T extends prismicT.CustomTypeModelSliceZoneField ? prismicT.SliceZone<ValueOf<{
[P in keyof T["config"]["choices"] as P extends string ? P : never]: T["config"]["choices"][P] extends prismicT.CustomTypeModelSlice ? CustomTypeModelSliceValue<T["config"]["choices"][P], P> : T["config"]["choices"][P] extends prismicT.CustomTypeModelSharedSlice ? prismicT.SharedSlice<P> : never;
}>> : T extends prismicT.CustomTypeModelSlice ? CustomTypeModelSliceValue<T> : T extends prismicT.CustomTypeModelSharedSlice ? prismicT.SharedSlice : T extends prismicT.SharedSliceModel ? SharedSliceModelValue<T> : T extends prismicT.SharedSliceModelVariation ? SharedSliceModelVariationValue<T> : never;
declare type ModelValue<T extends PrismicModel, State extends prismicT.FieldState = prismicT.FieldState> = T extends prismicT.CustomTypeModel ? CustomTypeModelValue<T> : T extends prismicT.CustomTypeModelUIDField ? prismicT.PrismicDocument["uid"] : T extends prismicT.CustomTypeModelFieldForGroup ? CustomTypeModelFieldForGroupValue<T, State> : T extends prismicT.CustomTypeModelGroupField ? CustomTypeModelGroupFieldValue<T, State> : T extends prismicT.CustomTypeModelSliceZoneField ? prismicT.SliceZone<ValueOf<{
[P in keyof T["config"]["choices"] as P extends string ? P : never]: T["config"]["choices"][P] extends prismicT.CustomTypeModelSlice ? CustomTypeModelSliceValue<T["config"]["choices"][P], P extends string ? P : string> : T["config"]["choices"][P] extends prismicT.CustomTypeModelSharedSlice ? prismicT.SharedSlice<P extends string ? P : string> : never;
}>, State> : T extends prismicT.CustomTypeModelSlice ? CustomTypeModelSliceValue<T> : T extends prismicT.CustomTypeModelSharedSlice ? prismicT.SharedSlice : T extends prismicT.SharedSliceModel ? SharedSliceModelValue<T> : T extends prismicT.SharedSliceModelVariation ? SharedSliceModelVariationValue<T> : never;
declare type CustomTypeModelValue<T extends prismicT.CustomTypeModel> = prismicT.PrismicDocument<ModelValueMap<{
[P in keyof ValueOf<T["json"]> as ValueOf<T["json"]>[P]["type"] extends typeof prismicT.CustomTypeModelFieldType.UID ? never : P]: ValueOf<T["json"]>[P];
}>>;
declare type CustomTypeModelFieldForGroupValue<T extends prismicT.CustomTypeModelFieldForGroup> = T extends prismicT.CustomTypeModelBooleanField ? prismicT.BooleanField : T extends prismicT.CustomTypeModelColorField ? prismicT.ColorField : T extends prismicT.CustomTypeModelTitleField ? prismicT.TitleField : T extends prismicT.CustomTypeModelRichTextField ? prismicT.RichTextField : T extends prismicT.CustomTypeModelImageField ? prismicT.ImageField : T extends prismicT.CustomTypeModelLinkField ? prismicT.LinkField : T extends prismicT.CustomTypeModelLinkToMediaField ? prismicT.LinkToMediaField : T extends prismicT.CustomTypeModelContentRelationshipField ? prismicT.RelationField : T extends prismicT.CustomTypeModelDateField ? prismicT.DateField : T extends prismicT.CustomTypeModelTimestampField ? prismicT.TimestampField : T extends prismicT.CustomTypeModelNumberField ? prismicT.NumberField : T extends prismicT.CustomTypeModelKeyTextField ? prismicT.KeyTextField : T extends prismicT.CustomTypeModelSelectField ? prismicT.SelectField : T extends prismicT.CustomTypeModelEmbedField ? prismicT.EmbedField : T extends prismicT.CustomTypeModelGeoPointField ? prismicT.GeoPointField : T extends prismicT.CustomTypeModelIntegrationFieldsField ? prismicT.IntegrationFields : never;
declare type CustomTypeModelGroupFieldValue<T extends prismicT.CustomTypeModelGroupField> = prismicT.GroupField<ModelValueMap<T["config"]["fields"]>>;
declare type CustomTypeModelFieldForGroupValue<T extends prismicT.CustomTypeModelFieldForGroup, State extends prismicT.FieldState = prismicT.FieldState> = T extends prismicT.CustomTypeModelBooleanField ? prismicT.BooleanField : T extends prismicT.CustomTypeModelColorField ? prismicT.ColorField<State> : T extends prismicT.CustomTypeModelTitleField ? prismicT.TitleField<State> : T extends prismicT.CustomTypeModelRichTextField ? prismicT.RichTextField<State> : T extends prismicT.CustomTypeModelImageField ? prismicT.ImageField<string | null, State> : T extends prismicT.CustomTypeModelLinkField ? prismicT.LinkField<string, string, never, State> : T extends prismicT.CustomTypeModelLinkToMediaField ? prismicT.LinkToMediaField<State> : T extends prismicT.CustomTypeModelContentRelationshipField ? prismicT.RelationField<string, string, never, State> : T extends prismicT.CustomTypeModelDateField ? prismicT.DateField<State> : T extends prismicT.CustomTypeModelTimestampField ? prismicT.TimestampField<State> : T extends prismicT.CustomTypeModelNumberField ? prismicT.NumberField<State> : T extends prismicT.CustomTypeModelKeyTextField ? prismicT.KeyTextField<State> : T extends prismicT.CustomTypeModelSelectField ? prismicT.SelectField<string, State> : T extends prismicT.CustomTypeModelEmbedField ? prismicT.EmbedField<prismicT.AnyOEmbed & prismicT.OEmbedExtra, State> : T extends prismicT.CustomTypeModelGeoPointField ? prismicT.GeoPointField<State> : T extends prismicT.CustomTypeModelIntegrationFieldsField ? prismicT.IntegrationFields<unknown, State> : never;
declare type CustomTypeModelGroupFieldValue<T extends prismicT.CustomTypeModelGroupField, State extends prismicT.FieldState = prismicT.FieldState> = prismicT.GroupField<ModelValueMap<T["config"]["fields"]>, State>;
declare type CustomTypeModelSliceValue<T extends prismicT.CustomTypeModelSlice, SliceType = string> = prismicT.Slice<SliceType, ModelValueMap<T["non-repeat"]>, ModelValueMap<T["repeat"]>>;

@@ -65,3 +65,3 @@ declare type SharedSliceModelValue<T extends prismicT.SharedSliceModel> = prismicT.SharedSlice<T["id"], SharedSliceModelVariationValue<IterableElement<T["variations"]>>>;

} & MockValueConfig<Model>;
declare const customType: <Model extends prismicT.CustomTypeModel<string, prismicT.CustomTypeModelDefinition<string>> = prismicT.CustomTypeModel<string, prismicT.CustomTypeModelDefinition<string>>>(config?: MockCustomTypeValueConfig<Model>) => ModelValue<Model>;
declare const customType: <Model extends prismicT.CustomTypeModel<string, prismicT.CustomTypeModelDefinition<string>> = prismicT.CustomTypeModel<string, prismicT.CustomTypeModelDefinition<string>>>(config?: MockCustomTypeValueConfig<Model>) => ModelValue<Model, prismicT.FieldState>;

@@ -94,7 +94,7 @@ declare type MockColorValueConfig<Model extends prismicT.CustomTypeModelColorField = prismicT.CustomTypeModelColorField, State extends prismicT.FieldState = prismicT.FieldState> = MockValueConfig<Model> & MockValueStateConfig<State>;

declare type MockGroupValueConfig<Model extends prismicT.CustomTypeModelGroupField = prismicT.CustomTypeModelGroupField> = {
itemsCount?: number;
declare type MockGroupValueConfig<Model extends prismicT.CustomTypeModelGroupField = prismicT.CustomTypeModelGroupField, State extends prismicT.FieldState = prismicT.FieldState> = {
itemsCount?: State extends "empty" ? 0 : number;
configs?: ValueForModelMapConfigs;
} & MockValueConfig<Model>;
declare const group: <Model extends prismicT.CustomTypeModelGroupField<Record<string, prismicT.CustomTypeModelFieldForGroup>> = prismicT.CustomTypeModelGroupField<Record<string, prismicT.CustomTypeModelFieldForGroup>>>(config?: MockGroupValueConfig<Model>) => ModelValue<Model>;
} & MockValueConfig<Model> & MockValueStateConfig<State>;
declare const group: <Model extends prismicT.CustomTypeModelGroupField<Record<string, prismicT.CustomTypeModelFieldForGroup>> = prismicT.CustomTypeModelGroupField<Record<string, prismicT.CustomTypeModelFieldForGroup>>, State extends prismicT.FieldState = "filled">(config?: MockGroupValueConfig<Model, State>) => ModelValue<Model, State>;

@@ -158,11 +158,11 @@ declare type MockImageValueConfig<Model extends prismicT.CustomTypeModelImageField = prismicT.CustomTypeModelImageField, State extends prismicT.FieldState = prismicT.FieldState> = MockValueConfig<Model> & MockValueStateConfig<State>;

} & MockValueConfig<Model>;
declare const slice: <Model extends prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> = prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>(config?: MockSliceValueConfig<Model>) => ModelValue<Model>;
declare const slice: <Model extends prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> = prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>(config?: MockSliceValueConfig<Model>) => ModelValue<Model, prismicT.FieldState>;
declare type MockSliceZoneValueConfig<Model extends prismicT.CustomTypeModelSliceZoneField = prismicT.CustomTypeModelSliceZoneField> = {
declare type MockSliceZoneValueConfig<Model extends prismicT.CustomTypeModelSliceZoneField = prismicT.CustomTypeModelSliceZoneField, State extends prismicT.FieldState = prismicT.FieldState> = {
sharedSliceModels?: prismicT.SharedSliceModel[];
itemsCount?: number;
itemsCount?: State extends "empty" ? 0 : number;
primaryFieldConfigs?: ValueForModelMapConfigs;
itemsFieldConfigs?: ValueForModelMapConfigs;
} & MockValueConfig<Model>;
declare const sliceZone: <Model extends prismicT.CustomTypeModelSliceZoneField<Record<string, prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> | prismicT.CustomTypeModelSharedSlice>> = prismicT.CustomTypeModelSliceZoneField<Record<string, prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> | prismicT.CustomTypeModelSharedSlice>>>(config?: MockSliceZoneValueConfig<Model>) => ModelValue<Model>;
} & MockValueConfig<Model> & MockValueStateConfig<State>;
declare const sliceZone: <Model extends prismicT.CustomTypeModelSliceZoneField<Record<string, prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> | prismicT.CustomTypeModelSharedSlice>> = prismicT.CustomTypeModelSliceZoneField<Record<string, prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> | prismicT.CustomTypeModelSharedSlice>>, State extends prismicT.FieldState = prismicT.FieldState>(config?: MockSliceZoneValueConfig<Model, State>) => ModelValue<Model, State>;

@@ -176,6 +176,6 @@ declare type MockSharedSliceVariationValueConfig<Model extends prismicT.SharedSliceModelVariation = prismicT.SharedSliceModelVariation> = {

} & MockValueConfig<Model>;
declare const sharedSliceVariation: <Model extends prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> = prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>(config?: MockSharedSliceVariationValueConfig<Model>) => ModelValue<Model>;
declare const sharedSliceVariation: <Model extends prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> = prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>(config?: MockSharedSliceVariationValueConfig<Model>) => ModelValue<Model, prismicT.FieldState>;
declare type MockSharedSliceValueConfig<Model extends prismicT.SharedSliceModel = prismicT.SharedSliceModel> = Pick<MockSharedSliceVariationValueConfig, "itemsCount" | "primaryFieldConfigs" | "itemsFieldConfigs"> & MockValueConfig<Model>;
declare const sharedSlice: <Model extends prismicT.SharedSliceModel<string, prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>> = prismicT.SharedSliceModel<string, prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>>(config?: MockSharedSliceValueConfig<Model>) => ModelValue<Model>;
declare const sharedSlice: <Model extends prismicT.SharedSliceModel<string, prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>> = prismicT.SharedSliceModel<string, prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>>(config?: MockSharedSliceValueConfig<Model>) => ModelValue<Model, prismicT.FieldState>;

@@ -200,6 +200,6 @@ declare const patterns: {

declare type MockTitleValueConfig<Model extends prismicT.CustomTypeModelTitleField = prismicT.CustomTypeModelTitleField> = {
declare type MockTitleValueConfig<Model extends prismicT.CustomTypeModelTitleField = prismicT.CustomTypeModelTitleField, State extends prismicT.FieldState = prismicT.FieldState> = {
pattern?: MockRichTextHeadingValueConfig["pattern"];
} & MockValueConfig<Model>;
declare const title: (config?: MockTitleValueConfig) => prismicT.TitleField;
} & MockValueConfig<Model> & MockValueStateConfig<State>;
declare const title: <Model extends prismicT.CustomTypeModelRichTextSingleField = prismicT.CustomTypeModelRichTextSingleField, State extends prismicT.FieldState = prismicT.FieldState>(config?: MockTitleValueConfig<Model, State>) => prismicT.TitleField<State>;

@@ -206,0 +206,0 @@ declare type MockUIDValueConfig<Model extends prismicT.CustomTypeModelUIDField = prismicT.CustomTypeModelUIDField> = MockValueConfig<Model>;

@@ -725,15 +725,19 @@ 'use strict';

var _a;
const faker = createFaker(config.seed);
const model = config.model || group$1({ seed: config.seed });
const itemsCount = (_a = config.itemsCount) != null ? _a : faker.datatype.number({
min: 1,
max: 6
});
return Array(itemsCount).fill(void 0).map(() => {
return valueForModelMap({
seed: config.seed,
map: model.config.fields,
configs: config.configs
if (config.state === "empty") {
return [];
} else {
const faker = createFaker(config.seed);
const model = config.model || group$1({ seed: config.seed });
const itemsCount = (_a = config.itemsCount) != null ? _a : faker.datatype.number({
min: 1,
max: 6
});
});
return Array(itemsCount).fill(void 0).map(() => {
return valueForModelMap({
seed: config.seed,
map: model.config.fields,
configs: config.configs
});
});
}
};

@@ -1271,32 +1275,25 @@

var _a;
const faker = createFaker(config.seed);
const model = config.model || sliceZone$1({ seed: config.seed });
if (Object.keys(model.config.choices).length > 0) {
const itemsCount = (_a = config.itemsCount) != null ? _a : faker.datatype.number({
min: 1,
max: 6
});
return Array(itemsCount).fill(void 0).map(() => {
var _a2;
const choices = Object.entries(model.config.choices);
const [choiceType, choiceModel] = faker.random.arrayElement(choices);
const choiceLabels = model.config.labels[choiceType] || [];
const choiceLabel = faker.random.arrayElement(choiceLabels);
switch (choiceModel.type) {
case prismicT__namespace.CustomTypeModelSliceType.Slice: {
return slice({
seed: config.seed,
model: choiceModel,
type: choiceType,
label: choiceLabel ? choiceLabel.name : null,
primaryFieldConfigs: config.primaryFieldConfigs,
itemsFieldConfigs: config.itemsFieldConfigs
});
}
case prismicT__namespace.CustomTypeModelSliceType.SharedSlice: {
const sharedSliceModel = (_a2 = config.sharedSliceModels) == null ? void 0 : _a2.find((sharedSliceModel2) => sharedSliceModel2.id === choiceType);
if (sharedSliceModel) {
return sharedSlice({
if (config.state === "empty") {
return [];
} else {
const faker = createFaker(config.seed);
const model = config.model || sliceZone$1({ seed: config.seed });
if (Object.keys(model.config.choices).length > 0) {
const itemsCount = (_a = config.itemsCount) != null ? _a : faker.datatype.number({
min: 1,
max: 6
});
return Array(itemsCount).fill(void 0).map(() => {
var _a2;
const choices = Object.entries(model.config.choices);
const [choiceType, choiceModel] = faker.random.arrayElement(choices);
const choiceLabels = model.config.labels[choiceType] || [];
const choiceLabel = faker.random.arrayElement(choiceLabels);
switch (choiceModel.type) {
case prismicT__namespace.CustomTypeModelSliceType.Slice: {
return slice({
seed: config.seed,
model: sharedSliceModel,
model: choiceModel,
type: choiceType,
label: choiceLabel ? choiceLabel.name : null,
primaryFieldConfigs: config.primaryFieldConfigs,

@@ -1306,7 +1303,18 @@ itemsFieldConfigs: config.itemsFieldConfigs

}
case prismicT__namespace.CustomTypeModelSliceType.SharedSlice: {
const sharedSliceModel = (_a2 = config.sharedSliceModels) == null ? void 0 : _a2.find((sharedSliceModel2) => sharedSliceModel2.id === choiceType);
if (sharedSliceModel) {
return sharedSlice({
seed: config.seed,
model: sharedSliceModel,
primaryFieldConfigs: config.primaryFieldConfigs,
itemsFieldConfigs: config.itemsFieldConfigs
});
}
}
}
}
}).filter((slice2) => slice2 !== void 0);
} else {
return [];
}).filter((slice2) => slice2 !== void 0);
} else {
return [];
}
}

@@ -1316,9 +1324,13 @@ };

const title = (config = {}) => {
return [
heading({
seed: config.seed,
model: config.model,
pattern: config.pattern
})
];
if (config.state === "empty") {
return [];
} else {
return [
heading({
seed: config.seed,
model: config.model,
pattern: config.pattern
})
];
}
};

@@ -1325,0 +1337,0 @@

{
"name": "@prismicio/mock",
"version": "0.0.7",
"version": "0.0.8",
"description": "Generate mock Prismic documents, fields, Slices, and models for development and testing environments",

@@ -5,0 +5,0 @@ "keywords": [

@@ -8,3 +8,5 @@ import * as prismicT from "@prismicio/types";

export type MockIntegrationFieldsModelConfig = MockModelConfig;
export type MockIntegrationFieldsModelConfig = {
catalog?: string;
} & MockModelConfig;

@@ -20,5 +22,5 @@ export const integrationFields = (

label: changeCase.capitalCase(faker.company.bsNoun()),
catalog: changeCase.snakeCase(faker.lorem.words(4)),
catalog: config.catalog || changeCase.snakeCase(faker.lorem.words(4)),
},
};
};

@@ -13,4 +13,6 @@ import * as prismicT from "@prismicio/types";

export type ValueOf<ObjectType extends Record<string, unknown>> =
ObjectType[string];
export type ValueOf<
ObjectType,
ValueType extends keyof ObjectType = keyof ObjectType,
> = ObjectType[ValueType];

@@ -78,36 +80,42 @@ type Simplify<T> = { [KeyType in keyof T]: T[KeyType] };

export type MockValueConfigForModel<Model extends PrismicModel> =
Model extends prismicT.CustomTypeModelBooleanField
? value.MockBooleanValueConfig
: Model extends prismicT.CustomTypeModelColorField
? value.MockColorValueConfig
: Model extends prismicT.CustomTypeModelContentRelationshipField
? value.MockContentRelationshipValueConfig
: Model extends prismicT.CustomTypeModelDateField
? value.MockDateValueConfig
: Model extends prismicT.CustomTypeModelEmbedField
? value.MockEmbedValueConfig
: Model extends prismicT.CustomTypeModelGeoPointField
? value.MockGeoPointValueConfig
: Model extends prismicT.CustomTypeModelImageField
? value.MockImageValueConfig
: Model extends prismicT.CustomTypeModelKeyTextField
? value.MockKeyTextValueConfig
: Model extends prismicT.CustomTypeModelLinkField
? value.MockLinkValueConfig
: Model extends prismicT.CustomTypeModelLinkToMediaField
? value.MockLinkToMediaValueConfig
: Model extends prismicT.CustomTypeModelNumberField
? value.MockNumberValueConfig
: Model extends prismicT.CustomTypeModelRichTextField
? value.MockRichTextValueConfig
: Model extends prismicT.CustomTypeModelSelectField
? value.MockSelectValueConfig
: Model extends prismicT.CustomTypeModelTimestampField
? value.MockTimestampValueConfig
: Model extends prismicT.CustomTypeModelTitleField
? value.MockTitleValueConfig
: Model extends prismicT.CustomTypeModelUIDField
? value.MockUIDValueConfig
: never;
export type MockValueConfigForModel<
Model extends PrismicModel,
State extends prismicT.FieldState = prismicT.FieldState,
> = Model extends prismicT.CustomTypeModelBooleanField
? value.MockBooleanValueConfig<Model>
: Model extends prismicT.CustomTypeModelColorField
? value.MockColorValueConfig<Model, State>
: Model extends prismicT.CustomTypeModelContentRelationshipField
? value.MockContentRelationshipValueConfig<Model, State>
: Model extends prismicT.CustomTypeModelDateField
? value.MockDateValueConfig<Model, State>
: Model extends prismicT.CustomTypeModelEmbedField
? value.MockEmbedValueConfig<Model, State>
: Model extends prismicT.CustomTypeModelGeoPointField
? value.MockGeoPointValueConfig<Model, State>
: Model extends prismicT.CustomTypeModelImageField
? value.MockImageValueConfig<Model, State>
: Model extends prismicT.CustomTypeModelKeyTextField
? value.MockKeyTextValueConfig<Model, State>
: Model extends prismicT.CustomTypeModelLinkField
? value.MockLinkValueConfig<
typeof prismicT.LinkType[keyof typeof prismicT.LinkType],
Model,
State
>
: Model extends prismicT.CustomTypeModelLinkToMediaField
? value.MockLinkToMediaValueConfig<Model, State>
: Model extends prismicT.CustomTypeModelNumberField
? value.MockNumberValueConfig<Model, State>
: Model extends prismicT.CustomTypeModelRichTextField
? value.MockRichTextValueConfig
: Model extends prismicT.CustomTypeModelSelectField
? value.MockSelectValueConfig<Model, State>
: Model extends prismicT.CustomTypeModelTimestampField
? value.MockTimestampValueConfig<Model, State>
: Model extends prismicT.CustomTypeModelTitleField
? value.MockTitleValueConfig<Model, State>
: Model extends prismicT.CustomTypeModelUIDField
? value.MockUIDValueConfig<Model>
: never;

@@ -131,33 +139,39 @@ type CustomTypeModelStructuredTextField =

export type ModelValue<T extends PrismicModel> =
T extends prismicT.CustomTypeModel
? CustomTypeModelValue<T>
: T extends prismicT.CustomTypeModelUIDField
? prismicT.PrismicDocument["uid"]
: T extends prismicT.CustomTypeModelFieldForGroup
? CustomTypeModelFieldForGroupValue<T>
: T extends prismicT.CustomTypeModelGroupField
? CustomTypeModelGroupFieldValue<T>
: T extends prismicT.CustomTypeModelSliceZoneField
? prismicT.SliceZone<
ValueOf<{
[P in keyof T["config"]["choices"] as P extends string
? P
: never]: T["config"]["choices"][P] extends prismicT.CustomTypeModelSlice
? CustomTypeModelSliceValue<T["config"]["choices"][P], P>
: T["config"]["choices"][P] extends prismicT.CustomTypeModelSharedSlice
? prismicT.SharedSlice<P>
: never;
}>
>
: T extends prismicT.CustomTypeModelSlice
? CustomTypeModelSliceValue<T>
: T extends prismicT.CustomTypeModelSharedSlice
? // TODO: Allow providing a union of of Shared Slices
prismicT.SharedSlice
: T extends prismicT.SharedSliceModel
? SharedSliceModelValue<T>
: T extends prismicT.SharedSliceModelVariation
? SharedSliceModelVariationValue<T>
: never;
export type ModelValue<
T extends PrismicModel,
State extends prismicT.FieldState = prismicT.FieldState,
> = T extends prismicT.CustomTypeModel
? CustomTypeModelValue<T>
: T extends prismicT.CustomTypeModelUIDField
? prismicT.PrismicDocument["uid"]
: T extends prismicT.CustomTypeModelFieldForGroup
? CustomTypeModelFieldForGroupValue<T, State>
: T extends prismicT.CustomTypeModelGroupField
? CustomTypeModelGroupFieldValue<T, State>
: T extends prismicT.CustomTypeModelSliceZoneField
? prismicT.SliceZone<
ValueOf<{
[P in keyof T["config"]["choices"] as P extends string
? P
: never]: T["config"]["choices"][P] extends prismicT.CustomTypeModelSlice
? CustomTypeModelSliceValue<
T["config"]["choices"][P],
P extends string ? P : string
>
: T["config"]["choices"][P] extends prismicT.CustomTypeModelSharedSlice
? prismicT.SharedSlice<P extends string ? P : string>
: never;
}>,
State
>
: T extends prismicT.CustomTypeModelSlice
? CustomTypeModelSliceValue<T>
: T extends prismicT.CustomTypeModelSharedSlice
? // TODO: Allow providing a union of of Shared Slices
prismicT.SharedSlice
: T extends prismicT.SharedSliceModel
? SharedSliceModelValue<T>
: T extends prismicT.SharedSliceModelVariation
? SharedSliceModelVariationValue<T>
: never;

@@ -177,34 +191,35 @@ type CustomTypeModelValue<T extends prismicT.CustomTypeModel> =

T extends prismicT.CustomTypeModelFieldForGroup,
State extends prismicT.FieldState = prismicT.FieldState,
> = T extends prismicT.CustomTypeModelBooleanField
? prismicT.BooleanField
: T extends prismicT.CustomTypeModelColorField
? prismicT.ColorField
? prismicT.ColorField<State>
: T extends prismicT.CustomTypeModelTitleField
? prismicT.TitleField
? prismicT.TitleField<State>
: T extends prismicT.CustomTypeModelRichTextField
? prismicT.RichTextField
? prismicT.RichTextField<State>
: T extends prismicT.CustomTypeModelImageField
? prismicT.ImageField
? prismicT.ImageField<string | null, State>
: T extends prismicT.CustomTypeModelLinkField
? prismicT.LinkField
? prismicT.LinkField<string, string, never, State>
: T extends prismicT.CustomTypeModelLinkToMediaField
? prismicT.LinkToMediaField
? prismicT.LinkToMediaField<State>
: T extends prismicT.CustomTypeModelContentRelationshipField
? prismicT.RelationField
? prismicT.RelationField<string, string, never, State>
: T extends prismicT.CustomTypeModelDateField
? prismicT.DateField
? prismicT.DateField<State>
: T extends prismicT.CustomTypeModelTimestampField
? prismicT.TimestampField
? prismicT.TimestampField<State>
: T extends prismicT.CustomTypeModelNumberField
? prismicT.NumberField
? prismicT.NumberField<State>
: T extends prismicT.CustomTypeModelKeyTextField
? prismicT.KeyTextField
? prismicT.KeyTextField<State>
: T extends prismicT.CustomTypeModelSelectField
? prismicT.SelectField
? prismicT.SelectField<string, State>
: T extends prismicT.CustomTypeModelEmbedField
? prismicT.EmbedField
? prismicT.EmbedField<prismicT.AnyOEmbed & prismicT.OEmbedExtra, State>
: T extends prismicT.CustomTypeModelGeoPointField
? prismicT.GeoPointField
? prismicT.GeoPointField<State>
: T extends prismicT.CustomTypeModelIntegrationFieldsField
? prismicT.IntegrationFields
? prismicT.IntegrationFields<unknown, State>
: never;

@@ -214,3 +229,4 @@

T extends prismicT.CustomTypeModelGroupField,
> = prismicT.GroupField<ModelValueMap<T["config"]["fields"]>>;
State extends prismicT.FieldState = prismicT.FieldState,
> = prismicT.GroupField<ModelValueMap<T["config"]["fields"]>, State>;

@@ -217,0 +233,0 @@ type CustomTypeModelSliceValue<

@@ -9,3 +9,3 @@ import * as prismicT from "@prismicio/types";

import { MockValueConfig, ModelValue } from "../types";
import { MockValueConfig, MockValueStateConfig, ModelValue } from "../types";

@@ -16,32 +16,43 @@ import * as modelGen from "../model";

Model extends prismicT.CustomTypeModelGroupField = prismicT.CustomTypeModelGroupField,
State extends prismicT.FieldState = prismicT.FieldState,
> = {
itemsCount?: number;
itemsCount?: State extends "empty" ? 0 : number;
configs?: ValueForModelMapConfigs;
} & MockValueConfig<Model>;
} & MockValueConfig<Model> &
MockValueStateConfig<State>;
export type MockGroupValue<
State extends prismicT.FieldState = prismicT.FieldState,
> = prismicT.DateField<State>;
export const group = <
Model extends prismicT.CustomTypeModelGroupField = prismicT.CustomTypeModelGroupField,
State extends prismicT.FieldState = "filled",
>(
config: MockGroupValueConfig<Model> = {},
): ModelValue<Model> => {
const faker = createFaker(config.seed);
config: MockGroupValueConfig<Model, State> = {},
): ModelValue<Model, State> => {
if (config.state === "empty") {
return [] as ModelValue<Model, State>;
} else {
const faker = createFaker(config.seed);
const model = config.model || modelGen.group({ seed: config.seed });
const model = config.model || modelGen.group({ seed: config.seed });
const itemsCount =
config.itemsCount ??
faker.datatype.number({
min: 1,
max: 6,
});
const itemsCount =
config.itemsCount ??
faker.datatype.number({
min: 1,
max: 6,
});
return Array(itemsCount)
.fill(undefined)
.map(() => {
return valueForModelMap({
seed: config.seed,
map: model.config.fields,
configs: config.configs,
});
}) as ModelValue<Model>;
return Array(itemsCount)
.fill(undefined)
.map(() => {
return valueForModelMap({
seed: config.seed,
map: model.config.fields,
configs: config.configs,
});
}) as ModelValue<Model, State>;
}
};

@@ -6,3 +6,3 @@ import * as prismicT from "@prismicio/types";

import { MockValueConfig, ModelValue } from "../types";
import { MockValueConfig, MockValueStateConfig, ModelValue } from "../types";

@@ -16,56 +16,48 @@ import * as modelGen from "../model";

Model extends prismicT.CustomTypeModelSliceZoneField = prismicT.CustomTypeModelSliceZoneField,
State extends prismicT.FieldState = prismicT.FieldState,
> = {
sharedSliceModels?: prismicT.SharedSliceModel[];
itemsCount?: number;
itemsCount?: State extends "empty" ? 0 : number;
primaryFieldConfigs?: ValueForModelMapConfigs;
itemsFieldConfigs?: ValueForModelMapConfigs;
} & MockValueConfig<Model>;
} & MockValueConfig<Model> &
MockValueStateConfig<State>;
export const sliceZone = <
Model extends prismicT.CustomTypeModelSliceZoneField = prismicT.CustomTypeModelSliceZoneField,
State extends prismicT.FieldState = prismicT.FieldState,
>(
config: MockSliceZoneValueConfig<Model> = {},
): ModelValue<Model> => {
const faker = createFaker(config.seed);
config: MockSliceZoneValueConfig<Model, State> = {},
): ModelValue<Model, State> => {
if (config.state === "empty") {
return [] as ModelValue<Model, State>;
} else {
const faker = createFaker(config.seed);
const model = config.model || modelGen.sliceZone({ seed: config.seed });
const model = config.model || modelGen.sliceZone({ seed: config.seed });
if (Object.keys(model.config.choices).length > 0) {
const itemsCount =
config.itemsCount ??
faker.datatype.number({
min: 1,
max: 6,
});
if (Object.keys(model.config.choices).length > 0) {
const itemsCount =
config.itemsCount ??
faker.datatype.number({
min: 1,
max: 6,
});
return Array(itemsCount)
.fill(undefined)
.map(() => {
const choices = Object.entries(model.config.choices);
const [choiceType, choiceModel] = faker.random.arrayElement(choices);
return Array(itemsCount)
.fill(undefined)
.map(() => {
const choices = Object.entries(model.config.choices);
const [choiceType, choiceModel] = faker.random.arrayElement(choices);
const choiceLabels = model.config.labels[choiceType] || [];
const choiceLabel = faker.random.arrayElement(choiceLabels);
const choiceLabels = model.config.labels[choiceType] || [];
const choiceLabel = faker.random.arrayElement(choiceLabels);
switch (choiceModel.type) {
case prismicT.CustomTypeModelSliceType.Slice: {
return slice({
seed: config.seed,
model: choiceModel,
type: choiceType,
label: choiceLabel ? choiceLabel.name : null,
primaryFieldConfigs: config.primaryFieldConfigs,
itemsFieldConfigs: config.itemsFieldConfigs,
});
}
case prismicT.CustomTypeModelSliceType.SharedSlice: {
const sharedSliceModel = config.sharedSliceModels?.find(
(sharedSliceModel) => sharedSliceModel.id === choiceType,
);
if (sharedSliceModel) {
return sharedSlice({
switch (choiceModel.type) {
case prismicT.CustomTypeModelSliceType.Slice: {
return slice({
seed: config.seed,
model: sharedSliceModel,
model: choiceModel,
type: choiceType,
label: choiceLabel ? choiceLabel.name : null,
primaryFieldConfigs: config.primaryFieldConfigs,

@@ -75,12 +67,27 @@ itemsFieldConfigs: config.itemsFieldConfigs,

}
case prismicT.CustomTypeModelSliceType.SharedSlice: {
const sharedSliceModel = config.sharedSliceModels?.find(
(sharedSliceModel) => sharedSliceModel.id === choiceType,
);
if (sharedSliceModel) {
return sharedSlice({
seed: config.seed,
model: sharedSliceModel,
primaryFieldConfigs: config.primaryFieldConfigs,
itemsFieldConfigs: config.itemsFieldConfigs,
});
}
}
}
}
})
.filter(
(slice): slice is prismicT.Slice | prismicT.SharedSlice =>
slice !== undefined,
) as ModelValue<Model>;
} else {
return [] as unknown as ModelValue<Model>;
})
.filter(
(slice): slice is prismicT.Slice | prismicT.SharedSlice =>
slice !== undefined,
) as ModelValue<Model, State>;
} else {
return [] as unknown as ModelValue<Model, State>;
}
}
};
import * as prismicT from "@prismicio/types";
import { MockValueConfig } from "../types";
import { MockValueConfig, MockValueStateConfig } from "../types";

@@ -9,17 +9,30 @@ import { heading, MockRichTextHeadingValueConfig } from "./richText/heading";

Model extends prismicT.CustomTypeModelTitleField = prismicT.CustomTypeModelTitleField,
State extends prismicT.FieldState = prismicT.FieldState,
> = {
pattern?: MockRichTextHeadingValueConfig["pattern"];
} & MockValueConfig<Model>;
} & MockValueConfig<Model> &
MockValueStateConfig<State>;
export const title = (
config: MockTitleValueConfig = {},
): prismicT.TitleField => {
return [
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
heading({
seed: config.seed,
model: config.model,
pattern: config.pattern,
})!,
] as prismicT.TitleField;
export type MockTitleValue<
State extends prismicT.FieldState = prismicT.FieldState,
> = prismicT.TitleField<State>;
export const title = <
Model extends prismicT.CustomTypeModelTitleField = prismicT.CustomTypeModelTitleField,
State extends prismicT.FieldState = prismicT.FieldState,
>(
config: MockTitleValueConfig<Model, State> = {},
): MockTitleValue<State> => {
if (config.state === "empty") {
return [] as MockTitleValue<State>;
} else {
return [
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
heading({
seed: config.seed,
model: config.model,
pattern: config.pattern,
})!,
] as MockTitleValue<State>;
}
};

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc