purus 0.4.1 → 0.6.0

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.
@@ -11,12 +11,19 @@ let entry = null;
11
11
  let output = null;
12
12
  let noHeader = false;
13
13
  let toStdout = false;
14
+ let strict = null; // null = use config or default (true)
14
15
 
15
16
  for (let i = 0; i < args.length; i++) {
16
17
  if (args[i] === "--no-header") {
17
18
  noHeader = true;
18
19
  } else if (args[i] === "--stdout") {
19
20
  toStdout = true;
21
+ } else if (args[i] === "--strict") {
22
+ if (i + 1 < args.length && (args[i + 1] === "true" || args[i + 1] === "false")) {
23
+ strict = args[++i] === "true";
24
+ } else {
25
+ strict = true;
26
+ }
20
27
  } else if (args[i] === "--entry" || args[i] === "-e") {
21
28
  entry = args[++i];
22
29
  } else if (args[i] === "--output" || args[i] === "-o") {
@@ -30,7 +37,8 @@ if (entry && fs.existsSync(entry) && fs.statSync(entry).isFile() && /\.(c|m)?pur
30
37
  // Single file - handle directly via compile API
31
38
  const source = fs.readFileSync(entry, "utf8");
32
39
  const useHeader = !noHeader;
33
- const js = compile(source, { header: useHeader });
40
+ const useStrict = strict !== null ? strict : true;
41
+ const js = compile(source, { header: useHeader, strict: useStrict });
34
42
 
35
43
  if (toStdout) {
36
44
  process.stdout.write(js);
@@ -52,11 +60,13 @@ if (entry && fs.existsSync(entry) && fs.statSync(entry).isFile() && /\.(c|m)?pur
52
60
  let entryDir;
53
61
  let outputDir;
54
62
  let useHeader;
63
+ let useStrict;
55
64
 
56
65
  if (entry) {
57
66
  entryDir = path.resolve(entry);
58
67
  outputDir = output ? path.resolve(output) : path.resolve("dist");
59
68
  useHeader = !noHeader;
69
+ useStrict = strict !== null ? strict : true;
60
70
 
61
71
  const result = loadConfig();
62
72
  if (result) {
@@ -67,6 +77,9 @@ if (entry && fs.existsSync(entry) && fs.statSync(entry).isFile() && /\.(c|m)?pur
67
77
  );
68
78
  }
69
79
  useHeader = result.config.header !== false && !noHeader;
80
+ if (strict === null) {
81
+ useStrict = result.config.strict !== false;
82
+ }
70
83
  }
71
84
  } else {
72
85
  const result = loadConfig();
@@ -88,6 +101,7 @@ if (entry && fs.existsSync(entry) && fs.statSync(entry).isFile() && /\.(c|m)?pur
88
101
  ? path.resolve(output)
89
102
  : path.resolve(configDir, config.output || "dist");
90
103
  useHeader = config.header !== false && !noHeader;
104
+ useStrict = strict !== null ? strict : config.strict !== false;
91
105
  }
92
106
 
93
107
  if (!fs.existsSync(entryDir)) {
@@ -116,7 +130,7 @@ if (entry && fs.existsSync(entry) && fs.statSync(entry).isFile() && /\.(c|m)?pur
116
130
  let count = 0;
117
131
  for (const f of files) {
118
132
  const source = fs.readFileSync(f, "utf8");
119
- const js = compile(source, { header: useHeader });
133
+ const js = compile(source, { header: useHeader, strict: useStrict });
120
134
  let outputPath;
121
135
 
122
136
  if (stat.isFile()) {