hindicode 1.0.0 → 1.0.2

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.
Files changed (2) hide show
  1. package/index.js +137 -14
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -1,26 +1,149 @@
1
1
  const fs = require("fs");
2
-
3
- // Hindi to JavaScript keyword mapping
2
+ const Module = require("module");
3
+ const path = require("path");
4
4
  const hindiToJS = {
5
5
  "अगर": "if",
6
6
  "अन्यथा": "else",
7
7
  "दिखाओ": "console.log",
8
8
  "कार्य": "function",
9
- "लौटाओ": "return"
9
+ "लौटाओ": "return",
10
+ "चलाओ": "for",
11
+ "जबतक": "while",
12
+ "नया": "let",
13
+ "स्थिर": "const",
14
+ "परिभाषा": "var",
15
+ "सही": "true",
16
+ "गलत": "false",
17
+ "शून्य": "null",
18
+ "प्रयास": "try",
19
+ "पकड़ो": "catch",
20
+ "अंततः": "finally",
21
+ "फेंको": "throw",
22
+ "वर्ग": "class",
23
+ "विस्तार": "extends",
24
+ "सुपर": "super",
25
+ "वापसी": "yield",
26
+ "प्रतीक्षा": "await",
27
+ "आयात": "import",
28
+ "निर्यात": "export",
29
+ "डिफ़ॉल्ट": "default",
30
+ "केस": "case",
31
+ "ब्रेक": "break",
32
+ "जारी": "continue",
33
+ "स्विच": "switch",
34
+ "केलिए": "for",
35
+ "प्रत्येक": "forEach",
36
+ "मानचित्र": "map",
37
+ "फ़िल्टर": "filter",
38
+ "कम करना": "reduce",
39
+ "शामिल": "includes",
40
+ "इंडेक्स": "indexOf",
41
+ "पुश": "push",
42
+ "पॉप": "pop",
43
+ "शिफ्ट": "shift",
44
+ "अनशिफ्ट": "unshift",
45
+ "splice": "splice",
46
+ "concat": "concat",
47
+ "स्लाइस": "slice",
48
+ "लंबाई": "length",
49
+ "प्रकार": "typeof",
50
+ "उदाहरण": "instanceof",
51
+ "में": "in",
52
+ "नयाउदाहरण": "new",
53
+ "हटाना": "delete",
54
+ "शून्य करना": "void",
55
+ "साथ": "with",
56
+ "डीबग": "debugger",
57
+ "लेबल": "label",
58
+ "कोशिश": "try",
59
+ "ये": "this",
60
+ "प्रोटो": "prototype",
61
+ "कॉल": "call",
62
+ "लागू": "apply",
63
+ "बाध्य": "bind",
64
+ "अर्जुन": "arguments",
65
+ "बनाएँ": "create",
66
+ "कुंजी": "key",
67
+ "मूल्य": "value",
68
+ "प्रविष्टि": "entry",
69
+ "सेट": "set",
70
+ "प्राप्त": "get",
71
+ "है": "has",
72
+ "साफ़": "clear",
73
+ "आकार": "size",
74
+ "फिर": "then",
75
+ "पकड़": "catch",
76
+ "अंत में": "finally",
77
+ "सभी": "all",
78
+ "रेस": "race",
79
+ "हल": "resolve",
80
+ "अस्वीकार": "reject",
81
+ "से": "from",
82
+ "एक": "as",
83
+ "नम": "name",
84
+ "भेजें": "send",
85
+ "प्राप्त": "receive",
86
+ "कनेक्ट": "connect",
87
+ "सुनो": "listen",
88
+ "सर्वर": "server",
89
+ "ग्राहक": "client",
90
+ "अनंत": "Infinity",
91
+ "NaN": "NaN",
92
+ "कोड": "code",
93
+ "संदेश": "message",
10
94
  };
11
-
12
- // Function to translate Hindi JavaScript code
95
+ // // Hindi to JavaScript keyword mapping
96
+ // const hindiToJS = {
97
+ // "अगर": "if",
98
+ // "अन्यथा": "else",
99
+ // "दिखाओ": "console.log",
100
+ // "कार्य": "function",
101
+ // "लौटाओ": "return",
102
+ // "चलाओ": "for",
103
+ // "जबतक": "while",
104
+ // "नया": "let",
105
+ // "स्थिर": "const",
106
+ // "परिभाषा": "var"
107
+ // };
13
108
  function translateHindiJS(code) {
14
- for (const [hindi, js] of Object.entries(hindiToJS)) {
15
- const regex = new RegExp(`\\b${hindi}\\b`, "g");
16
- code = code.replace(regex, js);
17
- }
109
+ // स्ट्रिंग्स को प्रोटेक्ट करने के लिए, पहले उन्हें अलग कर लें
110
+ let stringLiterals = [];
111
+ code = code.replace(/(["'`])((?:\\\1|.)*?)\1/g, (match) => {
112
+ stringLiterals.push(match); // स्ट्रिंग सेव कर लो
113
+ return `___STR${stringLiterals.length - 1}___`; // प्लेसहोल्डर डाल दो
114
+ });
115
+
116
+ // अब सिर्फ जावास्क्रिप्ट केवर्ड्स को ही ट्रांसलेट करो
117
+ Object.entries(hindiToJS).forEach(([hindi, js]) => {
118
+ if (hindi === "नाम") {
119
+ // ✅ 'this.नाम' और 'let नाम' को नहीं बदलना
120
+ code = code.replace(/([^.\w])नाम([^.\w])/g, `$1name$2`);
121
+ } else {
122
+ const regex = new RegExp(`(?<![\\u00BF-\\u1FFF\\u2C00-\\uD7FF\\w])${hindi}(?![\\u00BF-\\u1FFF\\u2C00-\\uD7FF\\w])`, "g");
123
+ code = code.replace(regex, js);
124
+ }
125
+ });
126
+
127
+ // अब स्ट्रिंग्स को वापस लाओ
128
+ code = code.replace(/___STR(\d+)___/g, (_, index) => stringLiterals[parseInt(index)]);
129
+ console.log(code);
18
130
  return code;
19
131
  }
20
132
 
21
- // Hook into Node.js `require` to automatically translate Hindi JS files
22
- require.extensions[".js"] = function (module, filename) {
23
- let content = fs.readFileSync(filename, "utf8");
24
- content = translateHindiJS(content);
25
- module._compile(content, filename);
133
+
134
+ // Custom require hook for `.hindi.js` files
135
+ require.extensions[".hindi.js"] = function (module, filename) {
136
+ try {
137
+ let content = fs.readFileSync(filename, "utf8").trim();
138
+
139
+
140
+ // Translate Hindi to JavaScript
141
+ content = translateHindiJS(content); // Assign the returned value back to 'content'
142
+
143
+
144
+ // Run translated JavaScript code
145
+ module._compile(content, filename);
146
+ } catch (error) {
147
+ console.error("❌ Hindi Transpiler Error:", error);
148
+ }
26
149
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hindicode",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"