Nâng cấp jackspeak từ 3.x lên 4.x
So sánh API công khai của jackspeak 3.4.3 và 4.2.3, đượ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 | 2 |
| Chữ ký thay đổi | 9 |
| Thành viên lớp hoặc interface bị xóa | 0 |
| Thành viên lớp hoặc interface thay đổi | 9 |
| Mới bị ngừng hỗ trợ | 0 |
| Thay đổi yêu cầu (engines, phụ thuộc peer) | 1 |
| Export mới | 10 |
Export bị xóa
| import | export | kind | Trước |
|---|---|---|---|
jackspeak | MultiType | type | M extends true ? { multiple: true; delim?: string | undefined; } : M extends false ? { multiple?: false | undefined; delim?: undefined; } : { multiple?: boolean | undefined; delim?: string | undefined; } |
jackspeak | ConfigOptionBase | type | { type: T; short?: string | undefined; default?: ValidValue<T, M> | undefined; description?: string | undefined; hint?: (T extends "boolean" ? undefined : string | undefined) | undefined; validate?: ((v: unknown) => v is ValidValue<T, M>) | undefined; validOptions?: (T extends "boolean" ? undefined : T extends "string" ? readonly string[] : T extends "number" ? readonly number[] : readonly string[] | readonly number[]) | undefined; } & MultiType<M> |
Chữ ký thay đổi
| export | Trước | Sau |
|---|---|---|
jackspeak · ConfigSet | { [longOption: string]: ConfigOptionBase<ConfigType, boolean>; } | { [longOption: string]: ConfigOption<ConfigType, boolean, readonly number[] | readonly string[] | undefined>; } |
jackspeak · UsageField | TextRow | { type: "config"; name: string; value: ConfigOptionBase<ConfigType, boolean>; } | TextRow | { type: "config"; name: string; value: ConfigOption<ConfigType, boolean, readonly number[] | readonly string[] | undefined>; } |
jackspeak · ValidValue | [T, M] extends ["number", true] ? number[] : [T, M] extends ["string", true] ? string[] : [T, M] extends ["boolean", true] ? boolean[] : [T, M] extends ["number", false] ? number : [T, M] extends ["string", false] ? string : [T, M] extends ["boolean", false] ? boolean : [T, M] extends ["string", boolean] ? string | string[] : [T, M] extends ["boolean", boolean] ? boolean | boolean[] : [T, M] extends ["number", boolean] ? number | number[] : [T, M] extends [ConfigType, false] ? string | number | boolean : [T, M] extends [ConfigType, true] ? number[] | string[] | boolean[] : string | number | bo… | [T, M] extends ["number", true] ? number[] : [T, M] extends ["string", true] ? string[] : [T, M] extends ["boolean", true] ? boolean[] : [T, M] extends ["number", false] ? number : [T, M] extends ["string", false] ? string : [T, M] extends ["boolean", false] ? boolean : [T, M] extends ["string", boolean] ? string | string[] : [T, M] extends ["boolean", boolean] ? boolean | boolean[] : [T, M] extends ["number", boolean] ? number | number[] : [T, M] extends [ConfigType, false] ? ConfigValuePrimitive : [T, M] extends [ConfigType, true] ? ConfigValueArray : ConfigValue |
jackspeak · isConfigType | (t: string): t is ConfigType | (t: unknown): t is ConfigType |
jackspeak · ConfigMetaSet | { [longOption: string]: ConfigOptionMeta<T, M, (T extends "boolean" ? never : T extends "string" ? readonly string[] : T extends "number" ? readonly number[] : readonly string[] | readonly number[]) | undefined>; } | { [longOption: string]: ConfigOptionMeta<T, M, ConfigOption<T, M, ValidOptions<T> | undefined>>; } |
jackspeak · OptionsResults | { [k in keyof T]?: (T[k]["validOptions"] extends readonly string[] | readonly number[] ? T[k] extends ConfigOptionBase<"string" | "number", false> ? T[k]["validOptions"][number] : T[k] extends ConfigOptionBase<"string" | "number", true> ? T[k]["validOptions"][number][] : never : T[k] extends ConfigOptionBase<"string", false> ? string : T[k] extends ConfigOptionBase<"string", true> ? string[] : T[k] extends ConfigOptionBase<"number", false> ? number : T[k] extends ConfigOptionBase<"number", true> ? number[] : T[k] extends ConfigOptionBase<"boolean", false> ? boolean : T[k] extends ConfigOptionB… | { [K in keyof T]: (T[K]["validOptions"] extends ReadonlyArrays ? T[K] extends ConfigOption<"string" | "number", false, readonly number[] | readonly string[] | undefined> ? T[K]["validOptions"][number] : T[K] extends ConfigOption<"string" | "number", true, readonly number[] | readonly string[] | undefined> ? T[K]["validOptions"][number][] : never : T[K] extends ConfigOption<"string", false, readonly string[] | undefined> ? string : T[K] extends ConfigOption<"string", true, readonly string[] | undefined> ? string[] : T[K] extends ConfigOption<"number", false, readonly number[] | undefined> ? num… |
jackspeak · isConfigOption | <T extends ConfigType, M extends boolean>(o: any, type: T, multi: M): o is ConfigOptionBase<T, M> | <T extends ConfigType, M extends boolean>(o: unknown, type: T, multi: M): o is ConfigOption<T, M, ValidOptions<T> | undefined> |
jackspeak · ConfigOptionMeta | { default?: (ValidValue<T, M> & (O extends number[] | string[] ? M extends false ? O[number] : O[number][] : unknown)) | undefined; validOptions?: O | undefined; description?: string | undefined; validate?: ((v: unknown) => v is ValidValue<T, M>) | ((v: unknown) => boolean) | undefined; short?: string | undefined; type?: T | undefined; hint?: (T extends "boolean" ? never : string) | undefined; delim?: (M extends true ? string : never) | undefined; } & (M extends false ? { multiple?: false | undefined; } : M extends true ? { multiple: true; } : { multiple?: boolean | undefined; }) | Pick<Partial<O>, "type"> & Omit<O, "type"> |
jackspeak · ConfigSetFromMetaSet | { [longOption in keyof S]: ConfigOptionBase<T, M>; } | S & { [longOption in keyof S]: ConfigOption<T, M, ValidOptions<T> | undefined>; } |
Thành viên lớp hoặc interface bị xóa
Không phát hiện.
Thành viên lớp hoặc interface thay đổi
| member | Trước | Sau |
|---|---|---|
Jack.num | <F extends ConfigMetaSet<"number", false>>(fields: F): Jack<C & ConfigSetFromMetaSet<"number", false, F>> | <F extends ConfigMetaSet<"number", false>>(fields: F): Jack<C & F & { [longOption in keyof F]: ConfigOption<"number", false, readonly number[] | undefined>; }> |
Jack.opt | <F extends ConfigMetaSet<"string", false>>(fields: F): Jack<C & ConfigSetFromMetaSet<"string", false, F>> | <F extends ConfigMetaSet<"string", false>>(fields: F): Jack<C & F & { [longOption in keyof F]: ConfigOption<"string", false, readonly string[] | undefined>; }> |
Jack.flag | <F extends ConfigMetaSet<"boolean", false>>(fields: F): Jack<C & ConfigSetFromMetaSet<"boolean", false, F>> | <F extends ConfigMetaSet<"boolean", false>>(fields: F): Jack<C & F & { [longOption in keyof F]: ConfigOption<"boolean", false, undefined>; }> |
Jack.toJSON | (): { [k: string]: { hint?: string | undefined; default?: string | number | boolean | number[] | string[] | boolean[] | undefined; validOptions?: readonly string[] | readonly number[] | undefined; validate?: ((v: unknown) => v is string | number | boolean | number[] | string[] | boolean[]) | undefin… | (): { [k: string]: { hint?: string | undefined; default?: ConfigValue | undefined; validOptions?: readonly number[] | readonly string[] | undefined; validate?: ((v: unknown) => boolean) | ((v: unknown) => v is ConfigValue) | undefined; description?: string | undefined; short?: string | undefined; de… |
Jack.numList | <F extends ConfigMetaSet<"number">>(fields: F): Jack<C & ConfigSetFromMetaSet<"number", true, F>> | <F extends ConfigMetaSet<"number", true>>(fields: F): Jack<C & F & { [longOption in keyof F]: ConfigOption<"number", true, readonly number[] | undefined>; }> |
Jack.optList | <F extends ConfigMetaSet<"string">>(fields: F): Jack<C & ConfigSetFromMetaSet<"string", true, F>> | <F extends ConfigMetaSet<"string", true>>(fields: F): Jack<C & F & { [longOption in keyof F]: ConfigOption<"string", true, readonly string[] | undefined>; }> |
Jack.flagList | <F extends ConfigMetaSet<"boolean">>(fields: F): Jack<C & ConfigSetFromMetaSet<"boolean", true, F>> | <F extends ConfigMetaSet<"boolean", true>>(fields: F): Jack<C & F & { [longOption in keyof F]: ConfigOption<"boolean", true, undefined>; }> |
Jack.setConfigValues | (values: OptionsResults<C>, source?: string | undefined): Jack<C> | (values: Partial<OptionsResults<C>>, source?: string | undefined): Jack<C> |
JackOptions.env | { [k: string]: string | undefined; } | undefined | Record<string, string | undefined> | 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)
| Trước | Sau | |
|---|---|---|
engines.node | — | 20 || >=22 |
Export mới (10)
| import | export | kind |
|---|---|---|
jackspeak | ConfigValue | type |
jackspeak | ConfigOption | type |
jackspeak | ValidOptions | type |
jackspeak | ReadonlyArrays | type |
jackspeak | ParseArgsOption | type |
jackspeak | ConfigValueArray | type |
jackspeak | ParseArgsDefault | type |
jackspeak | ParseArgsOptions | type |
jackspeak | ConfigValuePrimitive | type |
jackspeak | isConfigOptionOfType | variable |
Câu hỏi thường gặp
Nâng cấp jackspeak từ 3 lên 4 có những thay đổi không tương thích nào?
Giữa jackspeak 3.4.3 và 4.2.3, Vigia tìm thấy 2 export bị xóa, 9 chữ ký thay đổi và 9 thành viên lớp hoặc interface bị xóa hay thay đổi.
Những gì bị ngừng hỗ trợ trong jackspeak 4?
0 export hoặc thành viên mới bị đánh dấu ngừng hỗ trợ trong jackspeak 4.2.3.
Dành cho tác tử
GET https://vigia.coredls.cloud/v1/packages/npm/jackspeak/upgrade?from=3.4.3&to=4.2.3