Have ideas to improve npm?Join in the discussion! »

    clipy-mate-core
    TypeScript icon, indicating that this package has built-in type declarations

    1.2.1 • Public • Published

    Clipy Mate Core

    npm version Build Status Coverage Status Known Vulnerabilities

    Access Clipy From Node.js
    English | 日本語

    Introduction

    Clipy is a Clipboard extension app for macOS. This package allow developers access Clipy's folders and snippets using Node.js.
    It also provides TypeScript API and all tests are written by TypeScript.

    [Attention] This package will access Clipy's Realm Database directly, so you may need to restart Clipy App if snippets updated.

    Table of Contents

    Requirements

    • MacOS 10.10 and over
    • Clipy v1.2.0 and over
    • Node.js v8.9.0 and < v12 (Why?)

    Installation

    Use the package manager npm to install.

    npm i clipy-mate-core

    Usage

    Import

    const ClipyMate = require('clipy-mate-core');
    const clipy = new ClipyMate();
    import ClipyMate from 'clipy-mate-core'
    const clipy: ClipyMate = new ClipyMate();

    Read Snippets

    // Read all Folders and Snippets
    clipy.readSnippets().then((folders) => {
      console.log(folders);
      console.log(folders[0].snippets);
    });

    Parse XML

    // Parse `snippet.xml`
    const fs = require('fs');
    clipy.parseXml(fs.readFileSync('./snippet.xml')).then((folders) => {
      console.log(folders);
      console.log(folders[0].snippets);
    });

    Create and Update

    // Create or Update a folder
    // it will update a folder has same `identifier` field
    // or create a new folder if `identifier` is blank or not found
    clipy.upsertFolder({ title: 'test folder' }).then(folder => {
      console.log(folder.identifier);
    });
     
    // Create or Update a snippet inside a folder
    // it will update a snippet has same `identifier` field
    // or create a new snippet if `identifier` is blank or not found
    const folder = clipy.CPYFolder[0];
    const folderId = folder.identifier;
    clipy.upsertSnippet({ title: 'test snippet', content: 'test' }, folderId).then(snippet => {
      console.log(snippet.identifier);
    });

    Destroy

    // Destroy a specific folder (All snippets in this folder will also be destroyed)
    const folder = clipy.CPYFolder[0];
    const folderId = folder.identifier;
    clipy.destroyFolder(snippetId).then(folder => {
      console.log(folder);
    });
     
    // Destroy a specific snippet
    const snippet = clipy.CPYSnippet[0];
    const snippetId = snippet.identifier;
    clipy.destroySnippet(snippetId).then(snippet => {
      console.log(snippet);
    });
     
    // [Danger!] Destroy all folders and snippets
    clipy.clearAllSnippets().then();

    Close Realm Connection

    // After all
    clipy.disconnect();

    Contributing

    Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

    Please make sure to update tests as appropriate.

    License

    BSD-3-Clause

    Install

    npm i clipy-mate-core

    DownloadsWeekly Downloads

    13

    Version

    1.2.1

    License

    BSD-3-Clause

    Unpacked Size

    41.6 kB

    Total Files

    15

    Last publish

    Collaborators

    • avatar