Skip to content

Commit

Permalink
Expose Check utility functions in TypeScript
Browse files Browse the repository at this point in the history
  • Loading branch information
imalsogreg committed Oct 18, 2024
1 parent dd4245f commit 537e0df
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 10 deletions.
9 changes: 5 additions & 4 deletions engine/language_client_typescript/checked.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@ export interface Checked<T, K extends BaseChecks> {
value: T;
checks: K;
}
interface Check {
export interface Check {
name: string;
expr: string;
result: "succeeded" | "failed";
status: "succeeded" | "failed";
}
interface BaseChecks {
export interface BaseChecks {
[key: string]: Check;
}
export {};
export declare function all_succeeded<K extends BaseChecks>(checks: K): boolean;
export declare function get_checks<K extends BaseChecks>(checks: K): Check[];
//# sourceMappingURL=checked.d.ts.map
2 changes: 1 addition & 1 deletion engine/language_client_typescript/checked.d.ts.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion engine/language_client_typescript/checked.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.get_checks = exports.all_succeeded = void 0;
function all_succeeded(checks) {
return Object.values(checks).every(value => value.result == "succeeded");
return Object.values(checks).every(value => value.status == "succeeded");
}
exports.all_succeeded = all_succeeded;
function get_checks(checks) {
return Object.values(checks);
}
exports.get_checks = get_checks;
10 changes: 7 additions & 3 deletions engine/language_client_typescript/typescript_src/checked.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,20 @@ export interface Checked<T,K extends BaseChecks> {
checks: K,
}

interface Check {
export interface Check {
name: string,
expr: string
status: "succeeded" | "failed"
}

interface BaseChecks {
export interface BaseChecks {
[key: string]: Check
}

function all_succeeded<K extends BaseChecks>(checks: K): boolean {
export function all_succeeded<K extends BaseChecks>(checks: K): boolean {
return Object.values(checks).every(value => value.status == "succeeded");
}

export function get_checks<K extends BaseChecks>(checks: K): Check[] {
return Object.values(checks)
}
6 changes: 5 additions & 1 deletion integ-tests/typescript/test-report.html

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions integ-tests/typescript/tests/integ-tests.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import { RecursivePartialNull } from '../baml_client/async_client'
import { b as b_sync } from '../baml_client/sync_client'
import { config } from 'dotenv'
import { BamlLogEvent, BamlRuntime } from '@boundaryml/baml/native'
import { all_succeeded, get_checks } from '@boundaryml/baml/checked'
import { AsyncLocalStorage } from 'async_hooks'
import { DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME, resetBamlEnvVars } from '../baml_client/globals'
config()
Expand Down Expand Up @@ -648,6 +649,8 @@ describe('Integ tests', () => {
expect(res.primary.value.checks.valid_phone_number.status).toEqual("succeeded");
expect(res.secondary?.value.value).toEqual("[email protected]");
expect(res.secondary?.value.checks.valid_email.status).toEqual("succeeded");
expect(all_succeeded(res.primary.value.checks));
expect(get_checks(res.primary.value.checks).length).toEqual(1);
})
})

Expand Down

0 comments on commit 537e0df

Please sign in to comment.