* add duckdb-ui-client & other ts pkgs * workflow fixes * fix working dir * no sparse checkout; specify package.json path * path to pnpm-lock.yaml * add check & build test * workflow step descriptions * use comments & names * one more naming tweak
39 lines
947 B
TypeScript
39 lines
947 B
TypeScript
import {
|
|
DuckDBDecimalFormatOptions,
|
|
stringFromDecimal,
|
|
} from './conversion/stringFromDecimal.js';
|
|
import { Json } from './Json.js';
|
|
import { SpecialDuckDBValue } from './SpecialDuckDBValue.js';
|
|
|
|
export class DuckDBDecimalValue extends SpecialDuckDBValue {
|
|
public readonly scaledValue: bigint;
|
|
|
|
public readonly scale: number;
|
|
|
|
constructor(scaledValue: bigint, scale: number) {
|
|
super();
|
|
this.scaledValue = scaledValue;
|
|
this.scale = scale;
|
|
}
|
|
|
|
public toDuckDBString(): string {
|
|
return stringFromDecimal(this.scaledValue, this.scale);
|
|
}
|
|
|
|
/** Returns a string representation appropriate to the host environment's current locale. */
|
|
|
|
public toLocaleString(
|
|
locales?: string | string[],
|
|
options?: DuckDBDecimalFormatOptions,
|
|
): string {
|
|
return stringFromDecimal(this.scaledValue, this.scale, {
|
|
locales,
|
|
options,
|
|
});
|
|
}
|
|
|
|
public toJson(): Json {
|
|
return this.toDuckDBString();
|
|
}
|
|
}
|