Nâng cấp ajv từ 7.x lên 8.x
So sánh API công khai của ajv 7.2.4 và 8.20.0, được tính tự động từ kiểu TypeScript. Chữ ký thay đổi là thay đổi có thể không tương thích, không phải điều chắc chắn.
Tóm tắt
| Đường dẫn import bị xóa | 0 |
|---|---|
| Export bị xóa | 0 |
| Chữ ký thay đổi | 4 |
| Thành viên lớp hoặc interface bị xóa | 1 |
| Thành viên lớp hoặc interface thay đổi | 16 |
| Mới bị ngừng hỗ trợ | 0 |
| Thay đổi yêu cầu (engines, phụ thuộc peer) | 0 |
| Export mới | 3 |
Export bị xóa
Không phát hiện.
Chữ ký thay đổi
| export | Trước | Sau |
|---|---|---|
ajv · JSONType | "string" | "number" | "boolean" | "object" | "integer" | "null" | "array" | "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" |
ajv · DefinedError | TypeError | ApplicatorKeywordError | ValidationKeywordError | FormatError | UnevaluatedPropertiesError | UnevaluatedItemsError | DependentRequiredError | TypeError | ApplicatorKeywordError | ValidationKeywordError | FormatError | UnevaluatedPropertiesError | UnevaluatedItemsError | DependentRequiredError | DiscriminatorError |
ajv · JSONSchemaType | (T extends number ? { type: JSONType<"number" | "integer", _partial>; minimum?: number | undefined; maximum?: number | undefined; exclusiveMinimum?: number | undefined; exclusiveMaximum?: number | undefined; multipleOf?: number | undefined; format?: string | undefined; } : T extends string ? { type: JSONType<"string", _partial>; minLength?: number | undefined; maxLength?: number | undefined; pattern?: string | undefined; format?: string | undefined; } : T extends boolean ? { type: "boolean"; } : T extends [any, ...any[]] ? { type: JSONType<"array", _partial>; items: { readonly [K in keyof T]-?… | ({ anyOf: readonly UncheckedJSONSchemaType<T, false>[]; } | { oneOf: readonly UncheckedJSONSchemaType<T, false>[]; } | ({ type: readonly (T extends number ? "number" | "integer" : T extends string ? "string" : T extends boolean ? "boolean" : never)[]; } & UnionToIntersection<T extends number ? NumberKeywords : T extends string ? StringKeywords : T extends boolean ? {} : never>) | ((T extends number ? { type: "number" | "integer"; } & NumberKeywords : T extends string ? { type: "string"; } & StringKeywords : T extends boolean ? { type: "boolean"; } : T extends readonly [any, ...any[]] ? { type:… |
ajv · InstanceOptions | CurrentOptions & DeprecatedOptions & { strict: NonNullable<boolean | "log" | undefined>; strictTypes: NonNullable<boolean | "log" | undefined>; strictTuples: NonNullable<boolean | "log" | undefined>; inlineRefs: NonNullable<number | boolean | undefined>; loopRequired: number; loopEnum: number; meta: NonNullable<boolean | SchemaObject | undefined>; messages: NonNullable<boolean | undefined>; addUsedSchema: NonNullable<boolean | undefined>; validateSchema: NonNullable<boolean | "log" | undefined>; validateFormats: NonNullable<boolean | undefined>; } & { code: InstanceCodeOptions; } | CurrentOptions & DeprecatedOptions & { strictSchema: NonNullable<boolean | "log" | undefined>; strictNumbers: NonNullable<boolean | "log" | undefined>; strictTypes: NonNullable<boolean | "log" | undefined>; strictTuples: NonNullable<boolean | "log" | undefined>; strictRequired: NonNullable<boolean | "log" | undefined>; inlineRefs: NonNullable<number | boolean | undefined>; loopRequired: number; loopEnum: number; meta: NonNullable<boolean | SchemaObject | undefined>; messages: NonNullable<boolean | undefined>; schemaId: NonNullable<"id" | "$id" | undefined>; addUsedSchema: NonNullable<boolean |… |
Thành viên lớp hoặc interface bị xóa
| member | import | Trước |
|---|---|---|
ErrorObject.dataPath | ajv | string |
Thành viên lớp hoặc interface thay đổi
| member | Trước | Sau |
|---|---|---|
default.compile | <T = unknown>(schema: Schema | JSONSchemaType<T>, _meta?: boolean | undefined): ValidateFunction<T> | <T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean | undefined): ValidateFunction<T> | <T = unknown>(schema: AsyncSchema, _meta?: boolean | undefined): AsyncValidateFunction<T> | <T = unknown>(… | <T = unknown>(schema: Schema | JSONSchemaType<T>, _meta?: boolean | undefined): ValidateFunction<T> | <T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean | undefined): ValidateFunction<T> | <N extends never, T extends SomeJTDSchemaType>(schema: T, _meta?: boolean | undefined): ValidateFunction<J… |
default.validate | (schema: string | Schema, data: unknown): boolean | (schemaKeyRef: string | AnySchema, data: unknown): boolean | Promise<unknown> | <T>(schema: string | Schema | JSONSchemaType<T>, data: unknown): data is T | <T>(schema: JTDSchemaType<T>, data: unknown): data is T | <T>(schema: AsyncSchema, data: un… | (schema: string | Schema, data: unknown): boolean | (schemaKeyRef: string | AnySchema, data: unknown): boolean | Promise<unknown> | <T>(schema: string | Schema | JSONSchemaType<T>, data: unknown): data is T | <T>(schema: JTDSchemaType<T>, data: unknown): data is T | <N extends never, T extends SomeJ… |
default._addSchema | (schema: AnySchema, meta?: boolean | undefined, validateSchema?: boolean | "log" | undefined, addSchema?: boolean | undefined): SchemaEnv | (schema: AnySchema, meta?: boolean | undefined, baseId?: string | undefined, validateSchema?: boolean | "log" | undefined, addSchema?: boolean | undefined): SchemaEnv |
SchemaCxt.dataTypes | ("string" | "number" | "boolean" | "object" | "integer" | "null" | "array")[] | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[] |
KeywordCxt.error | (append?: true | undefined): void | (append?: boolean | undefined, errorParams?: KeywordCxtParams | undefined, errorPaths?: ErrorPaths | undefined): void |
KeywordCxt.subschema | (appl: Partial<{ keyword: string; schemaProp: string | number; schema: AnySchema; schemaPath: Code; errSchemaPath: string; topSchemaRef: Code; data: Code; dataProp: string | number | Code; dataTypes: ("string" | "number" | "boolean" | "object" | "integer" | "null" | "array")[]; definedProperties: Se… | (appl: Partial<{ keyword: string; schemaProp: string | number; schema: AnySchema; schemaPath: Code; errSchemaPath: string; topSchemaRef: Code; data: Code; dataProp: string | number | Code; dataTypes: ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[]; definedProperties: Se… |
KeywordCxt.schemaType | ("string" | "number" | "boolean" | "object" | "integer" | "null" | "array")[] | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[] |
ErrorObject.instancePath | string | undefined | string |
SchemaObjCxt.dataTypes | ("string" | "number" | "boolean" | "object" | "integer" | "null" | "array")[] | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[] |
CodeKeywordDefinition.type | "string" | "number" | "boolean" | "object" | "integer" | "null" | "array" | ("string" | "number" | "boolean" | "object" | "integer" | "null" | "array")[] | undefined | "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[] | undefined |
CodeKeywordDefinition.schemaType | "string" | "number" | "boolean" | "object" | "integer" | "null" | "array" | ("string" | "number" | "boolean" | "object" | "integer" | "null" | "array")[] | undefined | "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[] | undefined |
FuncKeywordDefinition.type | "string" | "number" | "boolean" | "object" | "integer" | "null" | "array" | ("string" | "number" | "boolean" | "object" | "integer" | "null" | "array")[] | undefined | "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[] | undefined |
FuncKeywordDefinition.schemaType | "string" | "number" | "boolean" | "object" | "integer" | "null" | "array" | ("string" | "number" | "boolean" | "object" | "integer" | "null" | "array")[] | undefined | "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[] | undefined |
KeywordErrorDefinition.message | string | Code | ((cxt: KeywordErrorCxt) => Code) | string | Code | ((cxt: KeywordErrorCxt) => string | Code) |
MacroKeywordDefinition.type | "string" | "number" | "boolean" | "object" | "integer" | "null" | "array" | ("string" | "number" | "boolean" | "object" | "integer" | "null" | "array")[] | undefined | "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[] | undefined |
MacroKeywordDefinition.schemaType | "string" | "number" | "boolean" | "object" | "integer" | "null" | "array" | ("string" | "number" | "boolean" | "object" | "integer" | "null" | "array")[] | undefined | "string" | "number" | "boolean" | "object" | "integer" | "array" | "null" | ("string" | "number" | "boolean" | "object" | "integer" | "array" | "null")[] | undefined |
Mới bị ngừng hỗ trợ
Không phát hiện.
Thay đổi yêu cầu (engines, phụ thuộc peer)
Không phát hiện.
Export mới (3)
| import | export | kind |
|---|---|---|
ajv | Ajv | class |
ajv | MissingRefError | class |
ajv | ValidationError | class |
Câu hỏi thường gặp
Nâng cấp ajv từ 7 lên 8 có những thay đổi không tương thích nào?
Giữa ajv 7.2.4 và 8.20.0, Vigia tìm thấy 0 export bị xóa, 4 chữ ký thay đổi và 17 thành viên lớp hoặc interface bị xóa hay thay đổi.
Những gì bị ngừng hỗ trợ trong ajv 8?
0 export hoặc thành viên mới bị đánh dấu ngừng hỗ trợ trong ajv 8.20.0.
Dành cho tác tử
GET https://vigia.coredls.cloud/v1/packages/npm/ajv/upgrade?from=7.2.4&to=8.20.0