Back to js-datatype-foundation
11-parcel-service.js
JavaScript
1/**
2 * 📮 Dak Ghar Parcel Service - JSON & Type Conversion
3 *
4 * Dak Ghar (Post Office) mein parcels ka data manage karna hai.
5 * Kabhi JSON mein convert karna padta hai, kabhi JSON se wapas laana
6 * padta hai, kabhi ek type se doosre mein. Type conversion ka journey!
7 *
8 * Methods to explore: JSON.stringify(), JSON.parse(),
9 * String(), Number(), Array.from()
10 *
11 * Functions:
12 *
13 * 1. parcelToJSON(parcel)
14 * - JSON.stringify() se parcel object ko JSON string mein convert karo
15 * - try-catch use karo (circular references ke liye)
16 * - Agar parcel undefined hai ya error aaye, return ""
17 * - Example: parcelToJSON({id:"P001", weight:2.5})
18 * => '{"id":"P001","weight":2.5}'
19 *
20 * 2. jsonToParcel(jsonString)
21 * - JSON.parse() se JSON string ko wapas object mein convert karo
22 * - try-catch use karo (invalid JSON ke liye)
23 * - Agar jsonString string nahi hai ya invalid JSON hai, return null
24 * - Example: jsonToParcel('{"id":"P001","weight":2.5}')
25 * => {id:"P001", weight:2.5}
26 *
27 * 3. convertToString(value)
28 * - String() se kisi bhi value ko string mein convert karo
29 * - Example: convertToString(42) => "42"
30 * - Example: convertToString(true) => "true"
31 * - Example: convertToString(null) => "null"
32 * - Example: convertToString(undefined) => "undefined"
33 *
34 * 4. convertToNumber(value)
35 * - Number() se value ko number mein convert karo
36 * - Agar result NaN hai, toh NaN hi return karo (caller handle karega)
37 * - Example: convertToNumber("42.5") => 42.5
38 * - Example: convertToNumber(true) => 1
39 * - Example: convertToNumber("hello") => NaN
40 * - Example: convertToNumber("") => 0
41 *
42 * 5. stringToChars(str)
43 * - Array.from() se string ko characters ki array mein convert karo
44 * - Agar str string nahi hai, return []
45 * - Example: stringToChars("Dak") => ["D", "a", "k"]
46 * - Example: stringToChars("") => []
47 *
48 * @example
49 * parcelToJSON({id:"P001"}) // => '{"id":"P001"}'
50 * jsonToParcel('{"id":"P001"}') // => {id:"P001"}
51 * convertToString(42) // => "42"
52 * stringToChars("Dak") // => ["D", "a", "k"]
53 */
54export function parcelToJSON(parcel) {
55 try {
56 const data = JSON.stringify(parcel)
57 if(data === undefined){
58 return ""
59 }
60 return data
61 } catch (error) {
62 return ""
63 }
64}
65
66export function jsonToParcel(jsonString) {
67
68 if(typeof jsonString !== "string"){
69 return null
70 }
71 try {
72 const data = JSON.parse(jsonString);
73 return data
74 } catch (error) {
75 return null
76 }
77}
78
79export function convertToString(value) {
80 return String(value)
81}
82
83export function convertToNumber(value) {
84 return Number(value)
85}
86
87export function stringToChars(str) {
88 if(typeof str !== "string"){
89 return []
90 }
91 return Array.from(str)
92}
93