@spoosh/plugin-transform 0.4.1 → 0.5.0
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/index.d.mts +7 -18
- package/dist/index.d.ts +7 -18
- package/dist/index.js +8 -7
- package/dist/index.mjs +8 -7
- package/package.json +3 -3
package/dist/index.d.mts
CHANGED
|
@@ -17,13 +17,12 @@ interface TransformWriteOptions {
|
|
|
17
17
|
/** Per-request transform function for response data. */
|
|
18
18
|
transform?: ResponseTransformer<unknown, unknown>;
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
/** Per-request transform function for response data. */
|
|
22
|
-
transform?: ResponseTransformer<unknown, unknown>;
|
|
23
|
-
}
|
|
20
|
+
type TransformInfiniteReadOptions = object;
|
|
24
21
|
type TransformReadResult = object;
|
|
25
|
-
type TransformWriteResult =
|
|
26
|
-
|
|
22
|
+
type TransformWriteResult = {
|
|
23
|
+
transformedData?: unknown;
|
|
24
|
+
};
|
|
25
|
+
type TransformOptions = TransformReadOptions | TransformWriteOptions;
|
|
27
26
|
/**
|
|
28
27
|
* Extracts the return type of a response transformer from hook options.
|
|
29
28
|
* Returns `never` if no response transformer is provided.
|
|
@@ -31,22 +30,13 @@ type TransformOptions = TransformReadOptions | TransformWriteOptions | Transform
|
|
|
31
30
|
type InferTransformedData<TOptions> = TOptions extends {
|
|
32
31
|
transform: (data: never) => MaybePromise<infer R>;
|
|
33
32
|
} ? R : never;
|
|
34
|
-
/**
|
|
35
|
-
* Conditionally adds `transformedData` field to hook result.
|
|
36
|
-
* Only present when a response transformer is provided.
|
|
37
|
-
*/
|
|
38
|
-
type TransformResultField<TOptions> = [
|
|
39
|
-
InferTransformedData<TOptions>
|
|
40
|
-
] extends [never] ? object : {
|
|
41
|
-
transformedData: InferTransformedData<TOptions> | undefined;
|
|
42
|
-
};
|
|
43
33
|
declare module "@spoosh/core" {
|
|
44
34
|
interface PluginResolvers<TContext extends ResolverContext> {
|
|
45
35
|
transform: ResponseTransformer<TContext["data"], unknown> | undefined;
|
|
46
36
|
}
|
|
47
37
|
interface PluginResultResolvers<TOptions> {
|
|
48
38
|
transformedData: TOptions extends {
|
|
49
|
-
transform
|
|
39
|
+
transform?: (data: any) => MaybePromise<infer R>;
|
|
50
40
|
} ? Awaited<R> | undefined : never;
|
|
51
41
|
}
|
|
52
42
|
}
|
|
@@ -88,9 +78,8 @@ declare module "@spoosh/core" {
|
|
|
88
78
|
declare function transformPlugin(): SpooshPlugin<{
|
|
89
79
|
readOptions: TransformReadOptions;
|
|
90
80
|
writeOptions: TransformWriteOptions;
|
|
91
|
-
infiniteReadOptions: TransformInfiniteReadOptions;
|
|
92
81
|
readResult: TransformReadResult;
|
|
93
82
|
writeResult: TransformWriteResult;
|
|
94
83
|
}>;
|
|
95
84
|
|
|
96
|
-
export { type InferTransformedData, type MaybePromise, type ResponseTransformer, type TransformInfiniteReadOptions, type TransformOptions, type TransformPluginConfig, type TransformReadOptions, type TransformReadResult, type
|
|
85
|
+
export { type InferTransformedData, type MaybePromise, type ResponseTransformer, type TransformInfiniteReadOptions, type TransformOptions, type TransformPluginConfig, type TransformReadOptions, type TransformReadResult, type TransformWriteOptions, type TransformWriteResult, transformPlugin };
|
package/dist/index.d.ts
CHANGED
|
@@ -17,13 +17,12 @@ interface TransformWriteOptions {
|
|
|
17
17
|
/** Per-request transform function for response data. */
|
|
18
18
|
transform?: ResponseTransformer<unknown, unknown>;
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
/** Per-request transform function for response data. */
|
|
22
|
-
transform?: ResponseTransformer<unknown, unknown>;
|
|
23
|
-
}
|
|
20
|
+
type TransformInfiniteReadOptions = object;
|
|
24
21
|
type TransformReadResult = object;
|
|
25
|
-
type TransformWriteResult =
|
|
26
|
-
|
|
22
|
+
type TransformWriteResult = {
|
|
23
|
+
transformedData?: unknown;
|
|
24
|
+
};
|
|
25
|
+
type TransformOptions = TransformReadOptions | TransformWriteOptions;
|
|
27
26
|
/**
|
|
28
27
|
* Extracts the return type of a response transformer from hook options.
|
|
29
28
|
* Returns `never` if no response transformer is provided.
|
|
@@ -31,22 +30,13 @@ type TransformOptions = TransformReadOptions | TransformWriteOptions | Transform
|
|
|
31
30
|
type InferTransformedData<TOptions> = TOptions extends {
|
|
32
31
|
transform: (data: never) => MaybePromise<infer R>;
|
|
33
32
|
} ? R : never;
|
|
34
|
-
/**
|
|
35
|
-
* Conditionally adds `transformedData` field to hook result.
|
|
36
|
-
* Only present when a response transformer is provided.
|
|
37
|
-
*/
|
|
38
|
-
type TransformResultField<TOptions> = [
|
|
39
|
-
InferTransformedData<TOptions>
|
|
40
|
-
] extends [never] ? object : {
|
|
41
|
-
transformedData: InferTransformedData<TOptions> | undefined;
|
|
42
|
-
};
|
|
43
33
|
declare module "@spoosh/core" {
|
|
44
34
|
interface PluginResolvers<TContext extends ResolverContext> {
|
|
45
35
|
transform: ResponseTransformer<TContext["data"], unknown> | undefined;
|
|
46
36
|
}
|
|
47
37
|
interface PluginResultResolvers<TOptions> {
|
|
48
38
|
transformedData: TOptions extends {
|
|
49
|
-
transform
|
|
39
|
+
transform?: (data: any) => MaybePromise<infer R>;
|
|
50
40
|
} ? Awaited<R> | undefined : never;
|
|
51
41
|
}
|
|
52
42
|
}
|
|
@@ -88,9 +78,8 @@ declare module "@spoosh/core" {
|
|
|
88
78
|
declare function transformPlugin(): SpooshPlugin<{
|
|
89
79
|
readOptions: TransformReadOptions;
|
|
90
80
|
writeOptions: TransformWriteOptions;
|
|
91
|
-
infiniteReadOptions: TransformInfiniteReadOptions;
|
|
92
81
|
readResult: TransformReadResult;
|
|
93
82
|
writeResult: TransformWriteResult;
|
|
94
83
|
}>;
|
|
95
84
|
|
|
96
|
-
export { type InferTransformedData, type MaybePromise, type ResponseTransformer, type TransformInfiniteReadOptions, type TransformOptions, type TransformPluginConfig, type TransformReadOptions, type TransformReadResult, type
|
|
85
|
+
export { type InferTransformedData, type MaybePromise, type ResponseTransformer, type TransformInfiniteReadOptions, type TransformOptions, type TransformPluginConfig, type TransformReadOptions, type TransformReadResult, type TransformWriteOptions, type TransformWriteResult, transformPlugin };
|
package/dist/index.js
CHANGED
|
@@ -28,16 +28,17 @@ module.exports = __toCommonJS(src_exports);
|
|
|
28
28
|
function transformPlugin() {
|
|
29
29
|
return {
|
|
30
30
|
name: "spoosh:transform",
|
|
31
|
-
operations: ["read", "write"
|
|
32
|
-
|
|
31
|
+
operations: ["read", "write"],
|
|
32
|
+
afterResponse: async (context, response) => {
|
|
33
33
|
const pluginOptions = context.pluginOptions;
|
|
34
34
|
const responseTransformer = pluginOptions?.transform;
|
|
35
|
-
if (responseTransformer
|
|
36
|
-
|
|
37
|
-
context.stateManager.setMeta(context.queryKey, {
|
|
38
|
-
transformedData
|
|
39
|
-
});
|
|
35
|
+
if (!responseTransformer || response.data === void 0) {
|
|
36
|
+
return;
|
|
40
37
|
}
|
|
38
|
+
const transformedData = await responseTransformer(response.data);
|
|
39
|
+
context.stateManager.setMeta(context.queryKey, {
|
|
40
|
+
transformedData
|
|
41
|
+
});
|
|
41
42
|
}
|
|
42
43
|
};
|
|
43
44
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
function transformPlugin() {
|
|
3
3
|
return {
|
|
4
4
|
name: "spoosh:transform",
|
|
5
|
-
operations: ["read", "write"
|
|
6
|
-
|
|
5
|
+
operations: ["read", "write"],
|
|
6
|
+
afterResponse: async (context, response) => {
|
|
7
7
|
const pluginOptions = context.pluginOptions;
|
|
8
8
|
const responseTransformer = pluginOptions?.transform;
|
|
9
|
-
if (responseTransformer
|
|
10
|
-
|
|
11
|
-
context.stateManager.setMeta(context.queryKey, {
|
|
12
|
-
transformedData
|
|
13
|
-
});
|
|
9
|
+
if (!responseTransformer || response.data === void 0) {
|
|
10
|
+
return;
|
|
14
11
|
}
|
|
12
|
+
const transformedData = await responseTransformer(response.data);
|
|
13
|
+
context.stateManager.setMeta(context.queryKey, {
|
|
14
|
+
transformedData
|
|
15
|
+
});
|
|
15
16
|
}
|
|
16
17
|
};
|
|
17
18
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spoosh/plugin-transform",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Data transformation plugin for Spoosh with sync/async support",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@spoosh/core": ">=0.
|
|
36
|
+
"@spoosh/core": ">=0.8.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@spoosh/core": "0.
|
|
39
|
+
"@spoosh/core": "0.8.0",
|
|
40
40
|
"@spoosh/test-utils": "0.1.5"
|
|
41
41
|
},
|
|
42
42
|
"scripts": {
|