Files
yaak-mountain-loop/plugins/importer-insomnia/src/index.ts
T
Gregory Schier 5919fae739 Run oxfmt across repo, add format script and ignore config
Format all non-generated files with oxfmt via `vp fmt`. Add
.oxfmtignore to skip bindings/ and wasm-pack output. Add npm
format script and update DEVELOPMENT.md docs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 09:52:11 -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);
}