@jclind/ingredient-parser 1.0.21 → 1.0.23
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/dist/api/requests.d.ts +1 -1
- package/dist/api/requests.js +2 -2
- package/dist/api/requests.js.map +1 -1
- package/dist/funcs/calculatePrice.d.ts +4 -1
- package/dist/funcs/calculatePrice.js +4 -5
- package/dist/funcs/calculatePrice.js.map +1 -1
- package/dist/funcs/getSpoonacularIngrData.js +13 -4
- package/dist/funcs/getSpoonacularIngrData.js.map +1 -1
- package/dist/funcs/ingredientParser.js +2 -3
- package/dist/funcs/ingredientParser.js.map +1 -1
- package/package.json +1 -1
package/dist/api/requests.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const checkIngredient: (name: string) => Promise<import("axios").AxiosResponse<any, any>>;
|
|
2
2
|
export declare const searchIngredient: (name: string, spoonacularAPIKey: any) => Promise<any>;
|
|
3
|
-
export declare const getIngredientInformation: (ingrId: number, spoonacularAPIKey: any) => Promise<any>;
|
|
3
|
+
export declare const getIngredientInformation: (ingrId: number, unit: boolean, spoonacularAPIKey: any) => Promise<any>;
|
|
4
4
|
export declare const setMongoDBIngrData: (data: any) => Promise<import("axios").AxiosResponse<any, any>>;
|
package/dist/api/requests.js
CHANGED
|
@@ -18,10 +18,10 @@ export const searchIngredient = async (name, spoonacularAPIKey) => {
|
|
|
18
18
|
}
|
|
19
19
|
return searchedIngr;
|
|
20
20
|
};
|
|
21
|
-
export const getIngredientInformation = async (ingrId, spoonacularAPIKey) => {
|
|
21
|
+
export const getIngredientInformation = async (ingrId, unit, spoonacularAPIKey) => {
|
|
22
22
|
let ingrData;
|
|
23
23
|
try {
|
|
24
|
-
ingrData = await spoonacularHttp.get(`${ingrId}/information?amount=1&apiKey=${spoonacularAPIKey}`);
|
|
24
|
+
ingrData = await spoonacularHttp.get(`${ingrId}/information?amount=1&${unit ? 'unit=grams&' : ''}apiKey=${spoonacularAPIKey}`);
|
|
25
25
|
}
|
|
26
26
|
catch (error) {
|
|
27
27
|
const res = error.response.data;
|
package/dist/api/requests.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../../src/api/requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEtD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;IACpD,OAAO,MAAM,SAAS,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;AAC5D,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,IAAY,EAAE,iBAAiB,EAAE,EAAE;IACxE,IAAI,YAAiB,CAAA;IACrB,IAAI;QACF,YAAY,GAAG,MAAM,eAAe,CAAC,GAAG,CACtC,gBAAgB,IAAI,oBAAoB,iBAAiB,EAAE,CAC5D,CAAA;KACF;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,GAAG,GAAQ,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;QACpC,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;SACrC;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;SACpD;KACF;IACD,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,MAAc,EACd,iBAAiB,EACjB,EAAE;IACF,IAAI,QAAa,CAAA;IACjB,IAAI;QACF,QAAQ,GAAG,MAAM,eAAe,CAAC,GAAG,CAClC,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../../src/api/requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEtD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;IACpD,OAAO,MAAM,SAAS,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;AAC5D,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,IAAY,EAAE,iBAAiB,EAAE,EAAE;IACxE,IAAI,YAAiB,CAAA;IACrB,IAAI;QACF,YAAY,GAAG,MAAM,eAAe,CAAC,GAAG,CACtC,gBAAgB,IAAI,oBAAoB,iBAAiB,EAAE,CAC5D,CAAA;KACF;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,GAAG,GAAQ,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;QACpC,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;SACrC;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;SACpD;KACF;IACD,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,MAAc,EACd,IAAa,EACb,iBAAiB,EACjB,EAAE;IACF,IAAI,QAAa,CAAA;IACjB,IAAI;QACF,QAAQ,GAAG,MAAM,eAAe,CAAC,GAAG,CAClC,GAAG,MAAM,yBACP,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EACzB,UAAU,iBAAiB,EAAE,CAC9B,CAAA;KACF;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,GAAG,GAAQ,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;QACpC,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;SACrC;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;SACpD;KACF;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAC,IAAI,EAAC,EAAE;IAC7C,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;AACpD,CAAC,CAAA"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { converter } from '@jclind/ingredient-unit-converter';
|
|
2
2
|
export const calculatePrice = (quantity, unit, price) => {
|
|
3
|
-
console.log(quantity, unit, price);
|
|
4
3
|
if (!quantity)
|
|
5
|
-
return price;
|
|
4
|
+
return price.estimatedSingleUnitPrice;
|
|
6
5
|
if (!unit)
|
|
7
|
-
return price * quantity;
|
|
6
|
+
return price.estimatedSingleUnitPrice * quantity;
|
|
8
7
|
let convertedUnit;
|
|
9
8
|
try {
|
|
10
9
|
convertedUnit = converter(quantity, unit);
|
|
@@ -13,9 +12,9 @@ export const calculatePrice = (quantity, unit, price) => {
|
|
|
13
12
|
return null;
|
|
14
13
|
}
|
|
15
14
|
if (!convertedUnit || convertedUnit.error)
|
|
16
|
-
return price * quantity;
|
|
15
|
+
return price.estimatedSingleUnitPrice * quantity;
|
|
17
16
|
const convertedGrams = Number(convertedUnit.quantity);
|
|
18
|
-
const total = convertedGrams * price;
|
|
17
|
+
const total = convertedGrams * price.estimatedGramPrice;
|
|
19
18
|
return Math.ceil(total * 100) / 100;
|
|
20
19
|
};
|
|
21
20
|
//# sourceMappingURL=calculatePrice.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculatePrice.js","sourceRoot":"","sources":["../../src/funcs/calculatePrice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAA;AAE7D,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,QAAgB,EAChB,IAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"calculatePrice.js","sourceRoot":"","sources":["../../src/funcs/calculatePrice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAA;AAE7D,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,QAAgB,EAChB,IAAY,EACZ,KAAuE,EACxD,EAAE;IACjB,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC,wBAAwB,CAAA;IACpD,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC,wBAAwB,GAAG,QAAQ,CAAA;IAE3D,IAAI,aAAa,CAAA;IACjB,IAAI;QACF,aAAa,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;KAC1C;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,IAAI,CAAA;KACZ;IAED,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,KAAK;QACvC,OAAO,KAAK,CAAC,wBAAwB,GAAG,QAAQ,CAAA;IAElD,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IACrD,MAAM,KAAK,GAAW,cAAc,GAAG,KAAK,CAAC,kBAAkB,CAAA;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;AACrC,CAAC,CAAA"}
|
|
@@ -6,10 +6,19 @@ export async function getSpoonacularIngrData(name, spoonacularAPIKey) {
|
|
|
6
6
|
const ingrId = searchedIngr?.data?.results[0]?.id ?? null;
|
|
7
7
|
if (!ingrId)
|
|
8
8
|
throw new Error(`No Data Found, unknown ingredient: ${name}`);
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
const ingrDataGram = await getIngredientInformation(ingrId, true, spoonacularAPIKey);
|
|
10
|
+
const ingrDataSingleUnit = await getIngredientInformation(ingrId, false, spoonacularAPIKey);
|
|
11
|
+
if (ingrDataGram.error || ingrDataSingleUnit.error)
|
|
12
|
+
return ingrDataGram;
|
|
13
|
+
const estimatedGramPrice = ingrDataGram.data.estimatedCost.value;
|
|
14
|
+
const estimatedSingleUnitPrice = ingrDataSingleUnit.data.estimatedCost.value;
|
|
15
|
+
const ingrData = {
|
|
16
|
+
...ingrDataGram.data,
|
|
17
|
+
name,
|
|
18
|
+
ingredientId: ingrId,
|
|
19
|
+
estimatedPrices: { estimatedGramPrice, estimatedSingleUnitPrice },
|
|
20
|
+
};
|
|
21
|
+
const mongoDBIngrData = ingrData;
|
|
13
22
|
const mongoRes = await setMongoDBIngrData(mongoDBIngrData);
|
|
14
23
|
const _id = mongoRes.data.insertedId;
|
|
15
24
|
return { ...mongoDBIngrData, _id };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSpoonacularIngrData.js","sourceRoot":"","sources":["../../src/funcs/getSpoonacularIngrData.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAY,EACZ,iBAAyB;IAEzB,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IACpE,IAAI,YAAY,CAAC,KAAK;QAAE,OAAO,YAAY,CAAA;IAC3C,MAAM,MAAM,GAAG,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,CAAA;IAEzD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAA;IAE1E,MAAM,
|
|
1
|
+
{"version":3,"file":"getSpoonacularIngrData.js","sourceRoot":"","sources":["../../src/funcs/getSpoonacularIngrData.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAY,EACZ,iBAAyB;IAEzB,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IACpE,IAAI,YAAY,CAAC,KAAK;QAAE,OAAO,YAAY,CAAA;IAC3C,MAAM,MAAM,GAAG,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,CAAA;IAEzD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAA;IAE1E,MAAM,YAAY,GAAG,MAAM,wBAAwB,CACjD,MAAM,EACN,IAAI,EACJ,iBAAiB,CAClB,CAAA;IACD,MAAM,kBAAkB,GAAG,MAAM,wBAAwB,CACvD,MAAM,EACN,KAAK,EACL,iBAAiB,CAClB,CAAA;IAED,IAAI,YAAY,CAAC,KAAK,IAAI,kBAAkB,CAAC,KAAK;QAAE,OAAO,YAAY,CAAA;IAEvE,MAAM,kBAAkB,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAA;IAChE,MAAM,wBAAwB,GAAG,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAA;IAE5E,MAAM,QAAQ,GAAG;QACf,GAAG,YAAY,CAAC,IAAI;QACpB,IAAI;QACJ,YAAY,EAAE,MAAM;QACpB,eAAe,EAAE,EAAE,kBAAkB,EAAE,wBAAwB,EAAE;KAClE,CAAA;IAED,MAAM,eAAe,GAAG,QAAQ,CAAA;IAChC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,eAAe,CAAC,CAAA;IAC1D,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAA;IACpC,OAAO,EAAE,GAAG,eAAe,EAAE,GAAG,EAAE,CAAA;AACpC,CAAC"}
|
|
@@ -24,9 +24,8 @@ const ingredientParser = async (ingrString, spoonacularAPIKey) => {
|
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
26
|
if (formattedIngr && ingrData) {
|
|
27
|
-
const {
|
|
28
|
-
|
|
29
|
-
const totalPrice = calculatePrice(parsedIngr.quantity, parsedIngr.unit, estimatedCost.value);
|
|
27
|
+
const { estimatedPrices, meta, categoryPath, unit, unitShort, unitLong, original, id, ...reducedIngrData } = ingrData;
|
|
28
|
+
const totalPrice = calculatePrice(parsedIngr.quantity, parsedIngr.unit, estimatedPrices);
|
|
30
29
|
const imagePath = `https://spoonacular.com/cdn/ingredients_100x100/${reducedIngrData.image}`;
|
|
31
30
|
const updatedIngrData = {
|
|
32
31
|
...reducedIngrData,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingredientParser.js","sourceRoot":"","sources":["../../src/funcs/ingredientParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAA;AAMnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D,MAAM,gBAAgB,GAAG,KAAK,EAC5B,UAAkB,EAClB,iBAAyB,EACI,EAAE;IAC/B,MAAM,UAAU,GAAqB,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAC7D,MAAM,aAAa,GAAG,oBAAoB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;IACjE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,aAAa,CAAA;IAEpD,MAAM,iBAAiB,GAAG;QACxB,GAAG,UAAU;QACb,UAAU,EAAE,iBAAiB;QAC7B,wBAAwB,EAAE,UAAU;QACpC,OAAO;KACR,CAAA;IACD,IAAI,QAAQ,GAAG,IAAI,CAAA;IACnB,IAAI;QACF,QAAQ,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAA;KACzE;IAAC,OAAO,KAAK,EAAE;QACd,OAAO;YACL,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;YACjC,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,iBAAiB,IAAI,IAAI;SAC5C,CAAA;KACF;IACD,IAAI,aAAa,IAAI,QAAQ,EAAE;QAC7B,MAAM,EACJ,
|
|
1
|
+
{"version":3,"file":"ingredientParser.js","sourceRoot":"","sources":["../../src/funcs/ingredientParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAA;AAMnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D,MAAM,gBAAgB,GAAG,KAAK,EAC5B,UAAkB,EAClB,iBAAyB,EACI,EAAE;IAC/B,MAAM,UAAU,GAAqB,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAC7D,MAAM,aAAa,GAAG,oBAAoB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;IACjE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,aAAa,CAAA;IAEpD,MAAM,iBAAiB,GAAG;QACxB,GAAG,UAAU;QACb,UAAU,EAAE,iBAAiB;QAC7B,wBAAwB,EAAE,UAAU;QACpC,OAAO;KACR,CAAA;IACD,IAAI,QAAQ,GAAG,IAAI,CAAA;IACnB,IAAI;QACF,QAAQ,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAA;KACzE;IAAC,OAAO,KAAK,EAAE;QACd,OAAO;YACL,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;YACjC,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,iBAAiB,IAAI,IAAI;SAC5C,CAAA;KACF;IACD,IAAI,aAAa,IAAI,QAAQ,EAAE;QAC7B,MAAM,EACJ,eAAe,EACf,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,EAAE,EACF,GAAG,eAAe,EACnB,GAAG,QAAQ,CAAA;QAEZ,MAAM,UAAU,GAAG,cAAc,CAC/B,UAAU,CAAC,QAAQ,EACnB,UAAU,CAAC,IAAI,EACf,eAAe,CAChB,CAAA;QAED,MAAM,SAAS,GAAG,mDAAmD,eAAe,CAAC,KAAK,EAAE,CAAA;QAC5F,MAAM,eAAe,GAAmB;YACtC,GAAG,eAAe;YAClB,SAAS;YACT,kBAAkB,EAAE,UAAU;SAC/B,CAAA;QAED,OAAO;YACL,cAAc,EAAE,eAAe;YAC/B,gBAAgB,EAAE,iBAAiB;SACpC,CAAA;KACF;SAAM;QACL,OAAO;YACL,KAAK,EAAE;gBACL,OAAO,EACL,sHAAsH;aACzH;YACD,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,iBAAiB;SACpC,CAAA;KACF;AACH,CAAC,CAAA;AAED,eAAe,gBAAgB,CAAA"}
|
package/package.json
CHANGED