UNPKG

@httpx/dsn-parser

Version:

DSN & JDBC string parser with query params support in a tiny and modern package.

70 lines 2.45 kB
//#region src/dsn-parser.type.d.ts type ParsedDsn = { db?: string; driver: string; host: string; /** Query params */ params?: Record<string, boolean | number | string>; pass?: string; port?: number; user?: string; }; type ParseDsnOptions = { /** Whether to lowercase parsed driver name, default: false */lowercaseDriver?: boolean; /** Overrides parsed values by those one (except query params) */ overrides?: Omit<Partial<ParsedDsn>, 'params'>; }; declare const errorReasons: { readonly EMPTY_DSN: "DSN cannot be empty"; readonly INVALID_ARGUMENT: "DSN must be a string"; readonly INVALID_PORT: "Invalid port"; readonly PARSE_ERROR: "Cannot parse DSN"; }; type ErrorReasons = keyof typeof errorReasons; type ParserSuccessResult = { success: true; value: ParsedDsn; }; type ParserErrorResult = { message: string; reason: ErrorReasons; success: false; }; type ParserResult = ParserErrorResult | ParserSuccessResult; declare const tag: unique symbol; type WeakOpaqueContainer<Token> = { readonly [tag]: Token; }; type ParsableDsn = string & WeakOpaqueContainer<'ParsableDsn'>; //#endregion //#region src/assert-parsable-dsn.d.ts /** * @throws Error when not parsable */ declare const assertParsableDsn: (dsn: unknown, msg?: string) => asserts dsn is ParsableDsn; //#endregion //#region src/convert-jdbc-to-dsn.d.ts /** * Convert JDBC URL to DSN format. * * @example * ```typescript * const jdbc = 'sqlserver://localhost:1433;database=my-db;authentication=default;user=sa;password=pass03$;encrypt=true;trustServerCertificate=true'; * const dsn = convertJdbcToDsn(jdbc); * // dsn is 'sqlserver://localhost:1433?database=my-db&authentication=default&user=sa&password=pass03$&encrypt=true&trustServerCertificate=true * ``` * @throws TypeError . */ declare const convertJdbcToDsn: (jdbc: string) => string; //#endregion //#region src/is-parsable-dsn.d.ts declare const isParsableDsn: (dsn: unknown) => dsn is ParsableDsn; //#endregion //#region src/parse-dsn.d.ts declare const parseDsn: (dsn: unknown, options?: ParseDsnOptions) => ParserResult; //#endregion //#region src/parse-dsn-or-throw.d.ts declare const parseDsnOrThrow: (dsn: unknown, options?: ParseDsnOptions & { errorMsgPrefix?: string; }) => ParsedDsn; //#endregion export { type ParsableDsn, type ParseDsnOptions, type ParsedDsn, assertParsableDsn, convertJdbcToDsn, isParsableDsn, parseDsn, parseDsnOrThrow }; //# sourceMappingURL=index.d.ts.map