mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-28 04:11:45 +01:00
Add .oxfmtignore to skip generated bindings and wasm-pack output. Add npm format script, update DEVELOPMENT.md for Vite+ toolchain, and format all non-generated files with oxfmt. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import { convertPostman } from "@yaak/importer-postman/src";
|
|
import type { Context, PluginDefinition } from "@yaakapp/api";
|
|
import type { ImportPluginResponse } from "@yaakapp/api/lib/plugins/ImporterPlugin";
|
|
import { convert } from "openapi-to-postmanv2";
|
|
|
|
export const plugin: PluginDefinition = {
|
|
importer: {
|
|
name: "OpenAPI",
|
|
description: "Import OpenAPI collections",
|
|
onImport(_ctx: Context, args: { text: string }) {
|
|
return convertOpenApi(args.text);
|
|
},
|
|
},
|
|
};
|
|
|
|
export async function convertOpenApi(contents: string): Promise<ImportPluginResponse | undefined> {
|
|
// oxlint-disable-next-line no-explicit-any
|
|
let postmanCollection: any;
|
|
try {
|
|
postmanCollection = await new Promise((resolve, reject) => {
|
|
// oxlint-disable-next-line no-explicit-any
|
|
convert({ type: "string", data: contents }, {}, (err, result: any) => {
|
|
if (err != null) reject(err);
|
|
|
|
if (Array.isArray(result.output) && result.output.length > 0) {
|
|
resolve(result.output[0].data);
|
|
}
|
|
});
|
|
});
|
|
} catch {
|
|
// Probably not an OpenAPI file, so skip it
|
|
return undefined;
|
|
}
|
|
|
|
return convertPostman(JSON.stringify(postmanCollection));
|
|
}
|