@hebcal/leyning
TypeScript icon, indicating that this package has built-in type declarations

8.1.8 • Public • Published

@hebcal/leyning

Javascript Torah Reading API for Parashat HaShavua and holidays

Build Status

This package includes both traditional (full kriyah) and weekday Torah readings.

Triennial Torah Readings have moved to @hebcal/triennial

Installation

$ npm install @hebcal/leyning

Synopsis

import {HebrewCalendar, HDate, Event} from '@hebcal/core';
import {getLeyningForParshaHaShavua, formatAliyahWithBook} from '@hebcal/leyning';

const events = HebrewCalendar.calendar({sedrot: true, noHolidays: true});
const ev = events.find((ev) => ev.getDesc() == 'Parashat Pinchas');
const reading = getLeyningForParshaHaShavua(ev, false);
console.log(`${ev.getDesc()}: ${reading.summary}`);
console.log(`Haftara: ${reading.haftara}`);
for (const [num, aliyah] of Object.entries(reading.fullkriyah)) {
  const number = num == 'M' ? 'maftir' : `aliyah ${num}`;
  let str = formatAliyahWithBook(aliyah);
  if (reading.reason[num]) {
      str += ' | ' + reading.reason[num];
  }
  str += ` (${aliyah.v} verses)`;
  console.log(`${number}: ${str}`);
}

Constants

BOOK : Array.<string>

Names of the books of the Torah. BOOK[1] === 'Genesis'

Functions

parshaToString(parsha)string

Formats parsha as a string

clone(src)any

Makes a deep copy of the src object using JSON stringify and parse

calculateNumVerses(aliyah)number

Calculates the number of verses in an aliyah or haftara based on the b (begin verse), e (end verse) and k (book). Modifies aliyah by setting the v field.

formatAliyahWithBook(a)string

Formats an aliyah object like "Numbers 28:9-28:15"

formatAliyahShort(aliyah, showBook)string

Formats an aliyah object like "Numbers 28:9-15"

sumVerses(aliyot)number

Returns the total number of verses in an array of Aliyah (or haftarah) objects

makeLeyningParts(aliyot)Array.<Aliyah>

Summarizes an AliyotMap by collapsing all adjacent aliyot. Finds any non-overlapping parts (e.g. special 7th aliyah or maftir)

makeSummaryFromParts(parts)string

Returns a string representation of the leyning parts. Separate verse ranges read from the same book are separated by commas, e.g. Isaiah 6:1-7:6, 9:5-6. Verse ranges from different books are separated by semicolons, e.g. Genesis 21:1-34; Numbers 29:1-6.

makeLeyningSummary(aliyot)string

Makes a summary of the leyning, like "Genesis 6:9-11:32"

hasFestival(holiday)boolean

Is there a special festival Torah Reading for holiday?

lookupFestival(holiday)any

Returns the raw metadata for festival reading for holiday

getLeyningKeyForEvent(ev, [il])string

Based on the event date, type and title, finds the relevant leyning key

specialReadings2(parsha, hd, il, aliyot)SpecialReading

Determines if the regular parashat haShavua coincides with an event that requires a special maftir or Haftara (for example Shabbat HaGadol, Shabbat Chanukah, Rosh Chodesh or Machar Chodesh, etc.).

This function does not modify aliyot. Instead, it returns a deep copy with aliyot['M'] replaced and sets reason.M (and in some cases the 6th and 7th aliyah, setting reason['7']).

If a special Haftarah applies, the result will have a haft property pointing to Haftarah object and sets reason.haftara.

getLeyningForHolidayKey(key, [cholHaMoedDay], [il])Leyning

Looks up leyning for a given holiday key. Key should be an (untranslated) string used in holiday-readings.json. Returns some of full kriyah aliyot, special Maftir, special Haftarah

getLeyningForHoliday(ev, [il])Leyning

Looks up leyning for a given holiday. Returns some of full kriyah aliyot, special Maftir, special Haftarah

makeLeyningNames(parsha)LeyningNames

Transliterated English and Hebrew names of this parsha

getWeekdayReading(parsha)Object.<string, Aliyah>

Looks up Monday/Thursday aliyot for a regular parsha

getLeyningForParsha(parsha)Leyning

Looks up regular leyning for a weekly parsha with no special readings

getLeyningForParshaHaShavua(ev, [il])Leyning

Looks up leyning for a regular Shabbat parsha, including any special maftir or Haftara.

lookupParsha(parsha)ParshaMeta

Returns the parsha metadata

getLeyningOnDate(hdate, il, [wantarray])Leyning | Array.<Leyning>

Looks up leyning for a regular Shabbat, Monday/Thursday weekday or holiday.

If hdate coincides with a holiday that has Torah reading, returns the reading for that day (see getLeyningForHoliday)

Otherwise, if hdate is a Saturday, returns getLeyningForParshaHaShavua

Otherwise, if hdate is a Monday or Thursday, returns Leyning for the Parashat haShavua, containing only the weekday aliyot (no fullkriyah).

Otherwise, returns undefined.

writeCsvLines(stream, ev, reading, il, isParsha)

