@open-truss/open-truss
Advanced tools
Comparing version 0.22.0 to 0.23.0
@@ -0,3 +1,3 @@ | ||
import { z } from 'zod'; | ||
import { type BaseOpenTrussComponentV1 } from '../configuration/engine-v1'; | ||
import { z } from 'zod'; | ||
export declare const Props: z.ZodObject<{ | ||
@@ -4,0 +4,0 @@ data: z.ZodOptional<z.ZodType<import("..").YamlType, z.ZodTypeDef, import("..").YamlType>>; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Props = void 0; | ||
const zod_1 = require("zod"); | ||
const engine_v1_1 = require("../configuration/engine-v1"); | ||
const uqi_1 = require("../uqi/uqi"); | ||
const signals_1 = require("../signals"); | ||
const misc_1 = require("../utils/misc"); | ||
const signals_1 = require("../signals"); | ||
const zod_1 = require("zod"); | ||
exports.Props = engine_v1_1.BaseOpenTrussComponentV1PropsShape.extend({ | ||
@@ -48,9 +47,8 @@ ...engine_v1_1.withChildren, | ||
const shape = (0, signals_1.signalValueShape)(signal); | ||
const parsedResults = (0, uqi_1.parseUqiResult)(queryResults); | ||
const defaultValue = shape.parse(undefined); | ||
const result = Array.isArray(defaultValue) | ||
? parsedResults | ||
? queryResults.rows | ||
: (0, misc_1.isObject)(defaultValue) | ||
? parsedResults[0] | ||
: (_a = parsedResults[0]) === null || _a === void 0 ? void 0 : _a[signal.yamlName]; | ||
? queryResults.rows[0] | ||
: (_a = queryResults.rows[0]) === null || _a === void 0 ? void 0 : _a[signal.yamlName]; | ||
const validatedResult = shape.parse(result); | ||
@@ -57,0 +55,0 @@ if (_DEBUG_) |
export type UqiMappedType = 'String' | 'Number' | 'Boolean' | 'BigInt' | 'Date' | 'JSON'; | ||
export declare function castUqiValue(type: UqiMappedType, value: string): unknown; | ||
export declare function parseUqiResult(result: SynchronousQueryResult): Array<Record<string, unknown>>; | ||
export interface SynchronousQueryResult { | ||
rows: SynchronousQueryRow[]; | ||
metadata: SynchronousQueryMetadata; | ||
} | ||
export interface SynchronousQueryRow { | ||
values: SynchronousQueryValue[]; | ||
} | ||
export interface SynchronousQueryValue { | ||
key: string; | ||
type: UqiMappedType; | ||
value: string; | ||
} | ||
export interface SynchronousQueryMetadata { | ||
columns: SynchronousQueryColumn[]; | ||
} | ||
export interface SynchronousQueryColumn { | ||
name: string; | ||
type: string; | ||
} | ||
export type UqiTypeMappings = Record<string, UqiMappedType>; | ||
@@ -24,0 +3,0 @@ export interface UqiColumn { |
@@ -6,54 +6,4 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.uqi = exports.parseUqiResult = exports.castUqiValue = void 0; | ||
exports.uqi = void 0; | ||
const iterator_1 = __importDefault(require("./iterator")); | ||
function castUqiValue(type, value) { | ||
switch (type) { | ||
case 'String': | ||
return String(value); | ||
case 'Number': | ||
return Number(value) || 0; | ||
case 'Boolean': | ||
return value.toLowerCase() === 'true'; | ||
case 'BigInt': | ||
return BigInt(value); | ||
case 'Date': | ||
return Date.parse(value); | ||
case 'JSON': { | ||
// Case when JSON is already parsed | ||
if (typeof value === 'object' || Array.isArray(value)) | ||
return value; | ||
return JSON.parse(value); | ||
} | ||
default: | ||
return value; | ||
} | ||
} | ||
exports.castUqiValue = castUqiValue; | ||
// Parses and reformats a SynchronousQueryResult and | ||
// casts the values to the appropriate javascript type | ||
// SynchronousQueryResult: | ||
// { | ||
// rows: [ | ||
// { | ||
// values: { | ||
// key: 'name', type: 'String', value: 'value' | ||
// } | ||
// } | ||
// ] | ||
// } | ||
// | ||
// Result: | ||
// [ | ||
// { name: 'value' } | ||
// ] | ||
function parseUqiResult(result) { | ||
return result.rows.map((row) => { | ||
const rowResult = {}; | ||
row.values.forEach(({ key, type, value }) => { | ||
rowResult[key] = value === null ? null : castUqiValue(type, value); | ||
}); | ||
return rowResult; | ||
}); | ||
} | ||
exports.parseUqiResult = parseUqiResult; | ||
function uqi(og) { | ||
@@ -60,0 +10,0 @@ const context = { |
@@ -0,3 +1,3 @@ | ||
import { z } from 'zod'; | ||
import { type BaseOpenTrussComponentV1 } from '../configuration/engine-v1'; | ||
import { z } from 'zod'; | ||
export declare const Props: z.ZodObject<{ | ||
@@ -4,0 +4,0 @@ data: z.ZodOptional<z.ZodType<import("..").YamlType, z.ZodTypeDef, import("..").YamlType>>; |
@@ -1,6 +0,5 @@ | ||
import { withChildren, BaseOpenTrussComponentV1PropsShape, } from '../configuration/engine-v1'; | ||
import { parseUqiResult } from '../uqi/uqi'; | ||
import { z } from 'zod'; | ||
import { BaseOpenTrussComponentV1PropsShape, withChildren, } from '../configuration/engine-v1'; | ||
import { NumberSignal, StringSignal, UnknownSignal, signalValueShape, useSignalEffect, } from '../signals'; | ||
import { isObject } from '../utils/misc'; | ||
import { NumberSignal, StringSignal, UnknownSignal, signalValueShape, useSignalEffect, } from '../signals'; | ||
import { z } from 'zod'; | ||
export const Props = BaseOpenTrussComponentV1PropsShape.extend({ | ||
@@ -45,9 +44,8 @@ ...withChildren, | ||
const shape = signalValueShape(signal); | ||
const parsedResults = parseUqiResult(queryResults); | ||
const defaultValue = shape.parse(undefined); | ||
const result = Array.isArray(defaultValue) | ||
? parsedResults | ||
? queryResults.rows | ||
: isObject(defaultValue) | ||
? parsedResults[0] | ||
: (_a = parsedResults[0]) === null || _a === void 0 ? void 0 : _a[signal.yamlName]; | ||
? queryResults.rows[0] | ||
: (_a = queryResults.rows[0]) === null || _a === void 0 ? void 0 : _a[signal.yamlName]; | ||
const validatedResult = shape.parse(result); | ||
@@ -54,0 +52,0 @@ if (_DEBUG_) |
export type UqiMappedType = 'String' | 'Number' | 'Boolean' | 'BigInt' | 'Date' | 'JSON'; | ||
export declare function castUqiValue(type: UqiMappedType, value: string): unknown; | ||
export declare function parseUqiResult(result: SynchronousQueryResult): Array<Record<string, unknown>>; | ||
export interface SynchronousQueryResult { | ||
rows: SynchronousQueryRow[]; | ||
metadata: SynchronousQueryMetadata; | ||
} | ||
export interface SynchronousQueryRow { | ||
values: SynchronousQueryValue[]; | ||
} | ||
export interface SynchronousQueryValue { | ||
key: string; | ||
type: UqiMappedType; | ||
value: string; | ||
} | ||
export interface SynchronousQueryMetadata { | ||
columns: SynchronousQueryColumn[]; | ||
} | ||
export interface SynchronousQueryColumn { | ||
name: string; | ||
type: string; | ||
} | ||
export type UqiTypeMappings = Record<string, UqiMappedType>; | ||
@@ -24,0 +3,0 @@ export interface UqiColumn { |
import Iterator from './iterator'; | ||
export function castUqiValue(type, value) { | ||
switch (type) { | ||
case 'String': | ||
return String(value); | ||
case 'Number': | ||
return Number(value) || 0; | ||
case 'Boolean': | ||
return value.toLowerCase() === 'true'; | ||
case 'BigInt': | ||
return BigInt(value); | ||
case 'Date': | ||
return Date.parse(value); | ||
case 'JSON': { | ||
// Case when JSON is already parsed | ||
if (typeof value === 'object' || Array.isArray(value)) | ||
return value; | ||
return JSON.parse(value); | ||
} | ||
default: | ||
return value; | ||
} | ||
} | ||
// Parses and reformats a SynchronousQueryResult and | ||
// casts the values to the appropriate javascript type | ||
// SynchronousQueryResult: | ||
// { | ||
// rows: [ | ||
// { | ||
// values: { | ||
// key: 'name', type: 'String', value: 'value' | ||
// } | ||
// } | ||
// ] | ||
// } | ||
// | ||
// Result: | ||
// [ | ||
// { name: 'value' } | ||
// ] | ||
export function parseUqiResult(result) { | ||
return result.rows.map((row) => { | ||
const rowResult = {}; | ||
row.values.forEach(({ key, type, value }) => { | ||
rowResult[key] = value === null ? null : castUqiValue(type, value); | ||
}); | ||
return rowResult; | ||
}); | ||
} | ||
export function uqi(og) { | ||
@@ -51,0 +3,0 @@ const context = { |
{ | ||
"name": "@open-truss/open-truss", | ||
"version": "0.22.0", | ||
"version": "0.23.0", | ||
"description": "Framework for building internal tools", | ||
@@ -5,0 +5,0 @@ "directories": { |
@@ -11,77 +11,2 @@ import Iterator from './iterator' | ||
export function castUqiValue(type: UqiMappedType, value: string): unknown { | ||
switch (type) { | ||
case 'String': | ||
return String(value) | ||
case 'Number': | ||
return Number(value) || 0 | ||
case 'Boolean': | ||
return value.toLowerCase() === 'true' | ||
case 'BigInt': | ||
return BigInt(value) | ||
case 'Date': | ||
return Date.parse(value) | ||
case 'JSON': { | ||
// Case when JSON is already parsed | ||
if (typeof value === 'object' || Array.isArray(value)) return value | ||
return JSON.parse(value) | ||
} | ||
default: | ||
return value | ||
} | ||
} | ||
// Parses and reformats a SynchronousQueryResult and | ||
// casts the values to the appropriate javascript type | ||
// SynchronousQueryResult: | ||
// { | ||
// rows: [ | ||
// { | ||
// values: { | ||
// key: 'name', type: 'String', value: 'value' | ||
// } | ||
// } | ||
// ] | ||
// } | ||
// | ||
// Result: | ||
// [ | ||
// { name: 'value' } | ||
// ] | ||
export function parseUqiResult( | ||
result: SynchronousQueryResult, | ||
): Array<Record<string, unknown>> { | ||
return result.rows.map((row) => { | ||
const rowResult: Record<string, unknown> = {} | ||
row.values.forEach(({ key, type, value }) => { | ||
rowResult[key] = value === null ? null : castUqiValue(type, value) | ||
}) | ||
return rowResult | ||
}) | ||
} | ||
export interface SynchronousQueryResult { | ||
rows: SynchronousQueryRow[] | ||
metadata: SynchronousQueryMetadata | ||
} | ||
export interface SynchronousQueryRow { | ||
values: SynchronousQueryValue[] | ||
} | ||
export interface SynchronousQueryValue { | ||
key: string | ||
type: UqiMappedType | ||
value: string | ||
} | ||
export interface SynchronousQueryMetadata { | ||
columns: SynchronousQueryColumn[] | ||
} | ||
export interface SynchronousQueryColumn { | ||
name: string | ||
type: string | ||
} | ||
export type UqiTypeMappings = Record<string, UqiMappedType> | ||
@@ -88,0 +13,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
425005
8492