@technoculture/safeserial 0.1.1 → 0.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.
@@ -1,9 +1,9 @@
1
- const fs = require('fs');
2
- const path = require('path');
1
+ const fs = require("fs");
2
+ const path = require("path");
3
3
 
4
- const PROJECT_ROOT = path.resolve(__dirname, '../../..');
5
- const PKG_ROOT = path.resolve(__dirname, '..');
6
- const DEPS_DIR = path.join(PKG_ROOT, 'deps');
4
+ const PROJECT_ROOT = path.resolve(__dirname, "../../..");
5
+ const PKG_ROOT = path.resolve(__dirname, "..");
6
+ const DEPS_DIR = path.join(PKG_ROOT, "deps");
7
7
 
8
8
  function copyDir(src, dest) {
9
9
  fs.mkdirSync(dest, { recursive: true });
@@ -21,7 +21,31 @@ function copyDir(src, dest) {
21
21
  }
22
22
  }
23
23
 
24
- console.log('[copy_deps] Bundling C++ core files...');
24
+ console.log("[copy_deps] Bundling C++ core files...");
25
+
26
+ const repoSrc = path.join(PROJECT_ROOT, "src");
27
+ const repoInc = path.join(PROJECT_ROOT, "include");
28
+ const coreSrc = path.join(PKG_ROOT, "core", "src");
29
+ const coreInc = path.join(PKG_ROOT, "core", "include");
30
+
31
+ let srcDir = repoSrc;
32
+ let incDir = repoInc;
33
+
34
+ if (fs.existsSync(repoSrc) && fs.existsSync(repoInc)) {
35
+ console.log("[copy_deps] Using repo core sources");
36
+ } else if (fs.existsSync(coreSrc) && fs.existsSync(coreInc)) {
37
+ console.log("[copy_deps] Using packaged core sources");
38
+ srcDir = coreSrc;
39
+ incDir = coreInc;
40
+ } else if (fs.existsSync(DEPS_DIR)) {
41
+ console.log("[copy_deps] deps already present, skipping copy");
42
+ process.exit(0);
43
+ } else {
44
+ console.error(
45
+ "[copy_deps] No core sources found. Install from repo or publish with packaged core.",
46
+ );
47
+ process.exit(1);
48
+ }
25
49
 
26
50
  // Clean deps
27
51
  if (fs.existsSync(DEPS_DIR)) {
@@ -30,15 +54,13 @@ if (fs.existsSync(DEPS_DIR)) {
30
54
  fs.mkdirSync(DEPS_DIR);
31
55
 
32
56
  // Copy src
33
- const srcDir = path.join(PROJECT_ROOT, 'src');
34
- const destSrc = path.join(DEPS_DIR, 'src');
57
+ const destSrc = path.join(DEPS_DIR, "src");
35
58
  console.log(`Copying ${srcDir} -> ${destSrc}`);
36
59
  copyDir(srcDir, destSrc);
37
60
 
38
61
  // Copy include
39
- const incDir = path.join(PROJECT_ROOT, 'include');
40
- const destInc = path.join(DEPS_DIR, 'include');
62
+ const destInc = path.join(DEPS_DIR, "include");
41
63
  console.log(`Copying ${incDir} -> ${destInc}`);
42
64
  copyDir(incDir, destInc);
43
65
 
44
- console.log('[copy_deps] Done.');
66
+ console.log("[copy_deps] Done.");
@@ -0,0 +1,39 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+
4
+ const PROJECT_ROOT = path.resolve(__dirname, '../../..');
5
+ const PKG_ROOT = path.resolve(__dirname, '..');
6
+ const CORE_DIR = path.join(PKG_ROOT, 'core');
7
+
8
+ function copyDir(src, dest) {
9
+ fs.mkdirSync(dest, { recursive: true });
10
+ let entries = fs.readdirSync(src, { withFileTypes: true });
11
+
12
+ for (let entry of entries) {
13
+ let srcPath = path.join(src, entry.name);
14
+ let destPath = path.join(dest, entry.name);
15
+
16
+ if (entry.isDirectory()) {
17
+ copyDir(srcPath, destPath);
18
+ } else {
19
+ fs.copyFileSync(srcPath, destPath);
20
+ }
21
+ }
22
+ }
23
+
24
+ const srcDir = path.join(PROJECT_ROOT, 'src');
25
+ const incDir = path.join(PROJECT_ROOT, 'include');
26
+
27
+ if (!fs.existsSync(srcDir) || !fs.existsSync(incDir)) {
28
+ console.error('[prepare_core] Missing repo src/include');
29
+ process.exit(1);
30
+ }
31
+
32
+ if (fs.existsSync(CORE_DIR)) {
33
+ fs.rmSync(CORE_DIR, { recursive: true, force: true });
34
+ }
35
+
36
+ console.log('[prepare_core] Staging core sources for npm package...');
37
+ copyDir(srcDir, path.join(CORE_DIR, 'src'));
38
+ copyDir(incDir, path.join(CORE_DIR, 'include'));
39
+ console.log('[prepare_core] Done.');