Formats reading for CSV

Typedefs

Aliyah : Object

Represents an aliyah

SpecialReading : Object

Leyning for a parsha hashavua or holiday

LeyningNames : Object

Name of the parsha hashavua or holiday

Leyning : Object

Leyning for a parsha hashavua or holiday

ParshaMeta : Object

Parsha metadata

BOOK : Array.<string>

Names of the books of the Torah. BOOK[1] === 'Genesis'

Kind: global constant
Read only: true

parshaToString(parsha) ⇒ string

Formats parsha as a string

Kind: global function

Param Type Description
parsha string | Array.<string> untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']

clone(src) ⇒ any

Makes a deep copy of the src object using JSON stringify and parse

Kind: global function

Param Type
src any

calculateNumVerses(aliyah) ⇒ number

Calculates the number of verses in an aliyah or haftara based on the b (begin verse), e (end verse) and k (book). Modifies aliyah by setting the v field.

Kind: global function

Param Type
aliyah Aliyah

formatAliyahWithBook(a) ⇒ string

Formats an aliyah object like "Numbers 28:9-28:15"

Kind: global function

Param Type Description
a Aliyah aliyah

formatAliyahShort(aliyah, showBook) ⇒ string

Formats an aliyah object like "Numbers 28:9-15"

Kind: global function

Param Type
aliyah Aliyah
showBook boolean

sumVerses(aliyot) ⇒ number

Returns the total number of verses in an array of Aliyah (or haftarah) objects

Kind: global function

Param Type
aliyot Aliyah | Array.<Aliyah>

makeLeyningParts(aliyot) ⇒ Array.<Aliyah>

Summarizes an AliyotMap by collapsing all adjacent aliyot. Finds any non-overlapping parts (e.g. special 7th aliyah or maftir)

Kind: global function

Param Type
aliyot Object.<string, Aliyah>

makeSummaryFromParts(parts) ⇒ string

Returns a string representation of the leyning parts. Separate verse ranges read from the same book are separated by commas, e.g. Isaiah 6:1-7:6, 9:5-6. Verse ranges from different books are separated by semicolons, e.g. Genesis 21:1-34; Numbers 29:1-6.

Kind: global function

Param Type
parts Aliyah | Array.<Aliyah>

makeLeyningSummary(aliyot) ⇒ string

Makes a summary of the leyning, like "Genesis 6:9-11:32"

Kind: global function

Param Type
aliyot Object.<string, Aliyah>

hasFestival(holiday) ⇒ boolean

Is there a special festival Torah Reading for holiday?

Kind: global function

Param Type
holiday string

lookupFestival(holiday) ⇒ any

Returns the raw metadata for festival reading for holiday

Kind: global function

Param Type
holiday string

getLeyningKeyForEvent(ev, [il]) ⇒ string

Based on the event date, type and title, finds the relevant leyning key

Kind: global function
Returns: string - key to look up in holiday-reading.json

Param Type Default Description
ev Event event
[il] boolean false true if Israel holiday scheme

specialReadings2(parsha, hd, il, aliyot) ⇒ SpecialReading

Determines if the regular parashat haShavua coincides with an event that requires a special maftir or Haftara (for example Shabbat HaGadol, Shabbat Chanukah, Rosh Chodesh or Machar Chodesh, etc.).

This function does not modify aliyot. Instead, it returns a deep copy with aliyot['M'] replaced and sets reason.M (and in some cases the 6th and 7th aliyah, setting reason['7']).

If a special Haftarah applies, the result will have a haft property pointing to Haftarah object and sets reason.haftara.

Kind: global function

Param Type
parsha Array.<string>
hd HDate
il boolean
aliyot Object.<string, Aliyah>

getLeyningForHolidayKey(key, [cholHaMoedDay], [il]) ⇒ Leyning

Looks up leyning for a given holiday key. Key should be an (untranslated) string used in holiday-readings.json. Returns some of full kriyah aliyot, special Maftir, special Haftarah

Kind: global function
Returns: Leyning - map of aliyot

Param Type Description
key string name from holiday-readings.json to find
[cholHaMoedDay] number
[il] boolean

getLeyningForHoliday(ev, [il]) ⇒ Leyning

Looks up leyning for a given holiday. Returns some of full kriyah aliyot, special Maftir, special Haftarah

Kind: global function
Returns: Leyning - map of aliyot

Param Type Default Description
ev Event the Hebcal event associated with this leyning
[il] boolean false true if Israel holiday scheme

makeLeyningNames(parsha) ⇒ LeyningNames

Transliterated English and Hebrew names of this parsha

Kind: global function

Param Type Description
parsha string | Array.<string> untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']

getWeekdayReading(parsha) ⇒ Object.<string, Aliyah>

Looks up Monday/Thursday aliyot for a regular parsha

Kind: global function
Returns: Object.<string, Aliyah> - map of aliyot

Param Type Description
parsha string | Array.<string> untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']

getLeyningForParsha(parsha) ⇒ Leyning

Looks up regular leyning for a weekly parsha with no special readings

