@quranjs/api 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/api.cjs.development.js +56 -25
- package/dist/api.cjs.development.js.map +1 -1
- package/dist/api.cjs.production.min.js +1 -1
- package/dist/api.cjs.production.min.js.map +1 -1
- package/dist/api.esm.js +56 -25
- package/dist/api.esm.js.map +1 -1
- package/dist/sdk/index.d.ts +12 -0
- package/dist/sdk/utils.d.ts +1 -1
- package/dist/sdk/v4/index.d.ts +12 -0
- package/dist/sdk/v4/verses.d.ts +13 -1
- package/package.json +2 -1
- package/src/sdk/utils.ts +2 -2
- package/src/sdk/v4/verses.ts +9 -10
package/dist/sdk/index.d.ts
CHANGED
|
@@ -60,6 +60,18 @@ declare const quran: {
|
|
|
60
60
|
page: number;
|
|
61
61
|
perPage: number;
|
|
62
62
|
}> | undefined) => Promise<import("..").Verse[]>;
|
|
63
|
+
findByHizb: (hizb: import("..").HizbNumber, options?: Partial<{
|
|
64
|
+
language: import("..").Language;
|
|
65
|
+
reciter: string | number;
|
|
66
|
+
words: boolean;
|
|
67
|
+
translations: string[] | number[];
|
|
68
|
+
tafsirs: string[] | number[];
|
|
69
|
+
wordFields: Partial<Record<import("..").WordField, boolean>>;
|
|
70
|
+
translationFields: Partial<Record<import("..").TranslationField, boolean>>;
|
|
71
|
+
fields: Partial<Record<import("..").VerseField, boolean>>;
|
|
72
|
+
page: number;
|
|
73
|
+
perPage: number;
|
|
74
|
+
}> | undefined) => Promise<import("..").Verse[]>;
|
|
63
75
|
findRandom: (options?: Partial<{
|
|
64
76
|
language: import("..").Language;
|
|
65
77
|
reciter: string | number;
|
package/dist/sdk/utils.d.ts
CHANGED
package/dist/sdk/v4/index.d.ts
CHANGED
|
@@ -59,6 +59,18 @@ declare const v4: {
|
|
|
59
59
|
page: number;
|
|
60
60
|
perPage: number;
|
|
61
61
|
}> | undefined) => Promise<import("../..").Verse[]>;
|
|
62
|
+
findByHizb: (hizb: import("../..").HizbNumber, options?: Partial<{
|
|
63
|
+
language: import("../..").Language;
|
|
64
|
+
reciter: string | number;
|
|
65
|
+
words: boolean;
|
|
66
|
+
translations: string[] | number[];
|
|
67
|
+
tafsirs: string[] | number[];
|
|
68
|
+
wordFields: Partial<Record<import("../..").WordField, boolean>>;
|
|
69
|
+
translationFields: Partial<Record<import("../..").TranslationField, boolean>>;
|
|
70
|
+
fields: Partial<Record<import("../..").VerseField, boolean>>;
|
|
71
|
+
page: number;
|
|
72
|
+
perPage: number;
|
|
73
|
+
}> | undefined) => Promise<import("../..").Verse[]>;
|
|
62
74
|
findRandom: (options?: Partial<{
|
|
63
75
|
language: import("../..").Language;
|
|
64
76
|
reciter: string | number;
|
package/dist/sdk/v4/verses.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChapterId, JuzNumber, Language, PageNumber, TranslationField, Verse, VerseField, VerseKey, WordField } from '../../types';
|
|
1
|
+
import { ChapterId, HizbNumber, JuzNumber, Language, PageNumber, TranslationField, Verse, VerseField, VerseKey, WordField } from '../../types';
|
|
2
2
|
declare const verses: {
|
|
3
3
|
findByKey: (key: VerseKey, options?: Partial<{
|
|
4
4
|
language: Language;
|
|
@@ -48,6 +48,18 @@ declare const verses: {
|
|
|
48
48
|
page: number;
|
|
49
49
|
perPage: number;
|
|
50
50
|
}> | undefined) => Promise<Verse[]>;
|
|
51
|
+
findByHizb: (hizb: HizbNumber, options?: Partial<{
|
|
52
|
+
language: Language;
|
|
53
|
+
reciter: string | number;
|
|
54
|
+
words: boolean;
|
|
55
|
+
translations: string[] | number[];
|
|
56
|
+
tafsirs: string[] | number[];
|
|
57
|
+
wordFields: Partial<Record<WordField, boolean>>;
|
|
58
|
+
translationFields: Partial<Record<TranslationField, boolean>>;
|
|
59
|
+
fields: Partial<Record<VerseField, boolean>>;
|
|
60
|
+
page: number;
|
|
61
|
+
perPage: number;
|
|
62
|
+
}> | undefined) => Promise<Verse[]>;
|
|
51
63
|
findRandom: (options?: Partial<{
|
|
52
64
|
language: Language;
|
|
53
65
|
reciter: string | number;
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.6.0",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"main": "dist/index.js",
|
|
11
11
|
"typings": "dist/index.d.ts",
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"@size-limit/preset-small-lib": "^7.0.8",
|
|
29
29
|
"@types/humps": "^2.0.1",
|
|
30
30
|
"dts-cli": "^1.4.0",
|
|
31
|
+
"fast-check": "^3.3.0",
|
|
31
32
|
"husky": "^7.0.4",
|
|
32
33
|
"msw": "^0.39.2",
|
|
33
34
|
"rollup-plugin-analyzer": "^4.0.0",
|
package/src/sdk/utils.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// this maps chapterNumber to verseCount
|
|
2
|
-
export const
|
|
2
|
+
export const versesMapping = {
|
|
3
3
|
'1': 7,
|
|
4
4
|
'2': 286,
|
|
5
5
|
'3': 200,
|
|
@@ -211,7 +211,7 @@ const isValidVerseKey = (key: string) => {
|
|
|
211
211
|
if (!chapterId || !verseId || !isValidChapterId(chapterId)) return false;
|
|
212
212
|
|
|
213
213
|
const parsedVerse = Number(verseId);
|
|
214
|
-
const verseCount = (
|
|
214
|
+
const verseCount = (versesMapping as any)[chapterId];
|
|
215
215
|
if (!parsedVerse || parsedVerse <= 0 || parsedVerse > verseCount)
|
|
216
216
|
return false;
|
|
217
217
|
|
package/src/sdk/v4/verses.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ChapterId,
|
|
3
|
-
|
|
3
|
+
HizbNumber,
|
|
4
4
|
JuzNumber,
|
|
5
5
|
Language,
|
|
6
6
|
PageNumber,
|
|
@@ -146,7 +146,6 @@ const findByJuz = async (juz: JuzNumber, options?: GetVerseOptions) => {
|
|
|
146
146
|
return verses;
|
|
147
147
|
};
|
|
148
148
|
|
|
149
|
-
// TODO: uncomment when API is fixed
|
|
150
149
|
/**
|
|
151
150
|
* Get all ayahs for a Hizb.
|
|
152
151
|
* @description https://quran.api-docs.io/v4/verses/by-hizb-number
|
|
@@ -156,15 +155,15 @@ const findByJuz = async (juz: JuzNumber, options?: GetVerseOptions) => {
|
|
|
156
155
|
* quran.v4.verses.findByHizb('1')
|
|
157
156
|
* quran.v4.verses.findByHizb('29')
|
|
158
157
|
*/
|
|
159
|
-
|
|
160
|
-
|
|
158
|
+
const findByHizb = async (hizb: HizbNumber, options?: GetVerseOptions) => {
|
|
159
|
+
if (!Utils.isValidHizb(hizb)) throw new Error('Invalid hizb');
|
|
161
160
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
161
|
+
const params = getVerseOptions(options);
|
|
162
|
+
const url = `/verses/by_hizb/${hizb}`;
|
|
163
|
+
const { verses } = await fetcher<{ verses: Verse[] }>(url, params);
|
|
165
164
|
|
|
166
|
-
|
|
167
|
-
|
|
165
|
+
return verses;
|
|
166
|
+
};
|
|
168
167
|
|
|
169
168
|
// TODO: uncomment when API is fixed
|
|
170
169
|
/**
|
|
@@ -205,7 +204,7 @@ const verses = {
|
|
|
205
204
|
findByChapter,
|
|
206
205
|
findByPage,
|
|
207
206
|
findByJuz,
|
|
208
|
-
|
|
207
|
+
findByHizb,
|
|
209
208
|
// findByRub,
|
|
210
209
|
findRandom,
|
|
211
210
|
};
|