prismic-ts-codegen 0.1.11 → 0.1.13
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/_node_modules/quick-lru/index.cjs +234 -0
- package/dist/_node_modules/quick-lru/index.cjs.map +1 -0
- package/dist/_node_modules/quick-lru/index.js +235 -0
- package/dist/_node_modules/quick-lru/index.js.map +1 -0
- package/dist/constants.cjs +19 -21
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.ts +2 -3
- package/dist/constants.js +19 -21
- package/dist/constants.js.map +1 -1
- package/dist/generateTypes.cjs +71 -90
- package/dist/generateTypes.cjs.map +1 -1
- package/dist/generateTypes.d.ts +2 -1
- package/dist/generateTypes.js +71 -90
- package/dist/generateTypes.js.map +1 -1
- package/dist/lib/addBlankLine.cjs +12 -0
- package/dist/lib/addBlankLine.cjs.map +1 -0
- package/dist/lib/addBlankLine.d.ts +5 -0
- package/dist/lib/addBlankLine.js +12 -0
- package/dist/lib/addBlankLine.js.map +1 -0
- package/dist/lib/addLine.cjs +8 -0
- package/dist/lib/addLine.cjs.map +1 -0
- package/dist/lib/addLine.d.ts +1 -0
- package/dist/lib/addLine.js +8 -0
- package/dist/lib/addLine.js.map +1 -0
- package/dist/lib/addSection.cjs +8 -0
- package/dist/lib/addSection.cjs.map +1 -0
- package/dist/lib/addSection.d.ts +1 -0
- package/dist/lib/addSection.js +8 -0
- package/dist/lib/addSection.js.map +1 -0
- package/dist/lib/addTrailingNewLine.cjs +11 -0
- package/dist/lib/addTrailingNewLine.cjs.map +1 -0
- package/dist/lib/addTrailingNewLine.d.ts +5 -0
- package/dist/lib/addTrailingNewLine.js +11 -0
- package/dist/lib/addTrailingNewLine.js.map +1 -0
- package/dist/lib/buildCustomTypeDataType.cjs +51 -0
- package/dist/lib/buildCustomTypeDataType.cjs.map +1 -0
- package/dist/lib/buildCustomTypeDataType.d.ts +13 -0
- package/dist/lib/buildCustomTypeDataType.js +51 -0
- package/dist/lib/buildCustomTypeDataType.js.map +1 -0
- package/dist/lib/buildCustomTypeType.cjs +60 -0
- package/dist/lib/buildCustomTypeType.cjs.map +1 -0
- package/dist/lib/buildCustomTypeType.d.ts +17 -0
- package/dist/lib/buildCustomTypeType.js +60 -0
- package/dist/lib/buildCustomTypeType.js.map +1 -0
- package/dist/lib/buildFieldDocs.cjs +67 -35
- package/dist/lib/buildFieldDocs.cjs.map +1 -1
- package/dist/lib/buildFieldDocs.d.ts +7 -11
- package/dist/lib/buildFieldDocs.js +67 -35
- package/dist/lib/buildFieldDocs.js.map +1 -1
- package/dist/lib/buildFieldProperties.cjs +300 -0
- package/dist/lib/buildFieldProperties.cjs.map +1 -0
- package/dist/lib/buildFieldProperties.d.ts +14 -0
- package/dist/lib/buildFieldProperties.js +300 -0
- package/dist/lib/buildFieldProperties.js.map +1 -0
- package/dist/lib/buildSharedSliceType.cjs +140 -0
- package/dist/lib/buildSharedSliceType.cjs.map +1 -0
- package/dist/lib/buildSharedSliceType.d.ts +16 -0
- package/dist/lib/buildSharedSliceType.js +140 -0
- package/dist/lib/buildSharedSliceType.js.map +1 -0
- package/dist/lib/buildTypeName.cjs +4 -2
- package/dist/lib/buildTypeName.cjs.map +1 -1
- package/dist/lib/buildTypeName.js +4 -2
- package/dist/lib/buildTypeName.js.map +1 -1
- package/dist/lib/buildUnion.cjs +7 -0
- package/dist/lib/buildUnion.cjs.map +1 -0
- package/dist/lib/buildUnion.d.ts +1 -0
- package/dist/lib/buildUnion.js +7 -0
- package/dist/lib/buildUnion.js.map +1 -0
- package/dist/lib/checkHasUIDFIeld.cjs +7 -0
- package/dist/lib/checkHasUIDFIeld.cjs.map +1 -0
- package/dist/lib/checkHasUIDFIeld.d.ts +2 -0
- package/dist/lib/checkHasUIDFIeld.js +7 -0
- package/dist/lib/checkHasUIDFIeld.js.map +1 -0
- package/dist/lib/getAPIIDPath.cjs +18 -14
- package/dist/lib/getAPIIDPath.cjs.map +1 -1
- package/dist/lib/getAPIIDPath.d.ts +4 -8
- package/dist/lib/getAPIIDPath.js +18 -14
- package/dist/lib/getAPIIDPath.js.map +1 -1
- package/dist/lib/getCacheKey.cjs +25 -0
- package/dist/lib/getCacheKey.cjs.map +1 -0
- package/dist/lib/getCacheKey.d.ts +9 -0
- package/dist/lib/getCacheKey.js +8 -0
- package/dist/lib/getCacheKey.js.map +1 -0
- package/dist/lib/getHumanReadableModelName.cjs +13 -17
- package/dist/lib/getHumanReadableModelName.cjs.map +1 -1
- package/dist/lib/getHumanReadableModelName.d.ts +3 -3
- package/dist/lib/getHumanReadableModelName.js +13 -17
- package/dist/lib/getHumanReadableModelName.js.map +1 -1
- package/dist/lib/{getHumanReadableFieldPath.cjs → getHumanReadablePath.cjs} +8 -8
- package/dist/lib/getHumanReadablePath.cjs.map +1 -0
- package/dist/lib/getHumanReadablePath.d.ts +6 -0
- package/dist/lib/{getHumanReadableFieldPath.js → getHumanReadablePath.js} +8 -8
- package/dist/lib/getHumanReadablePath.js.map +1 -0
- package/dist/types.d.ts +9 -1
- package/package.json +18 -17
- package/src/constants.ts +19 -22
- package/src/generateTypes.ts +109 -108
- package/src/lib/addBlankLine.ts +13 -0
- package/src/lib/addLine.ts +5 -0
- package/src/lib/addSection.ts +5 -0
- package/src/lib/addTrailingNewLine.ts +14 -0
- package/src/lib/buildCustomTypeDataType.ts +74 -0
- package/src/lib/buildCustomTypeType.ts +101 -0
- package/src/lib/buildFieldDocs.ts +128 -68
- package/src/lib/buildFieldProperties.ts +513 -0
- package/src/lib/buildSharedSliceType.ts +213 -0
- package/src/lib/buildTypeName.ts +4 -2
- package/src/lib/buildUnion.ts +3 -0
- package/src/lib/checkHasUIDFIeld.ts +5 -0
- package/src/lib/getAPIIDPath.ts +40 -41
- package/src/lib/getCacheKey.ts +13 -0
- package/src/lib/getHumanReadableModelName.ts +23 -20
- package/src/lib/getHumanReadablePath.ts +24 -0
- package/src/types.ts +11 -1
- package/dist/lib/addInterfacePropertiesForFields.cjs +0 -489
- package/dist/lib/addInterfacePropertiesForFields.cjs.map +0 -1
- package/dist/lib/addInterfacePropertiesForFields.d.ts +0 -21
- package/dist/lib/addInterfacePropertiesForFields.js +0 -489
- package/dist/lib/addInterfacePropertiesForFields.js.map +0 -1
- package/dist/lib/addTypeAliasForCustomType.cjs +0 -81
- package/dist/lib/addTypeAliasForCustomType.cjs.map +0 -1
- package/dist/lib/addTypeAliasForCustomType.d.ts +0 -11
- package/dist/lib/addTypeAliasForCustomType.js +0 -81
- package/dist/lib/addTypeAliasForCustomType.js.map +0 -1
- package/dist/lib/addTypeAliasForSharedSlice.cjs +0 -149
- package/dist/lib/addTypeAliasForSharedSlice.cjs.map +0 -1
- package/dist/lib/addTypeAliasForSharedSlice.d.ts +0 -10
- package/dist/lib/addTypeAliasForSharedSlice.js +0 -149
- package/dist/lib/addTypeAliasForSharedSlice.js.map +0 -1
- package/dist/lib/buildSharedSliceInterfaceNamePart.cjs +0 -8
- package/dist/lib/buildSharedSliceInterfaceNamePart.cjs.map +0 -1
- package/dist/lib/buildSharedSliceInterfaceNamePart.d.ts +0 -5
- package/dist/lib/buildSharedSliceInterfaceNamePart.js +0 -8
- package/dist/lib/buildSharedSliceInterfaceNamePart.js.map +0 -1
- package/dist/lib/getFieldDocumentationURL.cjs +0 -8
- package/dist/lib/getFieldDocumentationURL.cjs.map +0 -1
- package/dist/lib/getFieldDocumentationURL.d.ts +0 -6
- package/dist/lib/getFieldDocumentationURL.js +0 -8
- package/dist/lib/getFieldDocumentationURL.js.map +0 -1
- package/dist/lib/getHumanReadableFieldPath.cjs.map +0 -1
- package/dist/lib/getHumanReadableFieldPath.d.ts +0 -10
- package/dist/lib/getHumanReadableFieldPath.js.map +0 -1
- package/dist/lib/getHumanReadableFieldType.cjs +0 -36
- package/dist/lib/getHumanReadableFieldType.cjs.map +0 -1
- package/dist/lib/getHumanReadableFieldType.d.ts +0 -6
- package/dist/lib/getHumanReadableFieldType.js +0 -36
- package/dist/lib/getHumanReadableFieldType.js.map +0 -1
- package/dist/lib/getSourceFileText.cjs +0 -9
- package/dist/lib/getSourceFileText.cjs.map +0 -1
- package/dist/lib/getSourceFileText.d.ts +0 -2
- package/dist/lib/getSourceFileText.js +0 -9
- package/dist/lib/getSourceFileText.js.map +0 -1
- package/dist/lib/hasOwnProperty.cjs +0 -7
- package/dist/lib/hasOwnProperty.cjs.map +0 -1
- package/dist/lib/hasOwnProperty.d.ts +0 -10
- package/dist/lib/hasOwnProperty.js +0 -7
- package/dist/lib/hasOwnProperty.js.map +0 -1
- package/dist/lib/isCustomTypeModel.cjs +0 -7
- package/dist/lib/isCustomTypeModel.cjs.map +0 -1
- package/dist/lib/isCustomTypeModel.d.ts +0 -2
- package/dist/lib/isCustomTypeModel.js +0 -7
- package/dist/lib/isCustomTypeModel.js.map +0 -1
- package/dist/lib/isCustomTypeModelField.cjs +0 -7
- package/dist/lib/isCustomTypeModelField.cjs.map +0 -1
- package/dist/lib/isCustomTypeModelField.d.ts +0 -2
- package/dist/lib/isCustomTypeModelField.js +0 -7
- package/dist/lib/isCustomTypeModelField.js.map +0 -1
- package/dist/lib/isCustomTypeModelSlice.cjs +0 -8
- package/dist/lib/isCustomTypeModelSlice.cjs.map +0 -1
- package/dist/lib/isCustomTypeModelSlice.d.ts +0 -2
- package/dist/lib/isCustomTypeModelSlice.js +0 -8
- package/dist/lib/isCustomTypeModelSlice.js.map +0 -1
- package/dist/lib/isSharedSliceModel.cjs +0 -8
- package/dist/lib/isSharedSliceModel.cjs.map +0 -1
- package/dist/lib/isSharedSliceModel.d.ts +0 -2
- package/dist/lib/isSharedSliceModel.js +0 -8
- package/dist/lib/isSharedSliceModel.js.map +0 -1
- package/dist/lib/pascalCase.cjs +0 -8
- package/dist/lib/pascalCase.cjs.map +0 -1
- package/dist/lib/pascalCase.d.ts +0 -1
- package/dist/lib/pascalCase.js +0 -8
- package/dist/lib/pascalCase.js.map +0 -1
- package/dist/lib/writeFieldDocsDescription.cjs +0 -29
- package/dist/lib/writeFieldDocsDescription.cjs.map +0 -1
- package/dist/lib/writeFieldDocsDescription.d.ts +0 -13
- package/dist/lib/writeFieldDocsDescription.js +0 -29
- package/dist/lib/writeFieldDocsDescription.js.map +0 -1
- package/src/lib/addInterfacePropertiesForFields.ts +0 -665
- package/src/lib/addTypeAliasForCustomType.ts +0 -120
- package/src/lib/addTypeAliasForSharedSlice.ts +0 -201
- package/src/lib/buildSharedSliceInterfaceNamePart.ts +0 -11
- package/src/lib/getFieldDocumentationURL.ts +0 -15
- package/src/lib/getHumanReadableFieldPath.ts +0 -36
- package/src/lib/getHumanReadableFieldType.ts +0 -55
- package/src/lib/getSourceFileText.ts +0 -14
- package/src/lib/hasOwnProperty.ts +0 -15
- package/src/lib/isCustomTypeModel.ts +0 -5
- package/src/lib/isCustomTypeModelField.ts +0 -7
- package/src/lib/isCustomTypeModelSlice.ts +0 -14
- package/src/lib/isSharedSliceModel.ts +0 -14
- package/src/lib/pascalCase.ts +0 -9
- package/src/lib/writeFieldDocsDescription.ts +0 -51
package/src/lib/buildTypeName.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { pascalCase } from "
|
|
1
|
+
import { pascalCase, pascalCaseTransformMerge } from "pascal-case";
|
|
2
2
|
|
|
3
3
|
export const buildTypeName = (...parts: string[]) => {
|
|
4
|
-
let name = pascalCase(parts.filter(Boolean).join(" ")
|
|
4
|
+
let name = pascalCase(parts.filter(Boolean).join(" "), {
|
|
5
|
+
transform: pascalCaseTransformMerge,
|
|
6
|
+
});
|
|
5
7
|
|
|
6
8
|
if (/^[0-9]/.test(name) ? "_" : "") {
|
|
7
9
|
name = `_${name}`;
|
package/src/lib/getAPIIDPath.ts
CHANGED
|
@@ -1,45 +1,44 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
SharedSliceModel,
|
|
6
|
-
} from "@prismicio/client";
|
|
7
|
-
|
|
8
|
-
import { PathElement } from "../types";
|
|
9
|
-
|
|
10
|
-
import { isCustomTypeModelField } from "./isCustomTypeModelField";
|
|
11
|
-
import { isCustomTypeModelSlice } from "./isCustomTypeModelSlice";
|
|
12
|
-
import { isSharedSliceModel } from "./isSharedSliceModel";
|
|
13
|
-
|
|
14
|
-
type GetAPIIDPathConfig = {
|
|
15
|
-
path: [
|
|
16
|
-
PathElement<CustomTypeModel | SharedSliceModel>,
|
|
17
|
-
...PathElement<CustomTypeModelField | CustomTypeModelSlice>[],
|
|
18
|
-
];
|
|
1
|
+
import { FieldPath } from "../types";
|
|
2
|
+
|
|
3
|
+
type GetAPIIDPathArgs = {
|
|
4
|
+
path: FieldPath;
|
|
19
5
|
};
|
|
20
6
|
|
|
21
|
-
export
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
7
|
+
export function getAPIIDPath(args: GetAPIIDPathArgs) {
|
|
8
|
+
let result = "";
|
|
9
|
+
|
|
10
|
+
for (let i = 0; i < args.path.length; i++) {
|
|
11
|
+
if (i > 0) {
|
|
12
|
+
result += ".";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const element = args.path[i];
|
|
16
|
+
|
|
17
|
+
if (
|
|
18
|
+
element.model &&
|
|
19
|
+
"type" in element.model &&
|
|
20
|
+
(element.model.type === "Group" || element.model.type === "Slices")
|
|
21
|
+
) {
|
|
22
|
+
result += `${element.name}[]`;
|
|
23
|
+
} else {
|
|
24
|
+
if (element.name === "items") {
|
|
25
|
+
const previousElement = args.path[i - 1];
|
|
40
26
|
|
|
41
|
-
|
|
27
|
+
if (
|
|
28
|
+
(previousElement.model && "json" in previousElement.model) ||
|
|
29
|
+
(previousElement.model &&
|
|
30
|
+
"type" in previousElement.model &&
|
|
31
|
+
previousElement.model.type === "SharedSlice")
|
|
32
|
+
) {
|
|
33
|
+
result += `${element.name}[]`;
|
|
34
|
+
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
42
37
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
38
|
+
|
|
39
|
+
result += element.name;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as crypto from "node:crypto";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Returns a key based on the provided input that can be used as a cache
|
|
5
|
+
* identifier.
|
|
6
|
+
*
|
|
7
|
+
* @param input - The value used to create a key.
|
|
8
|
+
*
|
|
9
|
+
* @returns The cache key.
|
|
10
|
+
*/
|
|
11
|
+
export const getCacheKey = (input: unknown): string => {
|
|
12
|
+
return crypto.createHash("sha1").update(JSON.stringify(input)).digest("hex");
|
|
13
|
+
};
|
|
@@ -5,13 +5,8 @@ import type {
|
|
|
5
5
|
SharedSliceModel,
|
|
6
6
|
} from "@prismicio/client";
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
import { isCustomTypeModelSlice } from "./isCustomTypeModelSlice";
|
|
11
|
-
import { isSharedSliceModel } from "./isSharedSliceModel";
|
|
12
|
-
|
|
13
|
-
type GetModelHumanNameConfig = {
|
|
14
|
-
id: string;
|
|
8
|
+
type GetModelHumanNameArgs = {
|
|
9
|
+
name: string;
|
|
15
10
|
model:
|
|
16
11
|
| CustomTypeModel
|
|
17
12
|
| SharedSliceModel
|
|
@@ -20,23 +15,31 @@ type GetModelHumanNameConfig = {
|
|
|
20
15
|
};
|
|
21
16
|
|
|
22
17
|
export const getHumanReadableModelName = (
|
|
23
|
-
|
|
18
|
+
args: GetModelHumanNameArgs,
|
|
24
19
|
): string => {
|
|
25
|
-
if (
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return
|
|
29
|
-
} else if (
|
|
30
|
-
|
|
20
|
+
if ("json" in args.model) {
|
|
21
|
+
// Custom type model
|
|
22
|
+
|
|
23
|
+
return args.model.label || args.model.id;
|
|
24
|
+
} else if ("type" in args.model && args.model.type === "SharedSlice") {
|
|
25
|
+
// Shared Slice model
|
|
26
|
+
|
|
27
|
+
return args.model.name;
|
|
28
|
+
} else if ("type" in args.model && args.model.type === "Slice") {
|
|
29
|
+
// Legacy Slice model
|
|
30
|
+
|
|
31
|
+
return args.model.fieldset || args.name;
|
|
32
|
+
} else if ("type" in args.model) {
|
|
33
|
+
// Field model
|
|
34
|
+
|
|
35
|
+
if (args.model.config && "label" in args.model.config) {
|
|
31
36
|
// Non-Slice Zone fields
|
|
32
|
-
return
|
|
33
|
-
} else if (
|
|
37
|
+
return args.model.config.label || args.name;
|
|
38
|
+
} else if (args.model.config && "fieldset" in args.model) {
|
|
34
39
|
// Slice Zone
|
|
35
|
-
return
|
|
40
|
+
return args.model.fieldset || args.name;
|
|
36
41
|
}
|
|
37
|
-
} else if (isCustomTypeModelSlice(config.model)) {
|
|
38
|
-
return config.model.fieldset || config.id;
|
|
39
42
|
}
|
|
40
43
|
|
|
41
|
-
return `\`${
|
|
44
|
+
return `\`${args.name}\``;
|
|
42
45
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { FieldPath } from "../types";
|
|
2
|
+
|
|
3
|
+
import { getHumanReadableModelName } from "./getHumanReadableModelName";
|
|
4
|
+
|
|
5
|
+
type GetHumanReadablePathArgs = {
|
|
6
|
+
path: FieldPath;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export function getHumanReadablePath(args: GetHumanReadablePathArgs) {
|
|
10
|
+
return args.path
|
|
11
|
+
.map((element) => {
|
|
12
|
+
if (element.label) {
|
|
13
|
+
return element.label;
|
|
14
|
+
} else if (element.model) {
|
|
15
|
+
return getHumanReadableModelName({
|
|
16
|
+
model: element.model,
|
|
17
|
+
name: element.name,
|
|
18
|
+
});
|
|
19
|
+
} else {
|
|
20
|
+
return element.name;
|
|
21
|
+
}
|
|
22
|
+
})
|
|
23
|
+
.join(" → ");
|
|
24
|
+
}
|
package/src/types.ts
CHANGED
|
@@ -12,11 +12,21 @@ export type PathElement<
|
|
|
12
12
|
| CustomTypeModelField
|
|
13
13
|
| CustomTypeModelSlice,
|
|
14
14
|
> = {
|
|
15
|
-
|
|
15
|
+
name: string;
|
|
16
16
|
model?: Model;
|
|
17
17
|
label?: string;
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
+
export type FieldPath = [
|
|
21
|
+
PathElement<CustomTypeModel | SharedSliceModel>,
|
|
22
|
+
...PathElement<CustomTypeModelField | CustomTypeModelSlice>[],
|
|
23
|
+
];
|
|
24
|
+
|
|
25
|
+
export type AuxiliaryType = {
|
|
26
|
+
code: string;
|
|
27
|
+
name: string;
|
|
28
|
+
};
|
|
29
|
+
|
|
20
30
|
export type FieldConfigs = {
|
|
21
31
|
embed?: {
|
|
22
32
|
providerTypes?: Record<string, string>;
|