UNPKG

stashapp-api

Version:

Easy to use adapter for interaction with a Stash server through GraphQL.

46 lines (45 loc) 1.44 kB
import { CriterionModifier as _CriterionModifier, GenderEnum as _GenderEnum, } from "./generated/graphql.js"; export const CriterionModifier = _CriterionModifier; export const GenderEnum = _GenderEnum; import { GraphQLClient } from "graphql-request"; import { getSdk } from "./generated/graphql.js"; /** * Singleton class for interacting with the Stash GraphQL API. * Provides type-safe query and mutation methods. */ export class StashApp { static instance; client; sdk; /** Find performers */ findPerformers; /** Find studios */ findStudios; /** Find scenes */ findScenes; /** Find tags */ findTags; /** Update a scene */ sceneUpdate; /** Run a metadata scan */ metadataScan; constructor(config) { this.client = new GraphQLClient(config.url, { headers: { ApiKey: config.apiKey }, }); this.sdk = getSdk(this.client); this.findPerformers = this.sdk.FindPerformers; this.findStudios = this.sdk.FindStudios; this.findScenes = this.sdk.FindScenes; this.findTags = this.sdk.FindTags; this.sceneUpdate = this.sdk.sceneUpdate; this.metadataScan = this.sdk.MetadataScan; } /** Initialize the singleton StashApp instance */ static init(config) { if (!StashApp.instance) { StashApp.instance = new StashApp(config); } return StashApp.instance; } }