satyacode
Background
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