@temporalio/core-bridge
Advanced tools
Comparing version 1.1.0 to 1.3.0
@@ -32,3 +32,3 @@ /** | ||
function getPrebuiltPath() { | ||
function getPrebuiltTargetName() { | ||
const arch = archAlias[os.arch()]; | ||
@@ -42,3 +42,7 @@ if (arch === undefined) { | ||
} | ||
const binary = path.resolve(__dirname, 'releases', `${arch}-${platform}`, 'index.node'); | ||
return `${arch}-${platform}`; | ||
} | ||
function getPrebuiltPath() { | ||
const binary = path.resolve(__dirname, 'releases', getPrebuiltTargetName(), 'index.node'); | ||
if (fs.existsSync(binary)) { | ||
@@ -51,2 +55,2 @@ return binary; | ||
module.exports = { targets, archAlias, platformMapping, PrebuildError, getPrebuiltPath }; | ||
module.exports = { targets, archAlias, platformMapping, PrebuildError, getPrebuiltPath, getPrebuiltTargetName }; |
113
index.d.ts
@@ -244,6 +244,105 @@ import { SpanContext } from '@opentelemetry/api'; | ||
export interface Worker {} | ||
export interface Runtime {} | ||
export interface Client {} | ||
/** | ||
* Which version of the executable to run. | ||
*/ | ||
export type EphemeralServerExecutable = | ||
| { | ||
type: 'cached-download'; | ||
/** | ||
* Download destination directory or the system's temp directory if none set. | ||
*/ | ||
downloadDir?: string; | ||
/** | ||
* Optional version, can be set to a specific server release or "default" or "latest". | ||
* | ||
* At the time of writing the the server is released as part of the Java SDK - (https://github.com/temporalio/sdk-java/releases). | ||
* | ||
* @default "default" - get the best version for the current SDK version. | ||
*/ | ||
version?: string; | ||
} | ||
| { | ||
type: 'existing-path'; | ||
/** Path to executable */ | ||
path: string; | ||
}; | ||
/** | ||
* Configuration for the time-skipping test server. | ||
*/ | ||
export interface TimeSkippingServerConfig { | ||
type: 'time-skipping'; | ||
executable?: EphemeralServerExecutable; | ||
/** | ||
* Optional port to listen on, defaults to find a random free port. | ||
*/ | ||
port?: number; | ||
/** | ||
* Extra args to pass to the executable command. | ||
*/ | ||
extraArgs?: string[]; | ||
} | ||
/** | ||
* Configuration for temporalite. | ||
*/ | ||
export interface TemporaliteConfig { | ||
type: 'temporalite'; | ||
executable?: EphemeralServerExecutable; | ||
/** | ||
* Namespace to use - created at startup. | ||
* | ||
* @default "default" | ||
*/ | ||
namespace?: string; | ||
/** | ||
* IP to bind to. | ||
* | ||
* @default 127.0.0.1 | ||
*/ | ||
ip?: string; | ||
/** | ||
* Sqlite DB filename if persisting or non-persistent if none. | ||
*/ | ||
db_filename?: string; | ||
/** | ||
* Whether to enable the UI. | ||
*/ | ||
ui?: boolean; | ||
/** | ||
* Log format and level | ||
* @default { format: "pretty", level" "warn" } | ||
*/ | ||
log?: { format: string; level: string }; | ||
/** | ||
* Optional port to listen on, defaults to find a random free port. | ||
*/ | ||
port?: number; | ||
/** | ||
* Extra args to pass to the executable command. | ||
*/ | ||
extraArgs?: string[]; | ||
} | ||
/** | ||
* Configuration for spawning an ephemeral Temporal server. | ||
* | ||
* Both the time-skipping test server and temporalite are supported. | ||
*/ | ||
export type EphemeralServerConfig = TimeSkippingServerConfig | TemporaliteConfig; | ||
export interface Worker { | ||
type: 'Worker'; | ||
} | ||
export interface Runtime { | ||
type: 'Runtime'; | ||
} | ||
export interface Client { | ||
type: 'Client'; | ||
} | ||
export interface EphemeralServer { | ||
type: 'EphemeralServer'; | ||
} | ||
export declare type Callback<T> = (err: Error, result: T) => void; | ||
export declare type PollCallback = (err: Error, result: ArrayBuffer) => void; | ||
@@ -297,1 +396,9 @@ export declare type WorkerCallback = (err: Error, result: Worker) => void; | ||
export declare function getTimeOfDay(): [number, number]; | ||
export declare function startEphemeralServer( | ||
runtime: Runtime, | ||
config: EphemeralServerConfig, | ||
sdkVersion: string, | ||
callback: Callback<EphemeralServer> | ||
): void; | ||
export declare function shutdownEphemeralServer(server: EphemeralServer, callback: Callback<EphemeralServer>): void; | ||
export declare function getEphemeralServerTarget(server: EphemeralServer): string; |
@@ -1,2 +0,2 @@ | ||
const { getPrebuiltPath, PrebuildError } = require('./common'); | ||
const { getPrebuiltPath } = require('./common'); | ||
@@ -7,7 +7,3 @@ try { | ||
} catch (err) { | ||
if (err instanceof PrebuildError) { | ||
module.exports = require('./default-build/index.node'); | ||
} else { | ||
throw err; | ||
} | ||
throw err; | ||
} |
{ | ||
"name": "@temporalio/core-bridge", | ||
"version": "1.1.0", | ||
"version": "1.3.0", | ||
"description": "Temporal.io SDK Core<>Node bridge", | ||
@@ -23,3 +23,3 @@ "main": "index.js", | ||
"@opentelemetry/api": "^1.1.0", | ||
"@temporalio/internal-non-workflow-common": "^1.1.0", | ||
"@temporalio/internal-non-workflow-common": "^1.3.0", | ||
"arg": "^5.0.2", | ||
@@ -47,3 +47,3 @@ "cargo-cp-artifact": "^0.1.6", | ||
}, | ||
"gitHead": "132f23a47a93fecf3f39836b31f08ea837b30320" | ||
"gitHead": "966d51d3545a5e84102190f5b762160b9dfe99c2" | ||
} |
@@ -7,3 +7,3 @@ const path = require('path'); | ||
const { version } = require('../package.json'); | ||
const { targets, getPrebuiltPath, PrebuildError } = require('../common'); | ||
const { targets, getPrebuiltPath, getPrebuiltTargetName, PrebuildError } = require('../common'); | ||
@@ -58,6 +58,7 @@ process.chdir(path.resolve(__dirname, '..')); | ||
function compile(target) { | ||
function compile(requestedTarget) { | ||
const target = requestedTarget ?? getPrebuiltTargetName(); | ||
console.log('Compiling bridge', { target, buildRelease }); | ||
const out = target ? `releases/${target}/index.node` : 'default-build/index.node'; | ||
const out = `releases/${target}/index.node`; | ||
try { | ||
@@ -64,0 +65,0 @@ fs.unlinkSync(out); |
@@ -69,3 +69,3 @@ Core SDK Architecture | ||
See the latest API definition [here](https://github.com/temporalio/sdk-core/blob/master/protos/local/core_interface.proto) | ||
See the latest API definition [here](https://github.com/temporalio/sdk-core/tree/master/protos/local/temporal/sdk/core) | ||
@@ -77,2 +77,2 @@ | ||
## Workflow Processing Internals | ||
![Workflow Internals](arch_docs/diagrams/workflow_internals.svg) | ||
![Workflow Internals](arch_docs/diagrams/workflow_internals.svg) |
@@ -9,8 +9,4 @@ <!-- Describe what has changed in this PR --> | ||
<!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> | ||
**How did you test it?** | ||
<!-- Are there any breaking changes on binary or code level? --> | ||
**Breaking changes** | ||
<!-- Assuming the worst case, what can be broken when deploying this change to production? --> | ||
**Potential risks** | ||
@@ -79,2 +79,14 @@ [![Build status](https://badge.buildkite.com/c23f47f4a827f04daece909963bd3a248496f0cdbabfbecee4.svg?branch=master)](https://buildkite.com/temporal/core-sdk?branch=master) | ||
The java testserver protos are also pulled from the sdk-java repo, but since we only need a | ||
subdirectory of that repo, we just copy the files with read-tree: | ||
```bash | ||
# add sdk-java as a remote if you have not already | ||
git remote add -f -t master --no-tags testsrv-protos git@github.com:temporalio/sdk-java.git | ||
# delete existing protos | ||
git rm -rf protos/testsrv_upstream | ||
# pull from upstream & commit | ||
git read-tree --prefix protos/testsrv_upstream -u testsrv-protos/master:temporal-test-server/src/main/proto | ||
git commit | ||
``` | ||
## Fetching Histories | ||
@@ -81,0 +93,0 @@ Tests which would like to replay stored histories rely on that history being made available in |
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Mixed license
License(Experimental) Package contains multiple licenses.
Found 1 instance in 1 package
95965476
261
520
1