Files
yaak/plugins/importer-insomnia/src/index.ts
Gregory Schier 7314aedc71 Merge main into proxy branch (formatting and docs)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:09:59 -07:00

38 lines
878 B
TypeScript

import type { Context, PluginDefinition } from "@yaakapp/api";
import YAML from "yaml";
import { deleteUndefinedAttrs, isJSObject } from "./common";
import { convertInsomniaV4 } from "./v4";
import { convertInsomniaV5 } from "./v5";
export const plugin: PluginDefinition = {
importer: {
name: "Insomnia",
description: "Import Insomnia workspaces",
async onImport(_ctx: Context, args: { text: string }) {
return convertInsomnia(args.text);
},
},
};
export function convertInsomnia(contents: string) {
let parsed: unknown;
try {
parsed = JSON.parse(contents);
} catch {
// Fall through
}
try {
parsed = parsed ?? YAML.parse(contents);
} catch {
// Fall through
}
if (!isJSObject(parsed)) return null;
const result = convertInsomniaV5(parsed) ?? convertInsomniaV4(parsed);
return deleteUndefinedAttrs(result);
}