@prismicio/mock 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -64,7 +64,7 @@ const getValueConfigType = (model) => {
64
64
  return "timestamp";
65
65
  case prismic__namespace.CustomTypeModelFieldType.UID:
66
66
  return "uid";
67
- case prismic__namespace.CustomTypeModelFieldType.IntegrationField:
67
+ case prismic__namespace.CustomTypeModelFieldType.Integration:
68
68
  return "integration";
69
69
  case prismic__namespace.CustomTypeModelFieldType.Slices:
70
70
  return "sliceZone";
@@ -1 +1 @@
1
- {"version":3,"file":"valueForModelMap.cjs","sources":["../../../src/lib/valueForModelMap.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { ModelValue, ModelValueMap, Seed } from \"../types\";\nimport {\n\tMockBooleanValueConfig,\n\tMockColorValueConfig,\n\tMockContentRelationshipValueConfig,\n\tMockDateValueConfig,\n\tMockEmbedValueConfig,\n\tMockGeoPointValueConfig,\n\tMockGroupValueConfig,\n\tMockImageValueConfig,\n\tMockIntegrationFieldValueConfig,\n\tMockKeyTextValueConfig,\n\tMockLinkToMediaValueConfig,\n\tMockLinkValueConfig,\n\tMockNumberValueConfig,\n\tMockRichTextValueConfig,\n\tMockSelectValueConfig,\n\tMockSliceZoneValueConfig,\n\tMockTimestampValueConfig,\n\tMockTitleValueConfig,\n\tMockUIDValueConfig,\n} from \"../value\";\n\nimport { valueForModel } from \"./valueForModel\";\nimport { createFaker, Faker } from \"./createFaker\";\n\nconst getValueConfigType = <Model extends prismic.CustomTypeModelField>(\n\tmodel: Model,\n): keyof ValueForModelMapConfigs => {\n\tswitch (model.type) {\n\t\tcase prismic.CustomTypeModelFieldType.Boolean:\n\t\t\treturn \"boolean\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Color:\n\t\t\treturn \"color\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Date:\n\t\t\treturn \"date\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Embed:\n\t\t\treturn \"embed\";\n\n\t\tcase prismic.CustomTypeModelFieldType.GeoPoint:\n\t\t\treturn \"geoPoint\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Group:\n\t\t\treturn \"group\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Image:\n\t\t\treturn \"image\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Link: {\n\t\t\tswitch (model.config?.select) {\n\t\t\t\tcase prismic.CustomTypeModelLinkSelectType.Document:\n\t\t\t\t\treturn \"contentRelationship\";\n\t\t\t\tcase prismic.CustomTypeModelLinkSelectType.Media:\n\t\t\t\t\treturn \"linkToMedia\";\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"link\";\n\t\t\t}\n\t\t}\n\n\t\tcase prismic.CustomTypeModelFieldType.Number:\n\t\t\treturn \"number\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Select:\n\t\t\treturn \"select\";\n\n\t\tcase prismic.CustomTypeModelFieldType.StructuredText: {\n\t\t\tif (\n\t\t\t\tmodel.config &&\n\t\t\t\t\"single\" in model.config &&\n\t\t\t\tmodel.config.single &&\n\t\t\t\tmodel.config.single\n\t\t\t\t\t.split(\",\")\n\t\t\t\t\t.every((element) => /heading{1,6}/.test(element.trim()))\n\t\t\t) {\n\t\t\t\treturn \"title\";\n\t\t\t} else {\n\t\t\t\treturn \"richText\";\n\t\t\t}\n\t\t}\n\n\t\tcase prismic.CustomTypeModelFieldType.Text:\n\t\t\treturn \"keyText\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Timestamp:\n\t\t\treturn \"timestamp\";\n\n\t\tcase prismic.CustomTypeModelFieldType.UID:\n\t\t\treturn \"uid\";\n\n\t\tcase prismic.CustomTypeModelFieldType.IntegrationField:\n\t\t\treturn \"integration\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Slices:\n\t\t\treturn \"sliceZone\";\n\n\t\tdefault: {\n\t\t\tthrow new Error(\n\t\t\t\t`The \"${model.type}\" field type is not supported in @prismicio/mock.`,\n\t\t\t);\n\t\t}\n\t}\n};\n\nexport type ValueForModelMapConfigs = {\n\tboolean?: MockBooleanValueConfig;\n\tcolor?: MockColorValueConfig;\n\tcontentRelationship?: MockContentRelationshipValueConfig;\n\tdate?: MockDateValueConfig;\n\tembed?: MockEmbedValueConfig;\n\tgeoPoint?: MockGeoPointValueConfig;\n\tgroup?: MockGroupValueConfig;\n\timage?: MockImageValueConfig;\n\tintegration?: MockIntegrationFieldValueConfig;\n\tkeyText?: MockKeyTextValueConfig;\n\tlink?: MockLinkValueConfig;\n\tlinkToMedia?: MockLinkToMediaValueConfig;\n\tnumber?: MockNumberValueConfig;\n\trichText?: MockRichTextValueConfig;\n\tselect?: MockSelectValueConfig;\n\tsliceZone?: MockSliceZoneValueConfig;\n\ttimestamp?: MockTimestampValueConfig;\n\ttitle?: MockTitleValueConfig;\n\tuid?: MockUIDValueConfig;\n};\n\ntype ValueForModelMapConfig<\n\tModelMap extends Record<string, prismic.CustomTypeModelField>,\n> = {\n\tmap: ModelMap;\n\tconfigs?: ValueForModelMapConfigs;\n} & (\n\t| {\n\t\t\tseed: Seed;\n\t\t\tfaker?: never;\n\t }\n\t| {\n\t\t\tfaker: Faker;\n\t\t\tseed?: never;\n\t }\n);\n\nexport const valueForModelMap = <\n\tModelMap extends Record<string, prismic.CustomTypeModelField>,\n>(\n\tconfig: ValueForModelMapConfig<ModelMap>,\n): ModelValueMap<ModelMap> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst result = {} as ModelValueMap<ModelMap>;\n\n\tfor (const fieldId in config.map) {\n\t\tconst fieldModel = config.map[fieldId];\n\t\tconst fieldConfigType = getValueConfigType(fieldModel);\n\t\tconst fieldConfig = config.configs?.[fieldConfigType];\n\n\t\tresult[fieldId] = valueForModel({\n\t\t\tfaker,\n\t\t\tmodel: fieldModel as prismic.CustomTypeModelField,\n\t\t\tconfig: fieldConfig,\n\t\t}) as ModelValue<typeof fieldModel>;\n\t}\n\n\treturn result;\n};\n"],"names":["prismic","createFaker","valueForModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA4BA,MAAM,qBAAqB,CAC1B,UACkC;;AAClC,UAAQ,MAAM,MAAM;AAAA,IACnB,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB,MAAM;AACnC,eAAA,WAAM,WAAN,mBAAc,QAAQ;AAAA,QAC7B,KAAKA,mBAAQ,8BAA8B;AACnC,iBAAA;AAAA,QACR,KAAKA,mBAAQ,8BAA8B;AACnC,iBAAA;AAAA,QACR;AACQ,iBAAA;AAAA,MACR;AAAA,IACD;AAAA,IAED,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB,gBAAgB;AAEpD,UAAA,MAAM,UACN,YAAY,MAAM,UAClB,MAAM,OAAO,UACb,MAAM,OAAO,OACX,MAAM,GAAG,EACT,MAAM,CAAC,YAAY,eAAe,KAAK,QAAQ,KAAM,CAAA,CAAC,GACvD;AACM,eAAA;AAAA,MAAA,OACD;AACC,eAAA;AAAA,MACP;AAAA,IACD;AAAA,IAED,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,SAAS;AACR,YAAM,IAAI,MACT,QAAQ,MAAM,uDAAuD;AAAA,IAEtE;AAAA,EACD;AACF;AAwCa,MAAA,mBAAmB,CAG/B,WAC4B;;AAC5B,QAAM,QAAQ,OAAO,SAASC,YAAAA,YAAY,OAAO,IAAI;AAErD,QAAM,SAAS,CAAA;AAEJ,aAAA,WAAW,OAAO,KAAK;AAC3B,UAAA,aAAa,OAAO,IAAI,OAAO;AAC/B,UAAA,kBAAkB,mBAAmB,UAAU;AAC/C,UAAA,eAAc,YAAO,YAAP,mBAAiB;AAE9B,WAAA,OAAO,IAAIC,4BAAc;AAAA,MAC/B;AAAA,MACA,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA,CACR;AAAA,EACD;AAEM,SAAA;AACR;;"}
1
+ {"version":3,"file":"valueForModelMap.cjs","sources":["../../../src/lib/valueForModelMap.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { ModelValue, ModelValueMap, Seed } from \"../types\";\nimport {\n\tMockBooleanValueConfig,\n\tMockColorValueConfig,\n\tMockContentRelationshipValueConfig,\n\tMockDateValueConfig,\n\tMockEmbedValueConfig,\n\tMockGeoPointValueConfig,\n\tMockGroupValueConfig,\n\tMockImageValueConfig,\n\tMockIntegrationFieldValueConfig,\n\tMockKeyTextValueConfig,\n\tMockLinkToMediaValueConfig,\n\tMockLinkValueConfig,\n\tMockNumberValueConfig,\n\tMockRichTextValueConfig,\n\tMockSelectValueConfig,\n\tMockSliceZoneValueConfig,\n\tMockTimestampValueConfig,\n\tMockTitleValueConfig,\n\tMockUIDValueConfig,\n} from \"../value\";\n\nimport { valueForModel } from \"./valueForModel\";\nimport { createFaker, Faker } from \"./createFaker\";\n\nconst getValueConfigType = <Model extends prismic.CustomTypeModelField>(\n\tmodel: Model,\n): keyof ValueForModelMapConfigs => {\n\tswitch (model.type) {\n\t\tcase prismic.CustomTypeModelFieldType.Boolean:\n\t\t\treturn \"boolean\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Color:\n\t\t\treturn \"color\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Date:\n\t\t\treturn \"date\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Embed:\n\t\t\treturn \"embed\";\n\n\t\tcase prismic.CustomTypeModelFieldType.GeoPoint:\n\t\t\treturn \"geoPoint\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Group:\n\t\t\treturn \"group\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Image:\n\t\t\treturn \"image\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Link: {\n\t\t\tswitch (model.config?.select) {\n\t\t\t\tcase prismic.CustomTypeModelLinkSelectType.Document:\n\t\t\t\t\treturn \"contentRelationship\";\n\t\t\t\tcase prismic.CustomTypeModelLinkSelectType.Media:\n\t\t\t\t\treturn \"linkToMedia\";\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"link\";\n\t\t\t}\n\t\t}\n\n\t\tcase prismic.CustomTypeModelFieldType.Number:\n\t\t\treturn \"number\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Select:\n\t\t\treturn \"select\";\n\n\t\tcase prismic.CustomTypeModelFieldType.StructuredText: {\n\t\t\tif (\n\t\t\t\tmodel.config &&\n\t\t\t\t\"single\" in model.config &&\n\t\t\t\tmodel.config.single &&\n\t\t\t\tmodel.config.single\n\t\t\t\t\t.split(\",\")\n\t\t\t\t\t.every((element) => /heading{1,6}/.test(element.trim()))\n\t\t\t) {\n\t\t\t\treturn \"title\";\n\t\t\t} else {\n\t\t\t\treturn \"richText\";\n\t\t\t}\n\t\t}\n\n\t\tcase prismic.CustomTypeModelFieldType.Text:\n\t\t\treturn \"keyText\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Timestamp:\n\t\t\treturn \"timestamp\";\n\n\t\tcase prismic.CustomTypeModelFieldType.UID:\n\t\t\treturn \"uid\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Integration:\n\t\t\treturn \"integration\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Slices:\n\t\t\treturn \"sliceZone\";\n\n\t\tdefault: {\n\t\t\tthrow new Error(\n\t\t\t\t`The \"${model.type}\" field type is not supported in @prismicio/mock.`,\n\t\t\t);\n\t\t}\n\t}\n};\n\nexport type ValueForModelMapConfigs = {\n\tboolean?: MockBooleanValueConfig;\n\tcolor?: MockColorValueConfig;\n\tcontentRelationship?: MockContentRelationshipValueConfig;\n\tdate?: MockDateValueConfig;\n\tembed?: MockEmbedValueConfig;\n\tgeoPoint?: MockGeoPointValueConfig;\n\tgroup?: MockGroupValueConfig;\n\timage?: MockImageValueConfig;\n\tintegration?: MockIntegrationFieldValueConfig;\n\tkeyText?: MockKeyTextValueConfig;\n\tlink?: MockLinkValueConfig;\n\tlinkToMedia?: MockLinkToMediaValueConfig;\n\tnumber?: MockNumberValueConfig;\n\trichText?: MockRichTextValueConfig;\n\tselect?: MockSelectValueConfig;\n\tsliceZone?: MockSliceZoneValueConfig;\n\ttimestamp?: MockTimestampValueConfig;\n\ttitle?: MockTitleValueConfig;\n\tuid?: MockUIDValueConfig;\n};\n\ntype ValueForModelMapConfig<\n\tModelMap extends Record<string, prismic.CustomTypeModelField>,\n> = {\n\tmap: ModelMap;\n\tconfigs?: ValueForModelMapConfigs;\n} & (\n\t| {\n\t\t\tseed: Seed;\n\t\t\tfaker?: never;\n\t }\n\t| {\n\t\t\tfaker: Faker;\n\t\t\tseed?: never;\n\t }\n);\n\nexport const valueForModelMap = <\n\tModelMap extends Record<string, prismic.CustomTypeModelField>,\n>(\n\tconfig: ValueForModelMapConfig<ModelMap>,\n): ModelValueMap<ModelMap> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst result = {} as ModelValueMap<ModelMap>;\n\n\tfor (const fieldId in config.map) {\n\t\tconst fieldModel = config.map[fieldId];\n\t\tconst fieldConfigType = getValueConfigType(fieldModel);\n\t\tconst fieldConfig = config.configs?.[fieldConfigType];\n\n\t\tresult[fieldId] = valueForModel({\n\t\t\tfaker,\n\t\t\tmodel: fieldModel as prismic.CustomTypeModelField,\n\t\t\tconfig: fieldConfig,\n\t\t}) as ModelValue<typeof fieldModel>;\n\t}\n\n\treturn result;\n};\n"],"names":["prismic","createFaker","valueForModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA4BA,MAAM,qBAAqB,CAC1B,UACkC;;AAClC,UAAQ,MAAM,MAAM;AAAA,IACnB,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB,MAAM;AACnC,eAAA,WAAM,WAAN,mBAAc,QAAQ;AAAA,QAC7B,KAAKA,mBAAQ,8BAA8B;AACnC,iBAAA;AAAA,QACR,KAAKA,mBAAQ,8BAA8B;AACnC,iBAAA;AAAA,QACR;AACQ,iBAAA;AAAA,MACR;AAAA,IACD;AAAA,IAED,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB,gBAAgB;AAEpD,UAAA,MAAM,UACN,YAAY,MAAM,UAClB,MAAM,OAAO,UACb,MAAM,OAAO,OACX,MAAM,GAAG,EACT,MAAM,CAAC,YAAY,eAAe,KAAK,QAAQ,KAAM,CAAA,CAAC,GACvD;AACM,eAAA;AAAA,MAAA,OACD;AACC,eAAA;AAAA,MACP;AAAA,IACD;AAAA,IAED,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAKA,mBAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,SAAS;AACR,YAAM,IAAI,MACT,QAAQ,MAAM,uDAAuD;AAAA,IAEtE;AAAA,EACD;AACF;AAwCa,MAAA,mBAAmB,CAG/B,WAC4B;;AAC5B,QAAM,QAAQ,OAAO,SAASC,YAAAA,YAAY,OAAO,IAAI;AAErD,QAAM,SAAS,CAAA;AAEJ,aAAA,WAAW,OAAO,KAAK;AAC3B,UAAA,aAAa,OAAO,IAAI,OAAO;AAC/B,UAAA,kBAAkB,mBAAmB,UAAU;AAC/C,UAAA,eAAc,YAAO,YAAP,mBAAiB;AAE9B,WAAA,OAAO,IAAIC,4BAAc;AAAA,MAC/B;AAAA,MACA,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA,CACR;AAAA,EACD;AAEM,SAAA;AACR;;"}
@@ -45,7 +45,7 @@ const getValueConfigType = (model) => {
45
45
  return "timestamp";
46
46
  case prismic.CustomTypeModelFieldType.UID:
47
47
  return "uid";
48
- case prismic.CustomTypeModelFieldType.IntegrationField:
48
+ case prismic.CustomTypeModelFieldType.Integration:
49
49
  return "integration";
50
50
  case prismic.CustomTypeModelFieldType.Slices:
51
51
  return "sliceZone";
@@ -1 +1 @@
1
- {"version":3,"file":"valueForModelMap.js","sources":["../../../src/lib/valueForModelMap.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { ModelValue, ModelValueMap, Seed } from \"../types\";\nimport {\n\tMockBooleanValueConfig,\n\tMockColorValueConfig,\n\tMockContentRelationshipValueConfig,\n\tMockDateValueConfig,\n\tMockEmbedValueConfig,\n\tMockGeoPointValueConfig,\n\tMockGroupValueConfig,\n\tMockImageValueConfig,\n\tMockIntegrationFieldValueConfig,\n\tMockKeyTextValueConfig,\n\tMockLinkToMediaValueConfig,\n\tMockLinkValueConfig,\n\tMockNumberValueConfig,\n\tMockRichTextValueConfig,\n\tMockSelectValueConfig,\n\tMockSliceZoneValueConfig,\n\tMockTimestampValueConfig,\n\tMockTitleValueConfig,\n\tMockUIDValueConfig,\n} from \"../value\";\n\nimport { valueForModel } from \"./valueForModel\";\nimport { createFaker, Faker } from \"./createFaker\";\n\nconst getValueConfigType = <Model extends prismic.CustomTypeModelField>(\n\tmodel: Model,\n): keyof ValueForModelMapConfigs => {\n\tswitch (model.type) {\n\t\tcase prismic.CustomTypeModelFieldType.Boolean:\n\t\t\treturn \"boolean\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Color:\n\t\t\treturn \"color\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Date:\n\t\t\treturn \"date\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Embed:\n\t\t\treturn \"embed\";\n\n\t\tcase prismic.CustomTypeModelFieldType.GeoPoint:\n\t\t\treturn \"geoPoint\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Group:\n\t\t\treturn \"group\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Image:\n\t\t\treturn \"image\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Link: {\n\t\t\tswitch (model.config?.select) {\n\t\t\t\tcase prismic.CustomTypeModelLinkSelectType.Document:\n\t\t\t\t\treturn \"contentRelationship\";\n\t\t\t\tcase prismic.CustomTypeModelLinkSelectType.Media:\n\t\t\t\t\treturn \"linkToMedia\";\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"link\";\n\t\t\t}\n\t\t}\n\n\t\tcase prismic.CustomTypeModelFieldType.Number:\n\t\t\treturn \"number\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Select:\n\t\t\treturn \"select\";\n\n\t\tcase prismic.CustomTypeModelFieldType.StructuredText: {\n\t\t\tif (\n\t\t\t\tmodel.config &&\n\t\t\t\t\"single\" in model.config &&\n\t\t\t\tmodel.config.single &&\n\t\t\t\tmodel.config.single\n\t\t\t\t\t.split(\",\")\n\t\t\t\t\t.every((element) => /heading{1,6}/.test(element.trim()))\n\t\t\t) {\n\t\t\t\treturn \"title\";\n\t\t\t} else {\n\t\t\t\treturn \"richText\";\n\t\t\t}\n\t\t}\n\n\t\tcase prismic.CustomTypeModelFieldType.Text:\n\t\t\treturn \"keyText\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Timestamp:\n\t\t\treturn \"timestamp\";\n\n\t\tcase prismic.CustomTypeModelFieldType.UID:\n\t\t\treturn \"uid\";\n\n\t\tcase prismic.CustomTypeModelFieldType.IntegrationField:\n\t\t\treturn \"integration\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Slices:\n\t\t\treturn \"sliceZone\";\n\n\t\tdefault: {\n\t\t\tthrow new Error(\n\t\t\t\t`The \"${model.type}\" field type is not supported in @prismicio/mock.`,\n\t\t\t);\n\t\t}\n\t}\n};\n\nexport type ValueForModelMapConfigs = {\n\tboolean?: MockBooleanValueConfig;\n\tcolor?: MockColorValueConfig;\n\tcontentRelationship?: MockContentRelationshipValueConfig;\n\tdate?: MockDateValueConfig;\n\tembed?: MockEmbedValueConfig;\n\tgeoPoint?: MockGeoPointValueConfig;\n\tgroup?: MockGroupValueConfig;\n\timage?: MockImageValueConfig;\n\tintegration?: MockIntegrationFieldValueConfig;\n\tkeyText?: MockKeyTextValueConfig;\n\tlink?: MockLinkValueConfig;\n\tlinkToMedia?: MockLinkToMediaValueConfig;\n\tnumber?: MockNumberValueConfig;\n\trichText?: MockRichTextValueConfig;\n\tselect?: MockSelectValueConfig;\n\tsliceZone?: MockSliceZoneValueConfig;\n\ttimestamp?: MockTimestampValueConfig;\n\ttitle?: MockTitleValueConfig;\n\tuid?: MockUIDValueConfig;\n};\n\ntype ValueForModelMapConfig<\n\tModelMap extends Record<string, prismic.CustomTypeModelField>,\n> = {\n\tmap: ModelMap;\n\tconfigs?: ValueForModelMapConfigs;\n} & (\n\t| {\n\t\t\tseed: Seed;\n\t\t\tfaker?: never;\n\t }\n\t| {\n\t\t\tfaker: Faker;\n\t\t\tseed?: never;\n\t }\n);\n\nexport const valueForModelMap = <\n\tModelMap extends Record<string, prismic.CustomTypeModelField>,\n>(\n\tconfig: ValueForModelMapConfig<ModelMap>,\n): ModelValueMap<ModelMap> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst result = {} as ModelValueMap<ModelMap>;\n\n\tfor (const fieldId in config.map) {\n\t\tconst fieldModel = config.map[fieldId];\n\t\tconst fieldConfigType = getValueConfigType(fieldModel);\n\t\tconst fieldConfig = config.configs?.[fieldConfigType];\n\n\t\tresult[fieldId] = valueForModel({\n\t\t\tfaker,\n\t\t\tmodel: fieldModel as prismic.CustomTypeModelField,\n\t\t\tconfig: fieldConfig,\n\t\t}) as ModelValue<typeof fieldModel>;\n\t}\n\n\treturn result;\n};\n"],"names":[],"mappings":";;;AA4BA,MAAM,qBAAqB,CAC1B,UACkC;;AAClC,UAAQ,MAAM,MAAM;AAAA,IACnB,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB,MAAM;AACnC,eAAA,WAAM,WAAN,mBAAc,QAAQ;AAAA,QAC7B,KAAK,QAAQ,8BAA8B;AACnC,iBAAA;AAAA,QACR,KAAK,QAAQ,8BAA8B;AACnC,iBAAA;AAAA,QACR;AACQ,iBAAA;AAAA,MACR;AAAA,IACD;AAAA,IAED,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB,gBAAgB;AAEpD,UAAA,MAAM,UACN,YAAY,MAAM,UAClB,MAAM,OAAO,UACb,MAAM,OAAO,OACX,MAAM,GAAG,EACT,MAAM,CAAC,YAAY,eAAe,KAAK,QAAQ,KAAM,CAAA,CAAC,GACvD;AACM,eAAA;AAAA,MAAA,OACD;AACC,eAAA;AAAA,MACP;AAAA,IACD;AAAA,IAED,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,SAAS;AACR,YAAM,IAAI,MACT,QAAQ,MAAM,uDAAuD;AAAA,IAEtE;AAAA,EACD;AACF;AAwCa,MAAA,mBAAmB,CAG/B,WAC4B;;AAC5B,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAErD,QAAM,SAAS,CAAA;AAEJ,aAAA,WAAW,OAAO,KAAK;AAC3B,UAAA,aAAa,OAAO,IAAI,OAAO;AAC/B,UAAA,kBAAkB,mBAAmB,UAAU;AAC/C,UAAA,eAAc,YAAO,YAAP,mBAAiB;AAE9B,WAAA,OAAO,IAAI,cAAc;AAAA,MAC/B;AAAA,MACA,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA,CACR;AAAA,EACD;AAEM,SAAA;AACR;"}
1
+ {"version":3,"file":"valueForModelMap.js","sources":["../../../src/lib/valueForModelMap.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { ModelValue, ModelValueMap, Seed } from \"../types\";\nimport {\n\tMockBooleanValueConfig,\n\tMockColorValueConfig,\n\tMockContentRelationshipValueConfig,\n\tMockDateValueConfig,\n\tMockEmbedValueConfig,\n\tMockGeoPointValueConfig,\n\tMockGroupValueConfig,\n\tMockImageValueConfig,\n\tMockIntegrationFieldValueConfig,\n\tMockKeyTextValueConfig,\n\tMockLinkToMediaValueConfig,\n\tMockLinkValueConfig,\n\tMockNumberValueConfig,\n\tMockRichTextValueConfig,\n\tMockSelectValueConfig,\n\tMockSliceZoneValueConfig,\n\tMockTimestampValueConfig,\n\tMockTitleValueConfig,\n\tMockUIDValueConfig,\n} from \"../value\";\n\nimport { valueForModel } from \"./valueForModel\";\nimport { createFaker, Faker } from \"./createFaker\";\n\nconst getValueConfigType = <Model extends prismic.CustomTypeModelField>(\n\tmodel: Model,\n): keyof ValueForModelMapConfigs => {\n\tswitch (model.type) {\n\t\tcase prismic.CustomTypeModelFieldType.Boolean:\n\t\t\treturn \"boolean\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Color:\n\t\t\treturn \"color\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Date:\n\t\t\treturn \"date\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Embed:\n\t\t\treturn \"embed\";\n\n\t\tcase prismic.CustomTypeModelFieldType.GeoPoint:\n\t\t\treturn \"geoPoint\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Group:\n\t\t\treturn \"group\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Image:\n\t\t\treturn \"image\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Link: {\n\t\t\tswitch (model.config?.select) {\n\t\t\t\tcase prismic.CustomTypeModelLinkSelectType.Document:\n\t\t\t\t\treturn \"contentRelationship\";\n\t\t\t\tcase prismic.CustomTypeModelLinkSelectType.Media:\n\t\t\t\t\treturn \"linkToMedia\";\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"link\";\n\t\t\t}\n\t\t}\n\n\t\tcase prismic.CustomTypeModelFieldType.Number:\n\t\t\treturn \"number\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Select:\n\t\t\treturn \"select\";\n\n\t\tcase prismic.CustomTypeModelFieldType.StructuredText: {\n\t\t\tif (\n\t\t\t\tmodel.config &&\n\t\t\t\t\"single\" in model.config &&\n\t\t\t\tmodel.config.single &&\n\t\t\t\tmodel.config.single\n\t\t\t\t\t.split(\",\")\n\t\t\t\t\t.every((element) => /heading{1,6}/.test(element.trim()))\n\t\t\t) {\n\t\t\t\treturn \"title\";\n\t\t\t} else {\n\t\t\t\treturn \"richText\";\n\t\t\t}\n\t\t}\n\n\t\tcase prismic.CustomTypeModelFieldType.Text:\n\t\t\treturn \"keyText\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Timestamp:\n\t\t\treturn \"timestamp\";\n\n\t\tcase prismic.CustomTypeModelFieldType.UID:\n\t\t\treturn \"uid\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Integration:\n\t\t\treturn \"integration\";\n\n\t\tcase prismic.CustomTypeModelFieldType.Slices:\n\t\t\treturn \"sliceZone\";\n\n\t\tdefault: {\n\t\t\tthrow new Error(\n\t\t\t\t`The \"${model.type}\" field type is not supported in @prismicio/mock.`,\n\t\t\t);\n\t\t}\n\t}\n};\n\nexport type ValueForModelMapConfigs = {\n\tboolean?: MockBooleanValueConfig;\n\tcolor?: MockColorValueConfig;\n\tcontentRelationship?: MockContentRelationshipValueConfig;\n\tdate?: MockDateValueConfig;\n\tembed?: MockEmbedValueConfig;\n\tgeoPoint?: MockGeoPointValueConfig;\n\tgroup?: MockGroupValueConfig;\n\timage?: MockImageValueConfig;\n\tintegration?: MockIntegrationFieldValueConfig;\n\tkeyText?: MockKeyTextValueConfig;\n\tlink?: MockLinkValueConfig;\n\tlinkToMedia?: MockLinkToMediaValueConfig;\n\tnumber?: MockNumberValueConfig;\n\trichText?: MockRichTextValueConfig;\n\tselect?: MockSelectValueConfig;\n\tsliceZone?: MockSliceZoneValueConfig;\n\ttimestamp?: MockTimestampValueConfig;\n\ttitle?: MockTitleValueConfig;\n\tuid?: MockUIDValueConfig;\n};\n\ntype ValueForModelMapConfig<\n\tModelMap extends Record<string, prismic.CustomTypeModelField>,\n> = {\n\tmap: ModelMap;\n\tconfigs?: ValueForModelMapConfigs;\n} & (\n\t| {\n\t\t\tseed: Seed;\n\t\t\tfaker?: never;\n\t }\n\t| {\n\t\t\tfaker: Faker;\n\t\t\tseed?: never;\n\t }\n);\n\nexport const valueForModelMap = <\n\tModelMap extends Record<string, prismic.CustomTypeModelField>,\n>(\n\tconfig: ValueForModelMapConfig<ModelMap>,\n): ModelValueMap<ModelMap> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst result = {} as ModelValueMap<ModelMap>;\n\n\tfor (const fieldId in config.map) {\n\t\tconst fieldModel = config.map[fieldId];\n\t\tconst fieldConfigType = getValueConfigType(fieldModel);\n\t\tconst fieldConfig = config.configs?.[fieldConfigType];\n\n\t\tresult[fieldId] = valueForModel({\n\t\t\tfaker,\n\t\t\tmodel: fieldModel as prismic.CustomTypeModelField,\n\t\t\tconfig: fieldConfig,\n\t\t}) as ModelValue<typeof fieldModel>;\n\t}\n\n\treturn result;\n};\n"],"names":[],"mappings":";;;AA4BA,MAAM,qBAAqB,CAC1B,UACkC;;AAClC,UAAQ,MAAM,MAAM;AAAA,IACnB,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB,MAAM;AACnC,eAAA,WAAM,WAAN,mBAAc,QAAQ;AAAA,QAC7B,KAAK,QAAQ,8BAA8B;AACnC,iBAAA;AAAA,QACR,KAAK,QAAQ,8BAA8B;AACnC,iBAAA;AAAA,QACR;AACQ,iBAAA;AAAA,MACR;AAAA,IACD;AAAA,IAED,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB,gBAAgB;AAEpD,UAAA,MAAM,UACN,YAAY,MAAM,UAClB,MAAM,OAAO,UACb,MAAM,OAAO,OACX,MAAM,GAAG,EACT,MAAM,CAAC,YAAY,eAAe,KAAK,QAAQ,KAAM,CAAA,CAAC,GACvD;AACM,eAAA;AAAA,MAAA,OACD;AACC,eAAA;AAAA,MACP;AAAA,IACD;AAAA,IAED,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,KAAK,QAAQ,yBAAyB;AAC9B,aAAA;AAAA,IAER,SAAS;AACR,YAAM,IAAI,MACT,QAAQ,MAAM,uDAAuD;AAAA,IAEtE;AAAA,EACD;AACF;AAwCa,MAAA,mBAAmB,CAG/B,WAC4B;;AAC5B,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAErD,QAAM,SAAS,CAAA;AAEJ,aAAA,WAAW,OAAO,KAAK;AAC3B,UAAA,aAAa,OAAO,IAAI,OAAO;AAC/B,UAAA,kBAAkB,mBAAmB,UAAU;AAC/C,UAAA,eAAc,YAAO,YAAP,mBAAiB;AAE9B,WAAA,OAAO,IAAI,cAAc;AAAA,MAC/B;AAAA,MACA,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA,CACR;AAAA,EACD;AAEM,SAAA;AACR;"}
package/dist/types.d.ts CHANGED
@@ -64,7 +64,7 @@ export type ModelValueMap<T extends Record<string, prismic.CustomTypeModelField>
64
64
  [P in keyof T]: ModelValue<T[P]>;
65
65
  };
66
66
  export type ModelValue<T extends PrismicModel, State extends prismic.FieldState = prismic.FieldState> = T extends prismic.CustomTypeModel ? CustomTypeModelValue<T> : T extends prismic.CustomTypeModelUIDField ? prismic.PrismicDocument["uid"] : T extends prismic.CustomTypeModelFieldForGroup ? CustomTypeModelFieldForGroupValue<T, State> : T extends prismic.CustomTypeModelGroupField ? CustomTypeModelGroupFieldValue<T, State> : T extends prismic.CustomTypeModelSliceZoneField ? prismic.SliceZone<ValueOf<{
67
- [P in keyof NonNullable<T["config"]>["choices"] as P extends string ? P : never]: NonNullable<T["config"]>["choices"][P] extends prismic.CustomTypeModelSlice ? CustomTypeModelSliceValue<NonNullable<T["config"]>["choices"][P], P extends string ? P : string> : NonNullable<T["config"]>["choices"][P] extends prismic.CustomTypeModelSharedSlice ? prismic.SharedSlice<P extends string ? P : string> : never;
67
+ [P in keyof NonNullable<NonNullable<T["config"]>["choices"]> as P extends string ? P : never]: NonNullable<NonNullable<T["config"]>["choices"]>[P] extends prismic.CustomTypeModelSlice ? CustomTypeModelSliceValue<NonNullable<NonNullable<T["config"]>["choices"]>[P], P extends string ? P : string> : NonNullable<NonNullable<T["config"]>["choices"]>[P] extends prismic.CustomTypeModelSharedSlice ? prismic.SharedSlice<P extends string ? P : string> : never;
68
68
  }>, State> : T extends prismic.CustomTypeModelSlice ? CustomTypeModelSliceValue<T> : T extends prismic.CustomTypeModelSharedSlice ? prismic.SharedSlice : T extends prismic.SharedSliceModel ? SharedSliceModelValue<T> : T extends prismic.SharedSliceModelVariation ? SharedSliceModelVariationValue<T> : never;
69
69
  type CustomTypeModelValue<T extends prismic.CustomTypeModel> = prismic.PrismicDocument<ModelValueMap<{
70
70
  [P in keyof ValueOf<T["json"]> as ValueOf<T["json"]>[P]["type"] extends typeof prismic.CustomTypeModelFieldType.UID ? never : P]: ValueOf<T["json"]>[P];
@@ -47,7 +47,7 @@ export declare class ValueMockFactory {
47
47
  image<Model extends prismic.CustomTypeModelImageField = prismic.CustomTypeModelImageField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockImageValueConfig<Model, State>>): import("@prismicio/client/dist/types/value/types").Simplify<State extends "filled" ? prismic.ImageFieldImage<State> & Record<Extract<NonNullable<NonNullable<Model["config"]>["thumbnails"]>[number]["name"], string>, prismic.ImageFieldImage<State>> : prismic.ImageFieldImage<State> & Record<Extract<NonNullable<NonNullable<Model["config"]>["thumbnails"]>[number]["name"], string>, prismic.ImageFieldImage<State>>>;
48
48
  integration<Model extends prismic.CustomTypeModelIntegrationField = prismic.CustomTypeModelIntegrationField, Data extends Record<string, unknown> = Record<string, unknown>, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockIntegrationFieldValueConfig<Model, Data, State>>): prismic.IntegrationField<Data, State>;
49
49
  keyText<Model extends prismic.CustomTypeModelKeyTextField = prismic.CustomTypeModelKeyTextField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockKeyTextValueConfig<Model, State>>): prismic.KeyTextField<State>;
50
- link<LinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType], Model extends prismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockLinkValueConfig<LinkType, Model, State>>): State extends "empty" ? prismic.EmptyLinkField<LinkType> : LinkType extends "Web" ? prismic.FilledLinkToWebField : LinkType extends "Media" ? prismic.FilledLinkToMediaField : LinkType extends "Document" ? prismic.FilledLinkToDocumentField : never;
50
+ link<LinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType], Model extends prismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockLinkValueConfig<LinkType, Model, State>>): State extends "empty" ? prismic.EmptyLinkField<LinkType> : LinkType extends "Web" ? prismic.FilledLinkToWebField : LinkType extends "Media" ? prismic.FilledLinkToMediaField : LinkType extends "Document" ? prismic.FilledContentRelationshipField<string, string, unknown> : never;
51
51
  linkToMedia<Model extends prismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockLinkToMediaValueConfig<Model, State>>): prismic.LinkToMediaField<State>;