Kind: global function
Returns: Leyning - map of aliyot

Param Type Description
parsha string | Array.<string> untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']

getLeyningForParshaHaShavua(ev, [il]) ⇒ Leyning

Looks up leyning for a regular Shabbat parsha, including any special maftir or Haftara.

Kind: global function
Returns: Leyning - map of aliyot

Param Type Default Description
ev Event the Hebcal event associated with this leyning
[il] boolean false in Israel

lookupParsha(parsha) ⇒ ParshaMeta

Returns the parsha metadata

Kind: global function

Param Type Description
parsha string | Array.<string> untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']

getLeyningOnDate(hdate, il, [wantarray]) ⇒ Leyning | Array.<Leyning>

Looks up leyning for a regular Shabbat, Monday/Thursday weekday or holiday.

If hdate coincides with a holiday that has Torah reading, returns the reading for that day (see getLeyningForHoliday)

Otherwise, if hdate is a Saturday, returns getLeyningForParshaHaShavua

Otherwise, if hdate is a Monday or Thursday, returns Leyning for the Parashat haShavua, containing only the weekday aliyot (no fullkriyah).

Otherwise, returns undefined.

Kind: global function
Returns: Leyning | Array.<Leyning> - map of aliyot

Param Type Default Description
hdate HDate Hebrew Date
il boolean in Israel
[wantarray] boolean false to return an array of 0 or more readings

writeCsvLines(stream, ev, reading, il, isParsha)

Formats reading for CSV

Kind: global function

Param Type
stream fs.WriteStream
ev Event
reading Leyning
il boolean
isParsha boolean

Aliyah : Object

Represents an aliyah

Kind: global typedef
Properties

Name Type Description
k string Book (e.g. "Numbers")
b string beginning verse (e.g. "28:9")
e string ending verse (e.g. "28:15")
[v] number number of verses
[p] number parsha number (1=Bereshit, 54=Vezot HaBracha)

SpecialReading : Object

Leyning for a parsha hashavua or holiday

Kind: global typedef
Properties

Name Type Description
aliyot Object.<string, Aliyah> Map of aliyot 1 through 7 plus M for maftir
[reason] Object.<string, string> Explanations for special readings, keyed by aliyah number, M for maftir or haftara for Haftarah
haft Aliyah | Array.<Aliyah> Haftarah object(s)
seph Aliyah | Array.<Aliyah> Haftarah object(s)

LeyningNames : Object

Name of the parsha hashavua or holiday

Kind: global typedef
Properties

Name Type Description
en string English
he string Hebrew (with nikud)

Leyning : Object

Leyning for a parsha hashavua or holiday

Kind: global typedef
Properties

Name Type Description
name LeyningNames
[parsha] Array.<string> An array of either 1 (regular) or 2 (doubled parsha). undefined for holiday readings
[parshaNum] number | Array.<number> 1 for Bereshit, 2 for Noach, etc. undefined for holiday readings
summary string Such as Genesis 1:1 - 6:8
haft Aliyah | Array.<Aliyah> Haftarah object(s)
haftara string Haftarah, such as Isaiah 42:5 – 43:11
[haftaraNumV] number Number of verses in the Haftarah
[seph] Aliyah | Array.<Aliyah> Haftarah object(s) for Sephardim
[sephardic] string Haftarah for Sephardim, such as Isaiah 42:5 - 42:21
[sephardicNumV] number Number of verses in the Haftarah for Sephardim
fullkriyah Object.<string, Aliyah> Map of aliyot 1 through 7 plus M for maftir
[weekday] Object.<string, Aliyah> Optional map of weekday Torah Readings aliyot 1 through 3 for Monday and Thursday
[reason] Object.<string, string> Explanations for special readings, keyed by aliyah number, M for maftir or haftara for Haftarah
[megillah] Object.<string, Aliyah> Optional map of megillah reading. Song of Songs is read on the sabbath of Passover week, the Book of Ruth on Shavuot, Lamentations on Tisha be-Av, Ecclesiastes on the sabbath of the week of Sukkoth, and the Book of Esther on Purim.

ParshaMeta : Object

Parsha metadata

Kind: global typedef
Properties

Name Type Description
num number 1 for Bereshit, 2 for Noach, etc. undefined for holiday readings
hebrew string parsha name in Hebrew with niqud
book number 1 for Genesis, 2 for Exodus, 5 for Deuteronomy
haft Aliyah | Array.<Aliyah> Haftarah object(s)
[seph] Aliyah | Array.<Aliyah> Haftarah object(s) for Sephardim
fullkriyah Object.<string, Array.<string>> Map of aliyot 1 through 7 plus M for maftir
weekday Object.<string, Array.<string>> Map of weekday Torah Readings aliyot 1 through 3 for Monday and Thursday

/@hebcal/leyning/

    Package Sidebar

    Install

    npm i @hebcal/leyning

    Weekly Downloads

    53

    Version

    8.1.8

    License

    BSD-2-Clause

    Unpacked Size

    357 kB

    Total Files

    9

    Last publish

    Collaborators

    • mjradwin