@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.
- package/dist/lib/valueForModelMap.cjs +1 -1
- package/dist/lib/valueForModelMap.cjs.map +1 -1
- package/dist/lib/valueForModelMap.js +1 -1
- package/dist/lib/valueForModelMap.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/value/createValueMockFactory.d.ts +1 -1
- package/dist/value/link.cjs.map +1 -1
- package/dist/value/link.d.ts +1 -1
- package/dist/value/link.js.map +1 -1
- package/package.json +4 -2
- package/src/lib/valueForModelMap.ts +1 -1
- package/src/types.ts +8 -8
- package/src/value/link.ts +1 -1
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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>;
|
package/dist/value/link.cjs.map
CHANGED
|
@@ -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.
|
|
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;;"}
|
package/dist/value/link.d.ts
CHANGED
|
@@ -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.
|
|
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 {};
|
package/dist/value/link.js.map
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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<
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
T["config"]
|
|
185
|
-
>[
|
|
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
|
-
>[
|
|
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.
|
|
42
|
+
? prismic.FilledContentRelationshipField
|
|
43
43
|
: never;
|
|
44
44
|
|
|
45
45
|
export const link = <
|