@powerlines/plugin-hey-api 0.1.256 → 0.1.257

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.cts CHANGED
@@ -4,8 +4,8 @@ import "./types/index.cjs";
4
4
  import { Plugin } from "powerlines";
5
5
 
6
6
  //#region src/index.d.ts
7
- declare module "powerlines" {
8
- interface UserConfig {
7
+ declare module "@powerlines/core" {
8
+ interface BaseConfig {
9
9
  heyApi?: HeyAPIPluginOptions;
10
10
  }
11
11
  }
package/dist/index.d.mts CHANGED
@@ -4,8 +4,8 @@ import "./types/index.mjs";
4
4
  import { Plugin } from "powerlines";
5
5
 
6
6
  //#region src/index.d.ts
7
- declare module "powerlines" {
8
- interface UserConfig {
7
+ declare module "@powerlines/core" {
8
+ interface BaseConfig {
9
9
  heyApi?: HeyAPIPluginOptions;
10
10
  }
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport type { UserConfig } from \"@hey-api/openapi-ts\";\nimport { createClient, OpenApi } from \"@hey-api/openapi-ts\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport defu from \"defu\";\nimport { Plugin } from \"powerlines\";\nimport { replacePathTokens } from \"powerlines/plugin-utils\";\nimport { createOperationId } from \"./helpers/create-operation-id\";\nimport {\n HeyAPIPluginContext,\n HeyAPIPluginOptions,\n HeyAPIPluginOutputOptions,\n HeyAPIPluginUserConfig\n} from \"./types/plugin\";\n\nexport * from \"./helpers\";\nexport * from \"./types\";\n\ndeclare module \"powerlines\" {\n export interface UserConfig {\n heyApi?: HeyAPIPluginOptions;\n }\n}\n\n/**\n * A Powerlines plugin to integrate Hey API for code generation.\n *\n * @see https://heyapi.dev/\n *\n * @param options - The plugin options.\n * @returns A Powerlines plugin instance.\n */\nexport const plugin = <\n TContext extends HeyAPIPluginContext = HeyAPIPluginContext\n>(\n options: HeyAPIPluginOptions = {}\n): Plugin<TContext> => {\n return {\n name: \"hey-api\",\n config() {\n return {\n heyApi: {\n plugins: [\n {\n name: \"@hey-api/typescript\",\n exportFromIndex: false\n },\n {\n name: \"@hey-api/sdk\",\n instance: \"PrismaClient\",\n exportFromIndex: false,\n auth: false\n },\n {\n name: \"@hey-api/client-fetch\",\n throwOnError: true\n }\n ],\n ...defu(options, {\n schema: joinPaths(\n this.workspaceConfig.workspaceRoot,\n this.config.root,\n \"schema.yaml\"\n ),\n output: {\n path: joinPaths(\"{builtinPath}\", \"api\")\n },\n logs: this.envPaths.log\n })\n }\n } as Partial<HeyAPIPluginUserConfig>;\n },\n async configResolved() {\n this.config.heyApi.output ??= {} as HeyAPIPluginOutputOptions;\n this.config.heyApi.output.path = replacePathTokens(\n this,\n this.config.heyApi.output.path\n );\n\n if (!this.config.heyApi.schema) {\n throw new Error(\n \"The `schema` option is required by the Hey API plugin.\"\n );\n }\n\n if (isSetString(this.config.heyApi.schema)) {\n const result = await this.fetch(this.config.heyApi.schema);\n this.config.heyApi.schema =\n (await result.json()) as HeyAPIPluginOptions[\"schema\"];\n }\n\n if (\n isSetObject(this.config.heyApi.schema) &&\n (this.config.heyApi.schema as OpenApi.V3_0_X).paths\n ) {\n const schema = this.config.heyApi.schema as OpenApi.V3_0_X;\n for (const pathItem of Object.values(schema.paths)) {\n if (!pathItem || \"$ref\" in pathItem) {\n continue;\n }\n\n for (const method of [\n \"get\",\n \"put\",\n \"post\",\n \"delete\",\n \"options\",\n \"head\",\n \"patch\",\n \"trace\"\n ] as const) {\n const operation = pathItem[method];\n if (!isSetString(operation?.summary)) {\n continue;\n }\n\n operation.operationId = createOperationId(operation.summary);\n }\n }\n }\n },\n async prepare() {\n await createClient({\n ...this.config.heyApi,\n input: this.config.heyApi.schema!\n } as UserConfig);\n }\n };\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAmDA,MAAa,UAGX,UAA+B,EAAE,KACZ;AACrB,QAAO;EACL,MAAM;EACN,SAAS;AACP,UAAO,EACL,QAAQ;IACN,SAAS;KACP;MACE,MAAM;MACN,iBAAiB;MAClB;KACD;MACE,MAAM;MACN,UAAU;MACV,iBAAiB;MACjB,MAAM;MACP;KACD;MACE,MAAM;MACN,cAAc;MACf;KACF;IACD,GAAG,KAAK,SAAS;KACf,QAAQ,UACN,KAAK,gBAAgB,eACrB,KAAK,OAAO,MACZ,cACD;KACD,QAAQ,EACN,MAAM,UAAU,iBAAiB,MAAM,EACxC;KACD,MAAM,KAAK,SAAS;KACrB,CAAC;IACH,EACF;;EAEH,MAAM,iBAAiB;AACrB,QAAK,OAAO,OAAO,WAAW,EAAE;AAChC,QAAK,OAAO,OAAO,OAAO,OAAO,kBAC/B,MACA,KAAK,OAAO,OAAO,OAAO,KAC3B;AAED,OAAI,CAAC,KAAK,OAAO,OAAO,OACtB,OAAM,IAAI,MACR,yDACD;AAGH,OAAI,YAAY,KAAK,OAAO,OAAO,OAAO,EAAE;IAC1C,MAAM,SAAS,MAAM,KAAK,MAAM,KAAK,OAAO,OAAO,OAAO;AAC1D,SAAK,OAAO,OAAO,SAChB,MAAM,OAAO,MAAM;;AAGxB,OACE,YAAY,KAAK,OAAO,OAAO,OAAO,IACrC,KAAK,OAAO,OAAO,OAA0B,OAC9C;IACA,MAAM,SAAS,KAAK,OAAO,OAAO;AAClC,SAAK,MAAM,YAAY,OAAO,OAAO,OAAO,MAAM,EAAE;AAClD,SAAI,CAAC,YAAY,UAAU,SACzB;AAGF,UAAK,MAAM,UAAU;MACnB;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACD,EAAW;MACV,MAAM,YAAY,SAAS;AAC3B,UAAI,CAAC,YAAY,WAAW,QAAQ,CAClC;AAGF,gBAAU,cAAc,kBAAkB,UAAU,QAAQ;;;;;EAKpE,MAAM,UAAU;AACd,SAAM,aAAa;IACjB,GAAG,KAAK,OAAO;IACf,OAAO,KAAK,OAAO,OAAO;IAC3B,CAAe;;EAEnB;;AAGH,kBAAe"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport type { UserConfig } from \"@hey-api/openapi-ts\";\nimport { createClient, OpenApi } from \"@hey-api/openapi-ts\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport defu from \"defu\";\nimport { Plugin } from \"powerlines\";\nimport { replacePathTokens } from \"powerlines/plugin-utils\";\nimport { createOperationId } from \"./helpers/create-operation-id\";\nimport {\n HeyAPIPluginContext,\n HeyAPIPluginOptions,\n HeyAPIPluginOutputOptions,\n HeyAPIPluginUserConfig\n} from \"./types/plugin\";\n\nexport * from \"./helpers\";\nexport * from \"./types\";\n\ndeclare module \"@powerlines/core\" {\n interface BaseConfig {\n heyApi?: HeyAPIPluginOptions;\n }\n}\n\n/**\n * A Powerlines plugin to integrate Hey API for code generation.\n *\n * @see https://heyapi.dev/\n *\n * @param options - The plugin options.\n * @returns A Powerlines plugin instance.\n */\nexport const plugin = <\n TContext extends HeyAPIPluginContext = HeyAPIPluginContext\n>(\n options: HeyAPIPluginOptions = {}\n): Plugin<TContext> => {\n return {\n name: \"hey-api\",\n config() {\n return {\n heyApi: {\n plugins: [\n {\n name: \"@hey-api/typescript\",\n exportFromIndex: false\n },\n {\n name: \"@hey-api/sdk\",\n instance: \"PrismaClient\",\n exportFromIndex: false,\n auth: false\n },\n {\n name: \"@hey-api/client-fetch\",\n throwOnError: true\n }\n ],\n ...defu(options, {\n schema: joinPaths(\n this.workspaceConfig.workspaceRoot,\n this.config.root,\n \"schema.yaml\"\n ),\n output: {\n path: joinPaths(\"{builtinPath}\", \"api\")\n },\n logs: this.envPaths.log\n })\n }\n } as Partial<HeyAPIPluginUserConfig>;\n },\n async configResolved() {\n this.config.heyApi.output ??= {} as HeyAPIPluginOutputOptions;\n this.config.heyApi.output.path = replacePathTokens(\n this,\n this.config.heyApi.output.path\n );\n\n if (!this.config.heyApi.schema) {\n throw new Error(\n \"The `schema` option is required by the Hey API plugin.\"\n );\n }\n\n if (isSetString(this.config.heyApi.schema)) {\n const result = await this.fetch(this.config.heyApi.schema);\n this.config.heyApi.schema =\n (await result.json()) as HeyAPIPluginOptions[\"schema\"];\n }\n\n if (\n isSetObject(this.config.heyApi.schema) &&\n (this.config.heyApi.schema as OpenApi.V3_0_X).paths\n ) {\n const schema = this.config.heyApi.schema as OpenApi.V3_0_X;\n for (const pathItem of Object.values(schema.paths)) {\n if (!pathItem || \"$ref\" in pathItem) {\n continue;\n }\n\n for (const method of [\n \"get\",\n \"put\",\n \"post\",\n \"delete\",\n \"options\",\n \"head\",\n \"patch\",\n \"trace\"\n ] as const) {\n const operation = pathItem[method];\n if (!isSetString(operation?.summary)) {\n continue;\n }\n\n operation.operationId = createOperationId(operation.summary);\n }\n }\n }\n },\n async prepare() {\n await createClient({\n ...this.config.heyApi,\n input: this.config.heyApi.schema!\n } as UserConfig);\n }\n };\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAmDA,MAAa,UAGX,UAA+B,EAAE,KACZ;AACrB,QAAO;EACL,MAAM;EACN,SAAS;AACP,UAAO,EACL,QAAQ;IACN,SAAS;KACP;MACE,MAAM;MACN,iBAAiB;MAClB;KACD;MACE,MAAM;MACN,UAAU;MACV,iBAAiB;MACjB,MAAM;MACP;KACD;MACE,MAAM;MACN,cAAc;MACf;KACF;IACD,GAAG,KAAK,SAAS;KACf,QAAQ,UACN,KAAK,gBAAgB,eACrB,KAAK,OAAO,MACZ,cACD;KACD,QAAQ,EACN,MAAM,UAAU,iBAAiB,MAAM,EACxC;KACD,MAAM,KAAK,SAAS;KACrB,CAAC;IACH,EACF;;EAEH,MAAM,iBAAiB;AACrB,QAAK,OAAO,OAAO,WAAW,EAAE;AAChC,QAAK,OAAO,OAAO,OAAO,OAAO,kBAC/B,MACA,KAAK,OAAO,OAAO,OAAO,KAC3B;AAED,OAAI,CAAC,KAAK,OAAO,OAAO,OACtB,OAAM,IAAI,MACR,yDACD;AAGH,OAAI,YAAY,KAAK,OAAO,OAAO,OAAO,EAAE;IAC1C,MAAM,SAAS,MAAM,KAAK,MAAM,KAAK,OAAO,OAAO,OAAO;AAC1D,SAAK,OAAO,OAAO,SAChB,MAAM,OAAO,MAAM;;AAGxB,OACE,YAAY,KAAK,OAAO,OAAO,OAAO,IACrC,KAAK,OAAO,OAAO,OAA0B,OAC9C;IACA,MAAM,SAAS,KAAK,OAAO,OAAO;AAClC,SAAK,MAAM,YAAY,OAAO,OAAO,OAAO,MAAM,EAAE;AAClD,SAAI,CAAC,YAAY,UAAU,SACzB;AAGF,UAAK,MAAM,UAAU;MACnB;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACD,EAAW;MACV,MAAM,YAAY,SAAS;AAC3B,UAAI,CAAC,YAAY,WAAW,QAAQ,CAClC;AAGF,gBAAU,cAAc,kBAAkB,UAAU,QAAQ;;;;;EAKpE,MAAM,UAAU;AACd,SAAM,aAAa;IACjB,GAAG,KAAK,OAAO;IACf,OAAO,KAAK,OAAO,OAAO;IAC3B,CAAe;;EAEnB;;AAGH,kBAAe"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerlines/plugin-hey-api",
3
- "version": "0.1.256",
3
+ "version": "0.1.257",
4
4
  "type": "module",
5
5
  "description": "A Powerlines plugin to generate project code using Hey API.",
6
6
  "repository": {
@@ -124,13 +124,13 @@
124
124
  "@stryke/types": "^0.10.39",
125
125
  "defu": "^6.1.4",
126
126
  "jiti": "^2.6.1",
127
- "powerlines": "^0.39.10"
127
+ "powerlines": "^0.39.11"
128
128
  },
129
129
  "devDependencies": {
130
- "@powerlines/plugin-plugin": "^0.12.253",
130
+ "@powerlines/plugin-plugin": "^0.12.254",
131
131
  "@types/node": "^25.3.3"
132
132
  },
133
133
  "publishConfig": { "access": "public" },
134
134
  "types": "./dist/index.d.cts",
135
- "gitHead": "905dbeee1a9e2658cf70489e977cafac62733e46"
135
+ "gitHead": "e63eb5a0ecd0e5ee3e030388ad1c534b3ecb2136"
136
136
  }