52
52
  number<Model extends prismic.CustomTypeModelNumberField = prismic.CustomTypeModelNumberField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockNumberValueConfig<Model, State>>): prismic.NumberField<State>;
53
53
  select<Model extends prismic.CustomTypeModelSelectField = prismic.CustomTypeModelSelectField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockSelectValueConfig<Model, State>>): prismic.SelectField<NonNullable<NonNullable<Model["config"]>["options"]>[number], State>;
@@ -1 +1 @@
1
- {"version":3,"file":"link.cjs","sources":["../../../src/value/link.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nimport { contentRelationship } from \"./contentRelationship\";\nimport { linkToMedia } from \"./linkToMedia\";\n\nexport type MockLinkValueConfig<\n\tLinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tModel extends prismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\ttype?: LinkType;\n\twithTargetBlank?: NonNullable<\n\t\tModel[\"config\"]\n\t>[\"allowTargetBlank\"] extends undefined\n\t\t? false\n\t\t: boolean;\n\t/**\n\t * A list of potential documents to which the field can be linked.\n\t */\n\tlinkableDocuments?: LinkType extends typeof prismic.LinkType.Document\n\t\t? prismic.PrismicDocument[]\n\t\t: never;\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockLinkValue<\n\tLinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tState extends prismic.FieldState = \"filled\",\n> = State extends \"empty\"\n\t? prismic.EmptyLinkField<LinkType>\n\t: LinkType extends typeof prismic.LinkType.Web\n\t? prismic.FilledLinkToWebField\n\t: LinkType extends typeof prismic.LinkType.Media\n\t? prismic.FilledLinkToMediaField\n\t: LinkType extends typeof prismic.LinkType.Document\n\t? prismic.FilledLinkToDocumentField\n\t: never;\n\nexport const link = <\n\tLinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tModel extends prismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockLinkValueConfig<LinkType, Model, State>,\n): MockLinkValue<LinkType, State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst type =\n\t\tconfig.type ||\n\t\tfaker.randomElement([\n\t\t\tprismic.LinkType.Web,\n\t\t\tprismic.LinkType.Document,\n\t\t\tprismic.LinkType.Media,\n\t\t]);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: type,\n\t\t} as MockLinkValue<LinkType, State>;\n\t} else {\n\t\tswitch (type) {\n\t\t\tcase prismic.LinkType.Document: {\n\t\t\t\treturn contentRelationship({\n\t\t\t\t\tfaker,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t\tlinkableDocuments: config.linkableDocuments,\n\t\t\t\t}) as unknown as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismic.LinkType.Media: {\n\t\t\t\treturn linkToMedia({\n\t\t\t\t\tfaker,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t}) as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismic.LinkType.Web:\n\t\t\tdefault: {\n\t\t\t\tconst model = config.model || modelGen.link({ faker });\n\n\t\t\t\treturn {\n\t\t\t\t\tlink_type: prismic.LinkType.Web,\n\t\t\t\t\turl: faker.url(),\n\t\t\t\t\ttarget:\n\t\t\t\t\t\tconfig.withTargetBlank ??\n\t\t\t\t\t\t(model.config?.allowTargetBlank && faker.boolean())\n\t\t\t\t\t\t\t? \"_blank\"\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t} as MockLinkValue<LinkType, State>;\n\t\t\t}\n\t\t}\n\t}\n};\n"],"names":["createFaker","prismic","contentRelationship","linkToMedia","modelGen.link"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA4Ca,MAAA,OAAO,CAKnB,WACmC;;AACnC,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAErD,QAAM,OACL,OAAO,QACP,MAAM,cAAc;AAAA,IACnBC,mBAAQ,SAAS;AAAA,IACjBA,mBAAQ,SAAS;AAAA,IACjBA,mBAAQ,SAAS;AAAA,EAAA,CACjB;AAEE,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAW;AAAA,IAAA;AAAA,SAEN;AACN,YAAQ,MAAM;AAAA,MACb,KAAKA,mBAAQ,SAAS,UAAU;AAC/B,eAAOC,wCAAoB;AAAA,UAC1B;AAAA,UACA,OAAO,OAAO;AAAA,UACd,mBAAmB,OAAO;AAAA,QAAA,CAC1B;AAAA,MACD;AAAA,MAED,KAAKD,mBAAQ,SAAS,OAAO;AAC5B,eAAOE,wBAAY;AAAA,UAClB;AAAA,UACA,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MACD;AAAA,MAED,KAAKF,mBAAQ,SAAS;AAAA,MACtB,SAAS;AACR,cAAM,QAAQ,OAAO,SAASG,OAAAA,KAAc,EAAE,OAAO;AAE9C,eAAA;AAAA,UACN,WAAWH,mBAAQ,SAAS;AAAA,UAC5B,KAAK,MAAM,IAAK;AAAA,UAChB,QACC,OAAO,sBACN,WAAM,WAAN,mBAAc,qBAAoB,MAAM,QAAO,KAC7C,WACA;AAAA,QAAA;AAAA,MAEL;AAAA,IACD;AAAA,EACD;AACF;;"}
1
+ {"version":3,"file":"link.cjs","sources":["../../../src/value/link.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nimport { contentRelationship } from \"./contentRelationship\";\nimport { linkToMedia } from \"./linkToMedia\";\n\nexport type MockLinkValueConfig<\n\tLinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tModel extends prismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\ttype?: LinkType;\n\twithTargetBlank?: NonNullable<\n\t\tModel[\"config\"]\n\t>[\"allowTargetBlank\"] extends undefined\n\t\t? false\n\t\t: boolean;\n\t/**\n\t * A list of potential documents to which the field can be linked.\n\t */\n\tlinkableDocuments?: LinkType extends typeof prismic.LinkType.Document\n\t\t? prismic.PrismicDocument[]\n\t\t: never;\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockLinkValue<\n\tLinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tState extends prismic.FieldState = \"filled\",\n> = State extends \"empty\"\n\t? prismic.EmptyLinkField<LinkType>\n\t: LinkType extends typeof prismic.LinkType.Web\n\t? prismic.FilledLinkToWebField\n\t: LinkType extends typeof prismic.LinkType.Media\n\t? prismic.FilledLinkToMediaField\n\t: LinkType extends typeof prismic.LinkType.Document\n\t? prismic.FilledContentRelationshipField\n\t: never;\n\nexport const link = <\n\tLinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tModel extends prismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockLinkValueConfig<LinkType, Model, State>,\n): MockLinkValue<LinkType, State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst type =\n\t\tconfig.type ||\n\t\tfaker.randomElement([\n\t\t\tprismic.LinkType.Web,\n\t\t\tprismic.LinkType.Document,\n\t\t\tprismic.LinkType.Media,\n\t\t]);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: type,\n\t\t} as MockLinkValue<LinkType, State>;\n\t} else {\n\t\tswitch (type) {\n\t\t\tcase prismic.LinkType.Document: {\n\t\t\t\treturn contentRelationship({\n\t\t\t\t\tfaker,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t\tlinkableDocuments: config.linkableDocuments,\n\t\t\t\t}) as unknown as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismic.LinkType.Media: {\n\t\t\t\treturn linkToMedia({\n\t\t\t\t\tfaker,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t}) as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismic.LinkType.Web:\n\t\t\tdefault: {\n\t\t\t\tconst model = config.model || modelGen.link({ faker });\n\n\t\t\t\treturn {\n\t\t\t\t\tlink_type: prismic.LinkType.Web,\n\t\t\t\t\turl: faker.url(),\n\t\t\t\t\ttarget:\n\t\t\t\t\t\tconfig.withTargetBlank ??\n\t\t\t\t\t\t(model.config?.allowTargetBlank && faker.boolean())\n\t\t\t\t\t\t\t? \"_blank\"\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t} as MockLinkValue<LinkType, State>;\n\t\t\t}\n\t\t}\n\t}\n};\n"],"names":["createFaker","prismic","contentRelationship","linkToMedia","modelGen.link"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA4Ca,MAAA,OAAO,CAKnB,WACmC;;AACnC,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAErD,QAAM,OACL,OAAO,QACP,MAAM,cAAc;AAAA,IACnBC,mBAAQ,SAAS;AAAA,IACjBA,mBAAQ,SAAS;AAAA,IACjBA,mBAAQ,SAAS;AAAA,EAAA,CACjB;AAEE,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAW;AAAA,IAAA;AAAA,SAEN;AACN,YAAQ,MAAM;AAAA,MACb,KAAKA,mBAAQ,SAAS,UAAU;AAC/B,eAAOC,wCAAoB;AAAA,UAC1B;AAAA,UACA,OAAO,OAAO;AAAA,UACd,mBAAmB,OAAO;AAAA,QAAA,CAC1B;AAAA,MACD;AAAA,MAED,KAAKD,mBAAQ,SAAS,OAAO;AAC5B,eAAOE,wBAAY;AAAA,UAClB;AAAA,UACA,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MACD;AAAA,MAED,KAAKF,mBAAQ,SAAS;AAAA,MACtB,SAAS;AACR,cAAM,QAAQ,OAAO,SAASG,OAAAA,KAAc,EAAE,OAAO;AAE9C,eAAA;AAAA,UACN,WAAWH,mBAAQ,SAAS;AAAA,UAC5B,KAAK,MAAM,IAAK;AAAA,UAChB,QACC,OAAO,sBACN,WAAM,WAAN,mBAAc,qBAAoB,MAAM,QAAO,KAC7C,WACA;AAAA,QAAA;AAAA,MAEL;AAAA,IACD;AAAA,EACD;AACF;;"}
@@ -8,6 +8,6 @@ export type MockLinkValueConfig<LinkType extends (typeof prismic.LinkType)[keyof
8
8
  */
9
9
  linkableDocuments?: LinkType extends typeof prismic.LinkType.Document ? prismic.PrismicDocument[] : never;
10
10
  } & MockValueConfig<Model> & MockValueStateConfig<State>;
11
- type MockLinkValue<LinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType], State extends prismic.FieldState = "filled"> = State extends "empty" ? prismic.EmptyLinkField<LinkType> : LinkType extends typeof prismic.LinkType.Web ? prismic.FilledLinkToWebField : LinkType extends typeof prismic.LinkType.Media ? prismic.FilledLinkToMediaField : LinkType extends typeof prismic.LinkType.Document ? prismic.FilledLinkToDocumentField : never;
11
+ type MockLinkValue<LinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType], State extends prismic.FieldState = "filled"> = State extends "empty" ? prismic.EmptyLinkField<LinkType> : LinkType extends typeof prismic.LinkType.Web ? prismic.FilledLinkToWebField : LinkType extends typeof prismic.LinkType.Media ? prismic.FilledLinkToMediaField : LinkType extends typeof prismic.LinkType.Document ? prismic.FilledContentRelationshipField : never;
12
12
  export declare const link: <LinkType extends "Document" | "Media" | "Web" | "Any" = "Document" | "Media" | "Web" | "Any", Model extends prismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField, State extends prismic.FieldState = "filled">(config: MockLinkValueConfig<LinkType, Model, State>) => MockLinkValue<LinkType, State>;
13
13
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sources":["../../../src/value/link.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nimport { contentRelationship } from \"./contentRelationship\";\nimport { linkToMedia } from \"./linkToMedia\";\n\nexport type MockLinkValueConfig<\n\tLinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tModel extends prismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\ttype?: LinkType;\n\twithTargetBlank?: NonNullable<\n\t\tModel[\"config\"]\n\t>[\"allowTargetBlank\"] extends undefined\n\t\t? false\n\t\t: boolean;\n\t/**\n\t * A list of potential documents to which the field can be linked.\n\t */\n\tlinkableDocuments?: LinkType extends typeof prismic.LinkType.Document\n\t\t? prismic.PrismicDocument[]\n\t\t: never;\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockLinkValue<\n\tLinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tState extends prismic.FieldState = \"filled\",\n> = State extends \"empty\"\n\t? prismic.EmptyLinkField<LinkType>\n\t: LinkType extends typeof prismic.LinkType.Web\n\t? prismic.FilledLinkToWebField\n\t: LinkType extends typeof prismic.LinkType.Media\n\t? prismic.FilledLinkToMediaField\n\t: LinkType extends typeof prismic.LinkType.Document\n\t? prismic.FilledLinkToDocumentField\n\t: never;\n\nexport const link = <\n\tLinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tModel extends prismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockLinkValueConfig<LinkType, Model, State>,\n): MockLinkValue<LinkType, State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst type =\n\t\tconfig.type ||\n\t\tfaker.randomElement([\n\t\t\tprismic.LinkType.Web,\n\t\t\tprismic.LinkType.Document,\n\t\t\tprismic.LinkType.Media,\n\t\t]);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: type,\n\t\t} as MockLinkValue<LinkType, State>;\n\t} else {\n\t\tswitch (type) {\n\t\t\tcase prismic.LinkType.Document: {\n\t\t\t\treturn contentRelationship({\n\t\t\t\t\tfaker,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t\tlinkableDocuments: config.linkableDocuments,\n\t\t\t\t}) as unknown as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismic.LinkType.Media: {\n\t\t\t\treturn linkToMedia({\n\t\t\t\t\tfaker,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t}) as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismic.LinkType.Web:\n\t\t\tdefault: {\n\t\t\t\tconst model = config.model || modelGen.link({ faker });\n\n\t\t\t\treturn {\n\t\t\t\t\tlink_type: prismic.LinkType.Web,\n\t\t\t\t\turl: faker.url(),\n\t\t\t\t\ttarget:\n\t\t\t\t\t\tconfig.withTargetBlank ??\n\t\t\t\t\t\t(model.config?.allowTargetBlank && faker.boolean())\n\t\t\t\t\t\t\t? \"_blank\"\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t} as MockLinkValue<LinkType, State>;\n\t\t\t}\n\t\t}\n\t}\n};\n"],"names":["modelGen.link"],"mappings":";;;;;AA4Ca,MAAA,OAAO,CAKnB,WACmC;;AACnC,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAErD,QAAM,OACL,OAAO,QACP,MAAM,cAAc;AAAA,IACnB,QAAQ,SAAS;AAAA,IACjB,QAAQ,SAAS;AAAA,IACjB,QAAQ,SAAS;AAAA,EAAA,CACjB;AAEE,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAW;AAAA,IAAA;AAAA,SAEN;AACN,YAAQ,MAAM;AAAA,MACb,KAAK,QAAQ,SAAS,UAAU;AAC/B,eAAO,oBAAoB;AAAA,UAC1B;AAAA,UACA,OAAO,OAAO;AAAA,UACd,mBAAmB,OAAO;AAAA,QAAA,CAC1B;AAAA,MACD;AAAA,MAED,KAAK,QAAQ,SAAS,OAAO;AAC5B,eAAO,YAAY;AAAA,UAClB;AAAA,UACA,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MACD;AAAA,MAED,KAAK,QAAQ,SAAS;AAAA,MACtB,SAAS;AACR,cAAM,QAAQ,OAAO,SAASA,OAAc,EAAE,OAAO;AAE9C,eAAA;AAAA,UACN,WAAW,QAAQ,SAAS;AAAA,UAC5B,KAAK,MAAM,IAAK;AAAA,UAChB,QACC,OAAO,sBACN,WAAM,WAAN,mBAAc,qBAAoB,MAAM,QAAO,KAC7C,WACA;AAAA,QAAA;AAAA,MAEL;AAAA,IACD;AAAA,EACD;AACF;"}
1
+ {"version":3,"file":"link.js","sources":["../../../src/value/link.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nimport { contentRelationship } from \"./contentRelationship\";\nimport { linkToMedia } from \"./linkToMedia\";\n\nexport type MockLinkValueConfig<\n\tLinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tModel extends prismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\ttype?: LinkType;\n\twithTargetBlank?: NonNullable<\n\t\tModel[\"config\"]\n\t>[\"allowTargetBlank\"] extends undefined\n\t\t? false\n\t\t: boolean;\n\t/**\n\t * A list of potential documents to which the field can be linked.\n\t */\n\tlinkableDocuments?: LinkType extends typeof prismic.LinkType.Document\n\t\t? prismic.PrismicDocument[]\n\t\t: never;\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockLinkValue<\n\tLinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tState extends prismic.FieldState = \"filled\",\n> = State extends \"empty\"\n\t? prismic.EmptyLinkField<LinkType>\n\t: LinkType extends typeof prismic.LinkType.Web\n\t? prismic.FilledLinkToWebField\n\t: LinkType extends typeof prismic.LinkType.Media\n\t? prismic.FilledLinkToMediaField\n\t: LinkType extends typeof prismic.LinkType.Document\n\t? prismic.FilledContentRelationshipField\n\t: never;\n\nexport const link = <\n\tLinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tModel extends prismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockLinkValueConfig<LinkType, Model, State>,\n): MockLinkValue<LinkType, State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst type =\n\t\tconfig.type ||\n\t\tfaker.randomElement([\n\t\t\tprismic.LinkType.Web,\n\t\t\tprismic.LinkType.Document,\n\t\t\tprismic.LinkType.Media,\n\t\t]);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: type,\n\t\t} as MockLinkValue<LinkType, State>;\n\t} else {\n\t\tswitch (type) {\n\t\t\tcase prismic.LinkType.Document: {\n\t\t\t\treturn contentRelationship({\n\t\t\t\t\tfaker,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t\tlinkableDocuments: config.linkableDocuments,\n\t\t\t\t}) as unknown as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismic.LinkType.Media: {\n\t\t\t\treturn linkToMedia({\n\t\t\t\t\tfaker,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t}) as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismic.LinkType.Web:\n\t\t\tdefault: {\n\t\t\t\tconst model = config.model || modelGen.link({ faker });\n\n\t\t\t\treturn {\n\t\t\t\t\tlink_type: prismic.LinkType.Web,\n\t\t\t\t\turl: faker.url(),\n\t\t\t\t\ttarget:\n\t\t\t\t\t\tconfig.withTargetBlank ??\n\t\t\t\t\t\t(model.config?.allowTargetBlank && faker.boolean())\n\t\t\t\t\t\t\t? \"_blank\"\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t} as MockLinkValue<LinkType, State>;\n\t\t\t}\n\t\t}\n\t}\n};\n"],"names":["modelGen.link"],"mappings":";;;;;AA4Ca,MAAA,OAAO,CAKnB,WACmC;;AACnC,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAErD,QAAM,OACL,OAAO,QACP,MAAM,cAAc;AAAA,IACnB,QAAQ,SAAS;AAAA,IACjB,QAAQ,SAAS;AAAA,IACjB,QAAQ,SAAS;AAAA,EAAA,CACjB;AAEE,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAW;AAAA,IAAA;AAAA,SAEN;AACN,YAAQ,MAAM;AAAA,MACb,KAAK,QAAQ,SAAS,UAAU;AAC/B,eAAO,oBAAoB;AAAA,UAC1B;AAAA,UACA,OAAO,OAAO;AAAA,UACd,mBAAmB,OAAO;AAAA,QAAA,CAC1B;AAAA,MACD;AAAA,MAED,KAAK,QAAQ,SAAS,OAAO;AAC5B,eAAO,YAAY;AAAA,UAClB;AAAA,UACA,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MACD;AAAA,MAED,KAAK,QAAQ,SAAS;AAAA,MACtB,SAAS;AACR,cAAM,QAAQ,OAAO,SAASA,OAAc,EAAE,OAAO;AAE9C,eAAA;AAAA,UACN,WAAW,QAAQ,SAAS;AAAA,UAC5B,KAAK,MAAM,IAAK;AAAA,UAChB,QACC,OAAO,sBACN,WAAM,WAAN,mBAAc,qBAAoB,MAAM,QAAO,KAC7C,WACA;AAAA,QAAA;AAAA,MAEL;AAAA,IACD;AAAA,EACD;AACF;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prismicio/mock",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Generate mock Prismic documents, fields, Slices, and models for development and testing environments",
5
5
  "keywords": [
6
6
  "typescript",
@@ -53,7 +53,8 @@
53
53
  "release:alpha:dry": "standard-version --release-as major --prerelease alpha --dry-run",
54
54
  "release:dry": "standard-version --dry-run",
55
55
  "size": "size-limit",
56
- "test": "npm run lint && npm run unit && npm run build && npm run size",
56
+ "test": "npm run lint && npm run types && npm run unit && npm run build && npm run size",
57
+ "types": "tsc --noEmit",
57
58
  "unit": "nyc --reporter=lcovonly --reporter=text --exclude-after-remap=false ava"
58
59
  },
59
60
  "dependencies": {
@@ -62,6 +63,7 @@
62
63
  "devDependencies": {
63
64
  "@prismicio/client": "^7.0.1",
64
65
  "@size-limit/preset-small-lib": "^8.2.4",
66
+ "@types/node": "^20.3.0",
65
67
  "@typescript-eslint/eslint-plugin": "^5.59.8",
66
68
  "@typescript-eslint/parser": "^5.59.8",
67
69
  "ava": "^5.3.0",
@@ -92,7 +92,7 @@ const getValueConfigType = <Model extends prismic.CustomTypeModelField>(
92
92
  case prismic.CustomTypeModelFieldType.UID:
93
93
  return "uid";
94
94
 
95
- case prismic.CustomTypeModelFieldType.IntegrationField:
95
+ case prismic.CustomTypeModelFieldType.Integration:
96
96
  return "integration";
97
97
 
98
98
  case prismic.CustomTypeModelFieldType.Slices:
package/src/types.ts CHANGED
@@ -178,18 +178,18 @@ export type ModelValue<
178
178
  : T extends prismic.CustomTypeModelSliceZoneField
179
179
  ? prismic.SliceZone<
180
180
  ValueOf<{
181
- [P in keyof NonNullable<T["config"]>["choices"] as P extends string
182
- ? P
183
- : never]: NonNullable<
184
- T["config"]
185
- >["choices"][P] extends prismic.CustomTypeModelSlice
181
+ [P in keyof NonNullable<
182
+ NonNullable<T["config"]>["choices"]
183
+ > as P extends string ? P : never]: NonNullable<
184
+ NonNullable<T["config"]>["choices"]
185
+ >[P] extends prismic.CustomTypeModelSlice
186
186
  ? CustomTypeModelSliceValue<
187
- NonNullable<T["config"]>["choices"][P],
187
+ NonNullable<NonNullable<T["config"]>["choices"]>[P],
188
188
  P extends string ? P : string
189
189
  >
190
190
  : NonNullable<
191
- T["config"]
192
- >["choices"][P] extends prismic.CustomTypeModelSharedSlice
191
+ NonNullable<T["config"]>["choices"]
192
+ >[P] extends prismic.CustomTypeModelSharedSlice
193
193
  ? prismic.SharedSlice<P extends string ? P : string>
194
194
  : never;
195
195
  }>,
package/src/value/link.ts CHANGED
@@ -39,7 +39,7 @@ type MockLinkValue<
39
39
  : LinkType extends typeof prismic.LinkType.Media
40
40
  ? prismic.FilledLinkToMediaField
41
41
  : LinkType extends typeof prismic.LinkType.Document
42
- ? prismic.FilledLinkToDocumentField
42
+ ? prismic.FilledContentRelationshipField
43
43
  : never;
44
44
 
45
45
  export const link = <