@balena/pinejs 19.4.4-build-expose-tasks-models-on-pine-api-b7446355a6e859b9603c8d1f0e9e898dc53953f8-1 → 19.4.4-build-experiment-generated-typings-0b019e90cdb29b573c6bc663e516d118072465e6-1
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/.versionbot/CHANGELOG.yml +3 -3
- package/CHANGELOG.md +1 -1
- package/out/tasks/index.d.ts +2 -8
- package/out/tasks/index.js.map +1 -1
- package/out/tasks/worker.d.ts +4 -4
- package/package.json +2 -2
- package/src/tasks/index.ts +6 -11
- package/src/tasks/worker.ts +4 -4
@@ -1,6 +1,6 @@
|
|
1
1
|
- commits:
|
2
|
-
- subject:
|
3
|
-
hash:
|
2
|
+
- subject: Wip
|
3
|
+
hash: 0b019e90cdb29b573c6bc663e516d118072465e6
|
4
4
|
body: ""
|
5
5
|
footer:
|
6
6
|
Change-type: patch
|
@@ -9,7 +9,7 @@
|
|
9
9
|
nested: []
|
10
10
|
version: 19.4.4
|
11
11
|
title: ""
|
12
|
-
date: 2024-10-
|
12
|
+
date: 2024-10-23T22:12:25.422Z
|
13
13
|
- commits:
|
14
14
|
- subject: Avoid starting more async task workers if it is already running
|
15
15
|
hash: 2bcb311d0680a2010061ce923edf6f7d6616e06a
|
package/CHANGELOG.md
CHANGED
package/out/tasks/index.d.ts
CHANGED
@@ -1,16 +1,10 @@
|
|
1
1
|
import type { Schema } from 'ajv';
|
2
2
|
import type { ConfigLoader } from '../server-glue/module';
|
3
|
-
import { apiRoot } from './common';
|
4
3
|
import type { TaskHandler } from './worker';
|
5
4
|
import { Worker } from './worker';
|
6
|
-
import type
|
5
|
+
import type { FromSchema } from 'json-schema-to-ts';
|
7
6
|
export type * from './tasks';
|
8
|
-
declare module '../sbvr-api/sbvr-utils' {
|
9
|
-
interface API {
|
10
|
-
[apiRoot]: PinejsClient<TasksModel>;
|
11
|
-
}
|
12
|
-
}
|
13
7
|
export declare const config: ConfigLoader.Config;
|
14
8
|
export declare let worker: Worker | null;
|
15
9
|
export declare function setup(): Promise<void>;
|
16
|
-
export declare function addTaskHandler(name: string, fn: TaskHandler['fn'], schema?:
|
10
|
+
export declare function addTaskHandler<T extends Schema>(name: string, fn: T extends undefined ? TaskHandler<undefined>['fn'] : TaskHandler<FromSchema<NonNullable<T>>>['fn'], schema?: T): void;
|
package/out/tasks/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"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"}
|
package/out/tasks/worker.d.ts
CHANGED
@@ -3,17 +3,17 @@ import type { AnyObject } from 'pinejs-client-core';
|
|
3
3
|
import { PinejsClient } from '../sbvr-api/sbvr-utils';
|
4
4
|
import type { Task } from './tasks';
|
5
5
|
import type TasksModel from './tasks';
|
6
|
-
interface TaskArgs {
|
6
|
+
interface TaskArgs<T = AnyObject> {
|
7
7
|
api: PinejsClient;
|
8
|
-
params:
|
8
|
+
params: T;
|
9
9
|
}
|
10
10
|
type TaskResponse = Promise<{
|
11
11
|
status: Task['Read']['status'];
|
12
12
|
error?: string;
|
13
13
|
}>;
|
14
|
-
export interface TaskHandler {
|
14
|
+
export interface TaskHandler<T = AnyObject> {
|
15
15
|
name: string;
|
16
|
-
fn: (options: TaskArgs) => TaskResponse;
|
16
|
+
fn: (options: TaskArgs<T>) => TaskResponse;
|
17
17
|
validate?: ValidateFunction;
|
18
18
|
}
|
19
19
|
export declare class Worker {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@balena/pinejs",
|
3
|
-
"version": "19.4.4-build-
|
3
|
+
"version": "19.4.4-build-experiment-generated-typings-0b019e90cdb29b573c6bc663e516d118072465e6-1",
|
4
4
|
"main": "out/server-glue/module",
|
5
5
|
"type": "commonjs",
|
6
6
|
"repository": "git@github.com:balena-io/pinejs.git",
|
@@ -147,6 +147,6 @@
|
|
147
147
|
"recursive": true
|
148
148
|
},
|
149
149
|
"versionist": {
|
150
|
-
"publishedAt": "2024-10-
|
150
|
+
"publishedAt": "2024-10-23T22:12:26.450Z"
|
151
151
|
}
|
152
152
|
}
|
package/src/tasks/index.ts
CHANGED
@@ -7,8 +7,7 @@ import type { ConfigLoader } from '../server-glue/module';
|
|
7
7
|
import { ajv, apiRoot } from './common';
|
8
8
|
import type { TaskHandler } from './worker';
|
9
9
|
import { Worker } from './worker';
|
10
|
-
import type
|
11
|
-
|
10
|
+
import type { FromSchema } from 'json-schema-to-ts';
|
12
11
|
export type * from './tasks';
|
13
12
|
|
14
13
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
@@ -23,12 +22,6 @@ CREATE INDEX IF NOT EXISTS idx_task_poll ON task USING btree (
|
|
23
22
|
) WHERE status = 'queued';
|
24
23
|
`;
|
25
24
|
|
26
|
-
declare module '../sbvr-api/sbvr-utils' {
|
27
|
-
export interface API {
|
28
|
-
[apiRoot]: PinejsClient<TasksModel>;
|
29
|
-
}
|
30
|
-
}
|
31
|
-
|
32
25
|
export const config: ConfigLoader.Config = {
|
33
26
|
models: [
|
34
27
|
{
|
@@ -125,10 +118,12 @@ export async function setup(): Promise<void> {
|
|
125
118
|
}
|
126
119
|
|
127
120
|
// Register a task handler
|
128
|
-
export function addTaskHandler(
|
121
|
+
export function addTaskHandler<T extends Schema>(
|
129
122
|
name: string,
|
130
|
-
fn:
|
131
|
-
|
123
|
+
fn: T extends undefined
|
124
|
+
? TaskHandler<undefined>['fn']
|
125
|
+
: TaskHandler<FromSchema<NonNullable<T>>>['fn'],
|
126
|
+
schema?: T,
|
132
127
|
): void {
|
133
128
|
if (worker == null) {
|
134
129
|
throw new Error('Database does not support tasks');
|
package/src/tasks/worker.ts
CHANGED
@@ -10,9 +10,9 @@ import { ajv } from './common';
|
|
10
10
|
import type { Task } from './tasks';
|
11
11
|
import type TasksModel from './tasks';
|
12
12
|
|
13
|
-
interface TaskArgs {
|
13
|
+
interface TaskArgs<T = AnyObject> {
|
14
14
|
api: PinejsClient;
|
15
|
-
params:
|
15
|
+
params: T;
|
16
16
|
}
|
17
17
|
|
18
18
|
type TaskResponse = Promise<{
|
@@ -20,9 +20,9 @@ type TaskResponse = Promise<{
|
|
20
20
|
error?: string;
|
21
21
|
}>;
|
22
22
|
|
23
|
-
export interface TaskHandler {
|
23
|
+
export interface TaskHandler<T = AnyObject> {
|
24
24
|
name: string;
|
25
|
-
fn: (options: TaskArgs) => TaskResponse;
|
25
|
+
fn: (options: TaskArgs<T>) => TaskResponse;
|
26
26
|
validate?: ValidateFunction;
|
27
27
|
}
|
28
28
|
|