@spoosh/plugin-transform 0.4.0 → 0.4.2

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 CHANGED
@@ -17,12 +17,11 @@ interface TransformWriteOptions {
17
17
  /** Per-request transform function for response data. */
18
18
  transform?: ResponseTransformer<unknown, unknown>;
19
19
  }
20
- interface TransformInfiniteReadOptions {
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 = object;
22
+ type TransformWriteResult = {
23
+ transformedData?: unknown;
24
+ };
26
25
  type TransformOptions = TransformReadOptions | TransformWriteOptions | TransformInfiniteReadOptions;
27
26
  /**
28
27
  * Extracts the return type of a response transformer from hook options.
@@ -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: (data: never) => MaybePromise<infer R>;
39
+ transform?: (data: any) => MaybePromise<infer R>;
50
40
  } ? Awaited<R> | undefined : never;
51
41
  }
52
42
  }
@@ -72,7 +62,7 @@ declare module "@spoosh/core" {
72
62
  *
73
63
  * // Per-request transforms with full type inference
74
64
  * const { data, meta } = useRead(
75
- * (api) => api.posts.$get(),
65
+ * (api) => api("posts").GET(),
76
66
  * {
77
67
  * transform: (posts) => ({
78
68
  * count: posts.length,
@@ -93,4 +83,4 @@ declare function transformPlugin(): SpooshPlugin<{
93
83
  writeResult: TransformWriteResult;
94
84
  }>;
95
85
 
96
- export { type InferTransformedData, type MaybePromise, type ResponseTransformer, type TransformInfiniteReadOptions, type TransformOptions, type TransformPluginConfig, type TransformReadOptions, type TransformReadResult, type TransformResultField, type TransformWriteOptions, type TransformWriteResult, transformPlugin };
86
+ 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,12 +17,11 @@ interface TransformWriteOptions {
17
17
  /** Per-request transform function for response data. */
18
18
  transform?: ResponseTransformer<unknown, unknown>;
19
19
  }
20
- interface TransformInfiniteReadOptions {
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 = object;
22
+ type TransformWriteResult = {
23
+ transformedData?: unknown;
24
+ };
26
25
  type TransformOptions = TransformReadOptions | TransformWriteOptions | TransformInfiniteReadOptions;
27
26
  /**
28
27
  * Extracts the return type of a response transformer from hook options.
@@ -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: (data: never) => MaybePromise<infer R>;
39
+ transform?: (data: any) => MaybePromise<infer R>;
50
40
  } ? Awaited<R> | undefined : never;
51
41
  }
52
42
  }
@@ -72,7 +62,7 @@ declare module "@spoosh/core" {
72
62
  *
73
63
  * // Per-request transforms with full type inference
74
64
  * const { data, meta } = useRead(
75
- * (api) => api.posts.$get(),
65
+ * (api) => api("posts").GET(),
76
66
  * {
77
67
  * transform: (posts) => ({
78
68
  * count: posts.length,
@@ -93,4 +83,4 @@ declare function transformPlugin(): SpooshPlugin<{
93
83
  writeResult: TransformWriteResult;
94
84
  }>;
95
85
 
96
- export { type InferTransformedData, type MaybePromise, type ResponseTransformer, type TransformInfiniteReadOptions, type TransformOptions, type TransformPluginConfig, type TransformReadOptions, type TransformReadResult, type TransformResultField, type TransformWriteOptions, type TransformWriteResult, transformPlugin };
86
+ 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,7 +28,7 @@ module.exports = __toCommonJS(src_exports);
28
28
  function transformPlugin() {
29
29
  return {
30
30
  name: "spoosh:transform",
31
- operations: ["read", "write", "infiniteRead"],
31
+ operations: ["read", "write"],
32
32
  onResponse: async (context, response) => {
33
33
  const pluginOptions = context.pluginOptions;
34
34
  const responseTransformer = pluginOptions?.transform;
package/dist/index.mjs CHANGED
@@ -2,7 +2,7 @@
2
2
  function transformPlugin() {
3
3
  return {
4
4
  name: "spoosh:transform",
5
- operations: ["read", "write", "infiniteRead"],
5
+ operations: ["read", "write"],
6
6
  onResponse: async (context, response) => {
7
7
  const pluginOptions = context.pluginOptions;
8
8
  const responseTransformer = pluginOptions?.transform;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spoosh/plugin-transform",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "Data transformation plugin for Spoosh with sync/async support",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -36,7 +36,7 @@
36
36
  "@spoosh/core": ">=0.6.0"
37
37
  },
38
38
  "devDependencies": {
39
- "@spoosh/core": "0.6.0",
39
+ "@spoosh/core": "0.7.0",
40
40
  "@spoosh/test-utils": "0.1.5"
41
41
  },
42
42
  "scripts": {