@dbos-inc/dbos-sdk 1.3.2-preview → 1.3.5-preview
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/dbos-runtime/cli.d.ts.map +1 -1
- package/dist/src/dbos-runtime/cli.js +2 -3
- package/dist/src/dbos-runtime/cli.js.map +1 -1
- package/dist/src/dbos-runtime/runtime.d.ts +1 -0
- package/dist/src/dbos-runtime/runtime.d.ts.map +1 -1
- package/dist/src/dbos-runtime/runtime.js +5 -0
- package/dist/src/dbos-runtime/runtime.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/kafka/kafka.d.ts +30 -0
- package/dist/src/kafka/kafka.d.ts.map +1 -0
- package/dist/src/kafka/kafka.js +98 -0
- package/dist/src/kafka/kafka.js.map +1 -0
- package/dist/src/system_database.js +4 -4
- package/dist/src/system_database.js.map +1 -1
- package/dist/src/testing/testing_runtime.d.ts.map +1 -1
- package/dist/src/testing/testing_runtime.js +5 -0
- package/dist/src/testing/testing_runtime.js.map +1 -1
- package/dist/src/utils.d.ts +13 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +24 -1
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -3
- package/dist/src/dbos-runtime/init.d.ts +0 -7
- package/dist/src/dbos-runtime/init.d.ts.map +0 -1
- package/dist/src/dbos-runtime/init.js +0 -87
- package/dist/src/dbos-runtime/init.js.map +0 -1
- package/examples/hello/.eslintignore +0 -4
- package/examples/hello/.eslintrc +0 -19
- package/examples/hello/.vscode/extensions.json +0 -7
- package/examples/hello/.vscode/launch.json +0 -22
- package/examples/hello/.vscode/tasks.json +0 -17
- package/examples/hello/README.md +0 -50
- package/examples/hello/dbos-config.yaml +0 -15
- package/examples/hello/jest.config.js +0 -8
- package/examples/hello/knexfile.js +0 -20
- package/examples/hello/migrations/20240212161006_create_dbos_hello_tables.js +0 -18
- package/examples/hello/package-lock.json +0 -5532
- package/examples/hello/package.json +0 -24
- package/examples/hello/src/operations.test.ts +0 -38
- package/examples/hello/src/operations.ts +0 -21
- package/examples/hello/start_postgres_docker.bat +0 -36
- package/examples/hello/start_postgres_docker.sh +0 -23
- package/examples/hello/tsconfig.json +0 -24
@@ -1,24 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name": "dbos-hello",
|
3
|
-
"version": "0.0.1",
|
4
|
-
"scripts": {
|
5
|
-
"build": "tsc",
|
6
|
-
"test": "npx knex migrate:rollback && npx knex migrate:up && jest",
|
7
|
-
"lint": "eslint src",
|
8
|
-
"lint-fix": "eslint --fix src"
|
9
|
-
},
|
10
|
-
"devDependencies": {
|
11
|
-
"@dbos-inc/eslint-plugin": "^0.0.6",
|
12
|
-
"@types/jest": "^29.5.5",
|
13
|
-
"@types/supertest": "^2.0.14",
|
14
|
-
"eslint": "^8.56.0",
|
15
|
-
"jest": "^29.7.0",
|
16
|
-
"supertest": "^6.3.3",
|
17
|
-
"ts-jest": "^29.1.1",
|
18
|
-
"typescript": "^5.2.2"
|
19
|
-
},
|
20
|
-
"dependencies": {
|
21
|
-
"@dbos-inc/dbos-sdk": "../..",
|
22
|
-
"knex": "3.1.0"
|
23
|
-
}
|
24
|
-
}
|
@@ -1,38 +0,0 @@
|
|
1
|
-
import { TestingRuntime, createTestingRuntime } from "@dbos-inc/dbos-sdk";
|
2
|
-
import { Hello, dbos_hello } from "./operations";
|
3
|
-
import request from "supertest";
|
4
|
-
|
5
|
-
describe("operations-test", () => {
|
6
|
-
let testRuntime: TestingRuntime;
|
7
|
-
|
8
|
-
beforeAll(async () => {
|
9
|
-
testRuntime = await createTestingRuntime([Hello]);
|
10
|
-
});
|
11
|
-
|
12
|
-
afterAll(async () => {
|
13
|
-
await testRuntime.destroy();
|
14
|
-
});
|
15
|
-
|
16
|
-
/**
|
17
|
-
* Test the transaction.
|
18
|
-
*/
|
19
|
-
test("test-transaction", async () => {
|
20
|
-
const res = await testRuntime.invoke(Hello).helloTransaction("dbos");
|
21
|
-
expect(res).toMatch("Hello, dbos! You have been greeted");
|
22
|
-
|
23
|
-
// Check the greet count.
|
24
|
-
const rows = await testRuntime.queryUserDB<dbos_hello>("SELECT * FROM dbos_hello WHERE name=$1", "dbos");
|
25
|
-
expect(rows[0].greet_count).toBe(1);
|
26
|
-
});
|
27
|
-
|
28
|
-
/**
|
29
|
-
* Test the HTTP endpoint.
|
30
|
-
*/
|
31
|
-
test("test-endpoint", async () => {
|
32
|
-
const res = await request(testRuntime.getHandlersCallback()).get(
|
33
|
-
"/greeting/dbos"
|
34
|
-
);
|
35
|
-
expect(res.statusCode).toBe(200);
|
36
|
-
expect(res.text).toMatch("Hello, dbos! You have been greeted");
|
37
|
-
});
|
38
|
-
});
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import { TransactionContext, Transaction, GetApi, ArgSource, ArgSources } from '@dbos-inc/dbos-sdk';
|
2
|
-
import { Knex } from 'knex';
|
3
|
-
|
4
|
-
// The schema of the database table used in this example.
|
5
|
-
export interface dbos_hello {
|
6
|
-
name: string;
|
7
|
-
greet_count: number;
|
8
|
-
}
|
9
|
-
|
10
|
-
export class Hello {
|
11
|
-
|
12
|
-
@GetApi('/greeting/:user') // Serve this function from HTTP GET requests to the /greeting endpoint with 'user' as a path parameter
|
13
|
-
@Transaction() // Run this function as a database transaction
|
14
|
-
static async helloTransaction(ctxt: TransactionContext<Knex>, @ArgSource(ArgSources.URL) user: string) {
|
15
|
-
// Retrieve and increment the number of times this user has been greeted.
|
16
|
-
const query = "INSERT INTO dbos_hello (name, greet_count) VALUES (?, 1) ON CONFLICT (name) DO UPDATE SET greet_count = dbos_hello.greet_count + 1 RETURNING greet_count;";
|
17
|
-
const { rows } = await ctxt.client.raw(query, [user]) as { rows: dbos_hello[] };
|
18
|
-
const greet_count = rows[0].greet_count;
|
19
|
-
return `Hello, ${user}! You have been greeted ${greet_count} times.\n`;
|
20
|
-
}
|
21
|
-
}
|
@@ -1,36 +0,0 @@
|
|
1
|
-
@echo off
|
2
|
-
|
3
|
-
setlocal ENABLEEXTENSIONS
|
4
|
-
|
5
|
-
echo Checking if PGPASSWORD is set.
|
6
|
-
if "%PGPASSWORD%"=="" (
|
7
|
-
echo Error: PGPASSWORD is not set.
|
8
|
-
exit /b 1
|
9
|
-
)
|
10
|
-
|
11
|
-
echo Starting PostgreSQL in a local Docker container
|
12
|
-
docker run --rm --name=dbos-db --env=POSTGRES_PASSWORD=%PGPASSWORD% --env=PGDATA=/var/lib/postgresql/data --volume=/var/lib/postgresql/data -p 5432:5432 -d postgres:16.1
|
13
|
-
|
14
|
-
if %errorlevel% == 125 (
|
15
|
-
echo Error: Check if the Docker container already exists
|
16
|
-
exit /b 1
|
17
|
-
) else (
|
18
|
-
goto :start
|
19
|
-
)
|
20
|
-
|
21
|
-
:start
|
22
|
-
echo Waiting for PostgreSQL to start...
|
23
|
-
for /l %%i in (1,1,30) do (
|
24
|
-
docker exec dbos-db psql -U postgres -c "SELECT 1;" >NUL 2>&1
|
25
|
-
|
26
|
-
if %errorlevel% equ 0 (
|
27
|
-
(
|
28
|
-
echo PostgreSQL started!
|
29
|
-
goto :break
|
30
|
-
)
|
31
|
-
timeout /t 1 /nobreak
|
32
|
-
)
|
33
|
-
)
|
34
|
-
:break
|
35
|
-
|
36
|
-
echo Database started successfully^!
|
@@ -1,23 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
set -e
|
3
|
-
|
4
|
-
# Check if PGPASSWORD is set
|
5
|
-
if [[ -z "${PGPASSWORD}" ]]; then
|
6
|
-
echo "Error: PGPASSWORD is not set." >&2
|
7
|
-
exit 1
|
8
|
-
fi
|
9
|
-
|
10
|
-
# Start Postgres in a local Docker container
|
11
|
-
docker run --rm --name=dbos-db --env=POSTGRES_PASSWORD=${PGPASSWORD} --env=PGDATA=/var/lib/postgresql/data --volume=/var/lib/postgresql/data -p 5432:5432 -d postgres:16.1
|
12
|
-
|
13
|
-
# Wait for PostgreSQL to start
|
14
|
-
echo "Waiting for PostgreSQL to start..."
|
15
|
-
for i in {1..30}; do
|
16
|
-
if docker exec dbos-db psql -U postgres -c "SELECT 1;" > /dev/null 2>&1; then
|
17
|
-
echo "PostgreSQL started!"
|
18
|
-
break
|
19
|
-
fi
|
20
|
-
sleep 1
|
21
|
-
done
|
22
|
-
|
23
|
-
echo "Database started successfully!"
|
@@ -1,24 +0,0 @@
|
|
1
|
-
/* Visit https://aka.ms/tsconfig to read more about this file */
|
2
|
-
{
|
3
|
-
"compilerOptions": {
|
4
|
-
"target": "esnext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
|
5
|
-
"experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */
|
6
|
-
"emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
|
7
|
-
"module": "Node16", /* Specify what module code is generated. */
|
8
|
-
"declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
|
9
|
-
"declarationMap": true, /* Create sourcemaps for d.ts files. */
|
10
|
-
"sourceMap": true, /* Create source map files for emitted JavaScript files. */
|
11
|
-
"outDir": "./dist", /* Specify an output folder for all emitted files. */
|
12
|
-
"newLine": "lf", /* Set the newline character for emitting files. */
|
13
|
-
"esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
|
14
|
-
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
|
15
|
-
"strict": true, /* Enable all strict type-checking options. */
|
16
|
-
"skipLibCheck": true /* Skip type checking all .d.ts files. */
|
17
|
-
},
|
18
|
-
"include": [ /* Specifies an array of filenames or patterns to include in the program. */
|
19
|
-
"src"
|
20
|
-
],
|
21
|
-
"exclude": [
|
22
|
-
"**/*.test.ts"
|
23
|
-
]
|
24
|
-
}
|