vaderjs 2.1.0 → 2.1.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 (3) hide show
  1. package/bundler/index.js +29 -1
  2. package/main.js +25 -17
  3. package/package.json +1 -1
package/bundler/index.js CHANGED
@@ -13,6 +13,7 @@ import ansiColors from "ansi-colors";
13
13
  import path from "path";
14
14
  let path2 = require("path");
15
15
  globalThis.Fragment = Fragment;
16
+
16
17
  globalThis.window = {
17
18
  location: {
18
19
  hash: "",
@@ -31,7 +32,20 @@ globalThis.genKey = () => {
31
32
  globalThis.document = {
32
33
  createElement: (tag) => { },
33
34
  getElementById: (id) => { },
34
- querySelector: (query) => { },
35
+ querySelector: (query) => {
36
+ return Object.create({
37
+ addEventListener: (event, cb) => { },
38
+ removeEventListener: (event, cb) => { },
39
+ innerHTML: "",
40
+ appendChild: (child) => { },
41
+ removeChild: (child) => { },
42
+ src: "",
43
+ style: {},
44
+ });
45
+ },
46
+ querySelectorAll: (query) => {
47
+ return []
48
+ },
35
49
  };
36
50
  globalThis.window = {
37
51
  addEventListener: (event, cb) => { },
@@ -58,6 +72,7 @@ try {
58
72
  format: "esm",
59
73
  ...(process.env.DEV ? { sourcemap: "inline" } : {}),
60
74
  packages: "bundle",
75
+ env: "inline",
61
76
  external: ["vaderjs"]
62
77
  });
63
78
  } catch (error) {
@@ -149,6 +164,19 @@ const handleReplacements = (code) => {
149
164
  }
150
165
  builtCode = handleReplacements(builtCode)
151
166
 
167
+ builtCode += `
168
+ var process = {
169
+ env: {
170
+ ${Object.keys(process.env)
171
+ .filter((key) =>
172
+ !['bindes', 'ENTRYPOINT', 'ROOT', 'OUT', 'file', 'DEV',
173
+ 'size', 'filePath', 'isAppFile', 'isJsx', 'INPUT'].includes(key)
174
+ )
175
+ .map((key) => `${key}: "${process.env[key]}"`)
176
+ .join(',\n')}
177
+ }
178
+ }
179
+ `;
152
180
  fs.writeFileSync(path.join(process.cwd(), 'dist', process.env.filePath), builtCode)
153
181
 
154
182
  let isClass = function (element) {
package/main.js CHANGED
@@ -4,9 +4,19 @@ import ansiColors from 'ansi-colors'
4
4
  import { Glob } from 'bun'
5
5
  const args = Bun.argv.slice(2)
6
6
  globalThis.isBuilding = false;
7
- import fs from 'fs'
7
+ import fs from 'fs'
8
+ import { platform } from 'os'
8
9
  import path from 'path'
9
10
 
11
+ let bunPath = 'bun'; // Default for Linux/Mac
12
+ if (platform() === 'win32') {
13
+ bunPath ='bun'; // Bun path for Windows
14
+ } else {
15
+ bunPath = path.resolve(process.env.HOME || process.env.USERPROFILE, '.bun', 'bin', 'bun');
16
+ }
17
+
18
+
19
+
10
20
 
11
21
  if (!fs.existsSync(process.cwd() + '/app') && !args.includes('init')) {
12
22
  console.error(`App directory not found in ${process.cwd()}/app`)
@@ -167,8 +177,9 @@ const handleReplacements = (code) => {
167
177
  line = b4
168
178
  }
169
179
  if (!hasImport && line.includes('useRef')) {
180
+ line = line.replace(' ', '')
170
181
  let b4 = line
171
- let key = line.split(' ')[1].split('=')[0]
182
+ let key = line.split('=')[0].split(' ').filter(Boolean)[1]
172
183
  b4 = line.replace('useRef(', `this.useRef('${key}',`)
173
184
  line = b4
174
185
  }
@@ -186,8 +197,7 @@ if (!fs.existsSync(process.cwd() + '/dev/bundler.js')) {
186
197
  let start = Date.now()
187
198
  async function generateApp() {
188
199
  globalThis.isBuilding = true;
189
- console.log(ansiColors.green('Building...'))
190
- console.log(`Starting build at ${new Date().toLocaleTimeString()}`)
200
+ console.log(ansiColors.green('Building...'))
191
201
  let plugins = config.plugins || []
192
202
  for (let plugin of plugins) {
193
203
  if (plugin.onBuildStart) {
@@ -257,14 +267,14 @@ async function generateApp() {
257
267
  loader: 'ts',
258
268
  }).transformSync(await Bun.file(require.resolve('vaderjs')).text()))
259
269
  Bun.spawn({
260
- cmd: ['bun', 'run', './dev/bundler.js'],
270
+ cmd: [bunPath, 'run', './dev/bundler.js'] ,
261
271
  cwd: process.cwd(),
262
272
  stdout: 'inherit',
263
273
  env: {
264
- ENTRYPOINT: path.join(process.cwd() + '/dist/' + path.dirname(r) + '/' + path.basename(r)),
265
- ROOT: process.cwd() + '/app/',
274
+ ENTRYPOINT: path.join(process.cwd(), 'dist', path.dirname(r), path.basename(r)),
275
+ ROOT: path.join(process.cwd(), 'app/'),
266
276
  OUT: path.dirname(r),
267
- file: process.cwd() + '/dist/' + path.dirname(r) + '/' + path.basename(r),
277
+ file: path.join(process.cwd(), 'dist', path.dirname(r), path.basename(r)),
268
278
  DEV: mode === 'development',
269
279
  size,
270
280
  bindes: bindes.join('\n'),
@@ -275,15 +285,13 @@ async function generateApp() {
275
285
  },
276
286
  onExit({ exitCode: code }) {
277
287
  if (code === 0) {
278
- bindes = []
279
- console.log(`Built ${r} in ${Date.now() - start}ms`)
280
- resolve()
288
+ bindes = [];
289
+ resolve();
281
290
  } else {
282
- reject()
291
+ reject();
283
292
  }
284
- }
285
- })
286
-
293
+ },
294
+ });
287
295
  })
288
296
 
289
297
  switch (host_provider) {
@@ -354,7 +362,7 @@ function handleFiles() {
354
362
  file = file.replace('.jsx', '.js').replace('.tsx', '.js')
355
363
  fs.writeFileSync(path.join(process.cwd() + '/dist', file.replace('.jsx', '.js').replace('.tsx', '.js')), code)
356
364
  await Bun.spawn({
357
- cmd: ['bun', 'run', './dev/bundler.js'],
365
+ cmd: [bunPath, 'run', './dev/bundler.js'],
358
366
  cwd: process.cwd(),
359
367
  stdout: 'inherit',
360
368
  env: {
@@ -383,7 +391,7 @@ function handleFiles() {
383
391
  file = file.replace('.ts', '.js')
384
392
  fs.writeFileSync(path.join(process.cwd() + '/dist', file.replace('.ts', '.js')), code)
385
393
  await Bun.spawn({
386
- cmd: ['bun', 'run', './dev/bundler.js'],
394
+ cmd: [bunPath, 'run', './dev/bundler.js'],
387
395
  cwd: process.cwd(),
388
396
  stdout: 'inherit',
389
397
  env: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vaderjs",
3
- "version": "2.1.0",
3
+ "version": "2.1.2",
4
4
  "description": "A simple and powerful JavaScript library for building modern web applications.",
5
5
  "bin": {
6
6
  "vaderjs": "./main.js"