Penpot plugins API
    Preparing search index...

    Interface File

    File represents a file in the Penpot application. It includes properties for the file's identifier, name, and revision number.

    interface File {
        id: string;
        name: string;
        revn: number;
        pages: Page[];
        export(
            exportType: "penpot" | "zip",
            libraryExportType?: "all" | "merge" | "detach",
        ): Promise<Uint8Array<ArrayBufferLike>>;
        findVersions(criteria?: { createdBy: User }): Promise<FileVersion[]>;
        saveVersion(label: string): Promise<FileVersion>;
        getPluginData(key: string): string;
        setPluginData(key: string, value: string): void;
        getPluginDataKeys(): string[];
        getSharedPluginData(namespace: string, key: string): string;
        setSharedPluginData(namespace: string, key: string, value: string): void;
        getSharedPluginDataKeys(namespace: string): string[];
    }

    Hierarchy (View Summary)

    Index

    Properties

    id: string

    The id property is a unique identifier for the file.

    name: string

    The name for the file

    revn: number

    The revn will change for every document update

    pages: Page[]

    List all the pages for the current file

    Methods

    • Parameters

      • exportType: "penpot" | "zip"
      • OptionallibraryExportType: "all" | "merge" | "detach"

      Returns Promise<Uint8Array<ArrayBufferLike>>

    • Saves the current version into the versions history. Requires the content:write permission.

      Parameters

      • label: string

      Returns Promise<FileVersion>

    • Retrieves the data for our own plugin, given a specific key.

      Parameters

      • key: string

        The key for which to retrieve the data.

      Returns string

      Returns the data associated with the key as a string.

      const data = shape.getPluginData('exampleKey');
      console.log(data);
    • Sets the plugin-specific data for the given key.

      Parameters

      • key: string

        The key for which to set the data.

      • value: string

        The data to set for the key.

      Returns void

      shape.setPluginData('exampleKey', 'exampleValue');
      
    • Retrieves all the keys for the plugin-specific data.

      Returns string[]

      Returns an array of strings representing all the keys.

      const keys = shape.getPluginDataKeys();
      console.log(keys);
    • If we know the namespace of an external plugin, this is the way to get their data.

      Parameters

      • namespace: string

        The namespace for the shared data.

      • key: string

        The key for which to retrieve the data.

      Returns string

      Returns the shared data associated with the key as a string.

      const sharedData = shape.getSharedPluginData('exampleNamespace', 'exampleKey');
      console.log(sharedData);
    • Sets the shared plugin-specific data for the given namespace and key.

      Parameters

      • namespace: string

        The namespace for the shared data.

      • key: string

        The key for which to set the data.

      • value: string

        The data to set for the key.

      Returns void

      shape.setSharedPluginData('exampleNamespace', 'exampleKey', 'exampleValue');
      
    • Retrieves all the keys for the shared plugin-specific data in the given namespace.

      Parameters

      • namespace: string

        The namespace for the shared data.

      Returns string[]

      Returns an array of strings representing all the keys in the namespace.

      const sharedKeys = shape.getSharedPluginDataKeys('exampleNamespace');
      console.log(sharedKeys);