npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

german-verbs

v5.3.0

Published

German verbs, based on german-pos-dict

Downloads

735

Readme

german-verbs

Agreement of German verbs, depending on tense, person and number.

Use german-verbs-dict as the linguistic resource.

Installation

npm install german-verbs

Usage

const GermanVerbsLib = require('german-verbs');
const GermanVerbsDict = require('german-verbs-dict/dist/verbs.json');

// hörten
console.log(GermanVerbsLib.getConjugation(GermanVerbsDict, 'hören', 'PRATERITUM', 3, 'P'));

// werden gehabt haben
console.log(GermanVerbsLib.getConjugation(GermanVerbsDict, 'haben', 'FUTUR2', 3, 'P', 'HABEN'));

One single function getConjugation that takes multiple parameters and return the agreed verb:

  • verb data (linguistic resource): see german-verbs-dict for the format
  • verb (string): the verb to agree
  • tense (string):
    • Indicativ: PRASENS PRATERITUM FUTUR1 FUTUR2 PERFEKT PLUSQUAMPERFEKT
    • Konjunktiv1: KONJUNKTIV1_PRASENS KONJUNKTIV1_FUTUR1 KONJUNKTIV1_PERFEKT
    • Konjunktiv2: KONJUNKTIV2_PRATERITUM KONJUNKTIV2_FUTUR1 KONJUNKTIV2_FUTUR2
  • person: 1 2 or 3
  • number: S or P
  • aux: SEIN or HABEN. Mandatory when the tense requires an auxiliary (PERFEKT PLUSQUAMPERFEKT FUTUR2 KONJUNKTIV1_PERFEKT KONJUNKTIV2_FUTUR2), unless for a short list of verbs that always take SEIN (like fliegen gehen etc.)
  • pronominal (boolean): put true if you want the reflexive form Ich wasche mich. You can also directly use the pronominal infinitive: sich waschen.
  • pronominalCase: ACCUSATIVE for Accusative or DATIVE for Dative. Mandatory when pronominal is true and S 1 or S 2.

The agreed verb is a string[], not a string, as for many tenses there are multiple parts, and as you might wish to put something between the different parts of the conjugated verb.

The size of the result array will always be:

  • 1 for simple tenses
  • 2 for FUTUR1 PERFEKT PLUSQUAMPERFEKT KONJUNKTIV1_FUTUR1 KONJUNKTIV1_PERFEKT KONJUNKTIV2_FUTUR1: for instance ['wird', 'sein'] for FUTUR1 sein 3S
  • also 2 for FUTUR2 KONJUNKTIV2_FUTUR2; even if the result if 3 words long, the split is made at the right place to add content: for instance ['werde', 'gegessen haben'] for KONJUNKTIV2_FUTUR2

Todo

  • imperative form