apify-schema-tools 3.0.0 → 3.2.0
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/.cspell/custom-dictionary.txt +1 -0
- package/.node-version +1 -1
- package/CHANGELOG.md +13 -1
- package/biome.json +24 -18
- package/check-samples.sh +4 -0
- package/dist/apify-schema-tools.js +16 -21
- package/dist/apify-schema-tools.js.map +1 -1
- package/dist/apify.d.ts +1 -1
- package/dist/apify.d.ts.map +1 -1
- package/dist/apify.js +22 -8
- package/dist/apify.js.map +1 -1
- package/dist/cli/check.d.ts +5 -0
- package/dist/cli/check.d.ts.map +1 -0
- package/dist/cli/check.js +86 -0
- package/dist/cli/check.js.map +1 -0
- package/dist/cli/init.d.ts +5 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +92 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/sync.d.ts +5 -0
- package/dist/cli/sync.d.ts.map +1 -0
- package/dist/cli/sync.js +112 -0
- package/dist/cli/sync.js.map +1 -0
- package/dist/configuration.d.ts +16 -5
- package/dist/configuration.d.ts.map +1 -1
- package/dist/configuration.js +19 -7
- package/dist/configuration.js.map +1 -1
- package/dist/json-schema-conflicts.js +3 -3
- package/dist/json-schema-conflicts.js.map +1 -1
- package/dist/json-schemas.d.ts +1 -1
- package/dist/json-schemas.d.ts.map +1 -1
- package/dist/json-schemas.js +1 -1
- package/dist/json-schemas.js.map +1 -1
- package/dist/main.d.ts +4 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +19 -0
- package/dist/main.js.map +1 -0
- package/dist/middle-schema/compare-schemas.d.ts +3 -0
- package/dist/middle-schema/compare-schemas.d.ts.map +1 -0
- package/dist/middle-schema/compare-schemas.js +90 -0
- package/dist/middle-schema/compare-schemas.js.map +1 -0
- package/dist/middle-schema/generate-typescript.d.ts +7 -0
- package/dist/middle-schema/generate-typescript.d.ts.map +1 -0
- package/dist/middle-schema/generate-typescript.js +70 -0
- package/dist/middle-schema/generate-typescript.js.map +1 -0
- package/dist/middle-schema/parse-json-schema.d.ts +4 -0
- package/dist/middle-schema/parse-json-schema.d.ts.map +1 -0
- package/dist/middle-schema/parse-json-schema.js +65 -0
- package/dist/middle-schema/parse-json-schema.js.map +1 -0
- package/dist/middle-schema/parse-typescript.d.ts +4 -0
- package/dist/middle-schema/parse-typescript.d.ts.map +1 -0
- package/dist/middle-schema/parse-typescript.js +199 -0
- package/dist/middle-schema/parse-typescript.js.map +1 -0
- package/dist/middle-schema/schema-types.d.ts +24 -0
- package/dist/middle-schema/schema-types.d.ts.map +1 -0
- package/dist/middle-schema/schema-types.js +14 -0
- package/dist/middle-schema/schema-types.js.map +1 -0
- package/dist/middle-schema/schema.d.ts +24 -0
- package/dist/middle-schema/schema.d.ts.map +1 -0
- package/dist/middle-schema/schema.js +14 -0
- package/dist/middle-schema/schema.js.map +1 -0
- package/dist/schema/entities/abstract-entity.d.ts +5 -0
- package/dist/schema/entities/abstract-entity.d.ts.map +1 -0
- package/dist/schema/entities/abstract-entity.js +3 -0
- package/dist/schema/entities/abstract-entity.js.map +1 -0
- package/dist/schema/entities/primitive-union.d.ts +12 -0
- package/dist/schema/entities/primitive-union.d.ts.map +1 -0
- package/dist/schema/entities/primitive-union.js +74 -0
- package/dist/schema/entities/primitive-union.js.map +1 -0
- package/dist/schema/entities/primitive.d.ts +15 -0
- package/dist/schema/entities/primitive.d.ts.map +1 -0
- package/dist/schema/entities/primitive.js +54 -0
- package/dist/schema/entities/primitive.js.map +1 -0
- package/dist/schema/parsers/json-schema.d.ts +4 -0
- package/dist/schema/parsers/json-schema.d.ts.map +1 -0
- package/dist/schema/parsers/json-schema.js +12 -0
- package/dist/schema/parsers/json-schema.js.map +1 -0
- package/dist/schema/parsers/typescript.d.ts +3 -0
- package/dist/schema/parsers/typescript.d.ts.map +1 -0
- package/dist/schema/parsers/typescript.js +24 -0
- package/dist/schema/parsers/typescript.js.map +1 -0
- package/dist/schemas/input.d.ts +840 -0
- package/dist/schemas/input.d.ts.map +1 -0
- package/dist/schemas/input.js +349 -0
- package/dist/schemas/input.js.map +1 -0
- package/dist/utils/filesystem.d.ts +8 -0
- package/dist/utils/filesystem.d.ts.map +1 -0
- package/dist/utils/filesystem.js +16 -0
- package/dist/utils/filesystem.js.map +1 -0
- package/dist/utils/json-schemas-interactive-conflict.d.ts +16 -0
- package/dist/utils/json-schemas-interactive-conflict.d.ts.map +1 -0
- package/dist/utils/json-schemas-interactive-conflict.js +165 -0
- package/dist/utils/json-schemas-interactive-conflict.js.map +1 -0
- package/dist/utils/json-schemas.d.ts +42 -0
- package/dist/utils/json-schemas.d.ts.map +1 -0
- package/dist/utils/json-schemas.js +162 -0
- package/dist/utils/json-schemas.js.map +1 -0
- package/dist/zod/schemas/input.d.ts +840 -0
- package/dist/zod/schemas/input.d.ts.map +1 -0
- package/dist/zod/schemas/input.js +393 -0
- package/dist/zod/schemas/input.js.map +1 -0
- package/package.json +12 -12
- package/samples/all-defaults/.actor/input_schema.json +32 -3
- package/samples/all-defaults/src-schemas/input.json +2 -1
- package/samples/deep-merged-schemas/.actor/input_schema.json +36 -3
- package/samples/merged-schemas/.actor/input_schema.json +27 -3
- package/samples/package-json-config/.actor/input_schema.json +32 -3
- package/samples/package-json-config-merged/.actor/actor.json +15 -0
- package/samples/package-json-config-merged/.actor/dataset_schema.json +32 -0
- package/samples/package-json-config-merged/.actor/input_schema.json +91 -0
- package/samples/package-json-config-merged/custom-add-schemas/add-input.json +21 -0
- package/samples/package-json-config-merged/custom-src-schemas/dataset-item.json +28 -0
- package/samples/package-json-config-merged/custom-src-schemas/input.json +89 -0
- package/samples/package-json-config-merged/package.json +19 -0
- package/samples/package-json-config-merged/src/custom-generated/dataset.ts +25 -0
- package/samples/package-json-config-merged/src/custom-generated/input-utils.ts +73 -0
- package/samples/package-json-config-merged/src/custom-generated/input.ts +49 -0
- package/src/apify.ts +24 -9
- package/src/cli/check.ts +114 -0
- package/src/cli/init.ts +125 -0
- package/src/cli/sync.ts +164 -0
- package/src/configuration.ts +27 -8
- package/src/main.ts +25 -0
- package/src/middle-schema/compare-schemas.ts +113 -0
- package/src/middle-schema/generate-typescript.ts +88 -0
- package/src/middle-schema/parse-json-schema.ts +104 -0
- package/src/middle-schema/parse-typescript.ts +239 -0
- package/src/middle-schema/schema-types.ts +40 -0
- package/src/{json-schema-conflicts.ts → utils/json-schemas-interactive-conflict.ts} +3 -3
- package/src/{json-schemas.ts → utils/json-schemas.ts} +1 -1
- package/test/apify.test.ts +413 -5
- package/test/cli/check.test.ts +1571 -0
- package/test/cli/init.test.ts +459 -0
- package/test/cli/sync.test.ts +341 -0
- package/test/common.ts +68 -0
- package/test/configuration.test.ts +59 -26
- package/test/middle-schema/compare-schemas.test.ts +585 -0
- package/test/middle-schema/generate-typescript.test.ts +191 -0
- package/test/middle-schema/parse-json-schema.test.ts +178 -0
- package/test/middle-schema/parse-typescript.test.ts +143 -0
- package/test/{json-schema-conflicts.test.ts → utils/json-schemas-interactive-conflict.test.ts} +3 -3
- package/test/{json-schemas.test.ts → utils/json-schemas.test.ts} +4 -4
- package/update-samples.sh +4 -0
- package/src/apify-schema-tools.ts +0 -431
- package/src/typescript.ts +0 -563
- package/test/apify-schema-tools.test.ts +0 -2216
- package/test/typescript.test.ts +0 -1079
- /package/src/{filesystem.ts → utils/filesystem.ts} +0 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { JSONSchema4 } from "json-schema";
|
|
2
|
+
type SchemaProperty = JSONSchema4 & {
|
|
3
|
+
position?: number;
|
|
4
|
+
};
|
|
5
|
+
export interface ArraySchema extends JSONSchema4 {
|
|
6
|
+
type: "array";
|
|
7
|
+
}
|
|
8
|
+
export declare function isArraySchema(schema: JSONSchema4): schema is ArraySchema;
|
|
9
|
+
export interface ObjectSchema extends JSONSchema4 {
|
|
10
|
+
type: "object";
|
|
11
|
+
properties?: Record<string, SchemaProperty>;
|
|
12
|
+
required?: string[];
|
|
13
|
+
}
|
|
14
|
+
export declare function isObjectSchema(schema: JSONSchema4): schema is ObjectSchema;
|
|
15
|
+
/**
|
|
16
|
+
* Schemas are expected to be of type object at the root level.
|
|
17
|
+
*/
|
|
18
|
+
export declare function readJsonSchema(filePath: string): ObjectSchema;
|
|
19
|
+
/**
|
|
20
|
+
* Schemas are expected to be of type object at the root level.
|
|
21
|
+
*/
|
|
22
|
+
export declare function writeJsonSchema(filePath: string, schema: ObjectSchema): void;
|
|
23
|
+
/**
|
|
24
|
+
* @returns the schema stored at the specified field, or an empty object schema if the field does not exist or is empty.
|
|
25
|
+
* @throws if the field exists but is not an object schema.
|
|
26
|
+
*/
|
|
27
|
+
export declare function readJsonSchemaField(filePath: string, fieldName: string): ObjectSchema;
|
|
28
|
+
export declare function writeSchemaToField(filePath: string, schema: ObjectSchema, fieldName: string): void;
|
|
29
|
+
export declare function filterValidSchemaProperties(schema: ObjectSchema, validRootKeys: string[], validPropertyKeys: string[], validPropertyTypes: string[], validPropertyKeysByType: Record<string, string[]>): ObjectSchema;
|
|
30
|
+
export declare function mergeObjectSchemas(baseSchema: ObjectSchema, additionalSchema: ObjectSchema, deep: boolean): ObjectSchema;
|
|
31
|
+
/**
|
|
32
|
+
* Fields which is safe to omit without breaking the JSON schema.
|
|
33
|
+
*/
|
|
34
|
+
declare const OMISSIBLE_FIELDS: readonly ["title", "description"];
|
|
35
|
+
export type OmissibleField = (typeof OMISSIBLE_FIELDS)[number];
|
|
36
|
+
/**
|
|
37
|
+
* @param ignoreDescriptionFields fields from the main schema and its properties to be ignored for comparison.
|
|
38
|
+
* @returns true if the schemas are equal/comparable, false otherwise.
|
|
39
|
+
*/
|
|
40
|
+
export declare function compareSchemas(a: ObjectSchema, b: ObjectSchema, ignoreDescriptionFields?: OmissibleField[]): boolean;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=json-schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-schemas.d.ts","sourceRoot":"","sources":["../../src/utils/json-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C,KAAK,cAAc,GAAG,WAAW,GAAG;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAQF,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,IAAI,EAAE,OAAO,CAAC;CACd;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,IAAI,WAAW,CAExE;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAChD,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,IAAI,YAAY,CAE1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAE7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAE5E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CASrF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAIlG;AAID,wBAAgB,2BAA2B,CAC1C,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EAAE,EACvB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,kBAAkB,EAAE,MAAM,EAAE,EAC5B,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAC/C,YAAY,CAyBd;AAyCD,wBAAgB,kBAAkB,CACjC,UAAU,EAAE,YAAY,EACxB,gBAAgB,EAAE,YAAY,EAC9B,IAAI,EAAE,OAAO,GACX,YAAY,CAmDd;AAID;;GAEG;AACH,QAAA,MAAM,gBAAgB,mCAAoC,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAc/D;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,uBAAuB,CAAC,EAAE,cAAc,EAAE,GAAG,OAAO,CAKpH"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { equals, omit, pick } from "ramda";
|
|
2
|
+
import { readFile, writeFile } from "./filesystem.js";
|
|
3
|
+
function isOrderedSchemaProperty(property) {
|
|
4
|
+
return typeof property.position === "number";
|
|
5
|
+
}
|
|
6
|
+
export function isArraySchema(schema) {
|
|
7
|
+
return schema.type === "array";
|
|
8
|
+
}
|
|
9
|
+
export function isObjectSchema(schema) {
|
|
10
|
+
return schema.type === "object";
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Schemas are expected to be of type object at the root level.
|
|
14
|
+
*/
|
|
15
|
+
export function readJsonSchema(filePath) {
|
|
16
|
+
return JSON.parse(readFile(filePath));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Schemas are expected to be of type object at the root level.
|
|
20
|
+
*/
|
|
21
|
+
export function writeJsonSchema(filePath, schema) {
|
|
22
|
+
writeFile(filePath, JSON.stringify(schema, null, 4));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @returns the schema stored at the specified field, or an empty object schema if the field does not exist or is empty.
|
|
26
|
+
* @throws if the field exists but is not an object schema.
|
|
27
|
+
*/
|
|
28
|
+
export function readJsonSchemaField(filePath, fieldName) {
|
|
29
|
+
const existingSchema = readJsonSchema(filePath);
|
|
30
|
+
if (!(fieldName in existingSchema) || equals(existingSchema[fieldName], {})) {
|
|
31
|
+
return { type: "object" };
|
|
32
|
+
}
|
|
33
|
+
if (!isObjectSchema(existingSchema[fieldName])) {
|
|
34
|
+
throw new Error(`Schema "${filePath} > ${fieldName}" is not an object schema`);
|
|
35
|
+
}
|
|
36
|
+
return existingSchema[fieldName];
|
|
37
|
+
}
|
|
38
|
+
export function writeSchemaToField(filePath, schema, fieldName) {
|
|
39
|
+
const existingSchema = readJsonSchema(filePath);
|
|
40
|
+
existingSchema[fieldName] = schema;
|
|
41
|
+
writeJsonSchema(filePath, existingSchema);
|
|
42
|
+
}
|
|
43
|
+
// Filtering properties
|
|
44
|
+
export function filterValidSchemaProperties(schema, validRootKeys, validPropertyKeys, validPropertyTypes, validPropertyKeysByType) {
|
|
45
|
+
const result = pick(validRootKeys, schema);
|
|
46
|
+
if (result.properties) {
|
|
47
|
+
result.properties = Object.fromEntries(Object.entries(result.properties).map(([key, value]) => {
|
|
48
|
+
if (!value.type) {
|
|
49
|
+
throw new Error(`Property "${key}" is missing a type in the input schema`);
|
|
50
|
+
}
|
|
51
|
+
if (typeof value.type !== "string") {
|
|
52
|
+
throw new Error(`Property "${key}" has an invalid type "${value.type}" in the input schema: non-string types are not supported`);
|
|
53
|
+
}
|
|
54
|
+
if (!validPropertyTypes.includes(value.type)) {
|
|
55
|
+
throw new Error(`Invalid property type "${value.type}" for property "${key}" in the input schema`);
|
|
56
|
+
}
|
|
57
|
+
const validKeys = [...validPropertyKeys, ...(validPropertyKeysByType[value.type] ?? [])];
|
|
58
|
+
return [key, pick(validKeys, value)];
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
if (!isObjectSchema(result)) {
|
|
62
|
+
throw new Error("The resulting schema, after filtering valid properties, is not a valid object schema");
|
|
63
|
+
}
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
// Merging schemas
|
|
67
|
+
function mergeProperties(baseProperty, additionalProperty, deep) {
|
|
68
|
+
if (!deep) {
|
|
69
|
+
// If not deep merging, we just take the additional property
|
|
70
|
+
return additionalProperty;
|
|
71
|
+
}
|
|
72
|
+
if (isObjectSchema(baseProperty) && isObjectSchema(additionalProperty)) {
|
|
73
|
+
return mergeObjectSchemas(baseProperty, additionalProperty, deep);
|
|
74
|
+
}
|
|
75
|
+
if (isArraySchema(baseProperty) && isArraySchema(additionalProperty)) {
|
|
76
|
+
return mergeArraySchemas(baseProperty, additionalProperty, deep);
|
|
77
|
+
}
|
|
78
|
+
// If the property is not an object or array, we just take the additional property
|
|
79
|
+
return additionalProperty;
|
|
80
|
+
}
|
|
81
|
+
function mergeArraySchemas(baseSchema, additionalSchema, deep) {
|
|
82
|
+
const baseItems = baseSchema.items;
|
|
83
|
+
const additionalItems = additionalSchema.items;
|
|
84
|
+
if (baseItems && !Array.isArray(baseItems) && additionalItems && !Array.isArray(additionalItems)) {
|
|
85
|
+
return {
|
|
86
|
+
...baseSchema,
|
|
87
|
+
...additionalSchema,
|
|
88
|
+
items: mergeProperties(baseItems, additionalItems, deep),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
...baseSchema,
|
|
93
|
+
...additionalSchema,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
export function mergeObjectSchemas(baseSchema, additionalSchema, deep) {
|
|
97
|
+
const baseProperties = baseSchema.properties || {};
|
|
98
|
+
const additionalProperties = additionalSchema.properties || {};
|
|
99
|
+
const propertiesWithPosition = [];
|
|
100
|
+
const propertiesWithoutPosition = [];
|
|
101
|
+
function addProperty(key, property) {
|
|
102
|
+
if (isOrderedSchemaProperty(property)) {
|
|
103
|
+
propertiesWithPosition.push([key, property]);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
propertiesWithoutPosition.push([key, property]);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
for (const [key, baseProperty] of Object.entries(baseProperties)) {
|
|
110
|
+
if (key in additionalProperties) {
|
|
111
|
+
const additionalProperty = additionalProperties[key];
|
|
112
|
+
addProperty(key, mergeProperties(baseProperty, additionalProperty, deep));
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
addProperty(key, baseProperty);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Add properties that only exist in additional schema
|
|
119
|
+
for (const [key, additionalProperty] of Object.entries(additionalProperties)) {
|
|
120
|
+
if (!(key in baseProperties)) {
|
|
121
|
+
addProperty(key, additionalProperty);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
propertiesWithPosition.sort((a, b) => {
|
|
125
|
+
return a[1].position - b[1].position;
|
|
126
|
+
});
|
|
127
|
+
const properties = {
|
|
128
|
+
...Object.fromEntries(propertiesWithPosition),
|
|
129
|
+
...Object.fromEntries(propertiesWithoutPosition),
|
|
130
|
+
};
|
|
131
|
+
const required = baseSchema.required || additionalSchema.required
|
|
132
|
+
? Array.from(new Set([...(baseSchema.required || []), ...(additionalSchema.required || [])]))
|
|
133
|
+
: undefined;
|
|
134
|
+
return {
|
|
135
|
+
...baseSchema,
|
|
136
|
+
...additionalSchema,
|
|
137
|
+
properties,
|
|
138
|
+
required,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
// Compare schemas
|
|
142
|
+
/**
|
|
143
|
+
* Fields which is safe to omit without breaking the JSON schema.
|
|
144
|
+
*/
|
|
145
|
+
const OMISSIBLE_FIELDS = ["title", "description"];
|
|
146
|
+
function omitFieldsFromSchemaAndProperties(schema, omitFields) {
|
|
147
|
+
const filteredSchema = omit(omitFields, schema);
|
|
148
|
+
if (isObjectSchema(filteredSchema) && filteredSchema.properties) {
|
|
149
|
+
filteredSchema.properties = Object.fromEntries(Object.entries(filteredSchema.properties).map(([key, value]) => {
|
|
150
|
+
return [key, omitFieldsFromSchemaAndProperties(value, omitFields)];
|
|
151
|
+
}));
|
|
152
|
+
}
|
|
153
|
+
return filteredSchema;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* @param ignoreDescriptionFields fields from the main schema and its properties to be ignored for comparison.
|
|
157
|
+
* @returns true if the schemas are equal/comparable, false otherwise.
|
|
158
|
+
*/
|
|
159
|
+
export function compareSchemas(a, b, ignoreDescriptionFields) {
|
|
160
|
+
return equals(ignoreDescriptionFields ? omitFieldsFromSchemaAndProperties(a, ignoreDescriptionFields) : a, ignoreDescriptionFields ? omitFieldsFromSchemaAndProperties(b, ignoreDescriptionFields) : b);
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=json-schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-schemas.js","sourceRoot":"","sources":["../../src/utils/json-schemas.ts"],"names":[],"mappings":"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"}
|