as-soon 0.0.6 → 0.0.7

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.
package/dist/cli.cjs CHANGED
@@ -91,7 +91,8 @@ function _execute() {
91
91
  return __async(this, null, function* () {
92
92
  try {
93
93
  (0, import_child_process.execFileSync)(commandToUse, commandArgs, { stdio: ["inherit", "inherit", "inherit"] });
94
- } catch (e) {
94
+ } catch (err) {
95
+ console.error("failed to execue", err);
95
96
  }
96
97
  });
97
98
  }
@@ -137,15 +138,15 @@ function main() {
137
138
  return __async(this, null, function* () {
138
139
  const execute = (0, import_lodash.debounce)(_execute, 50);
139
140
  if (options["w"]) {
140
- console.log(`listening on: ${options["w"].join(", ")}`);
141
- for (const p of options["w"]) {
142
- const absolute_path = import_node_path.default.normalize(import_node_path.default.join(process.cwd(), p));
143
- listen(absolute_path, execute);
141
+ const folders = options["w"].map((p) => import_node_path.default.normalize(import_node_path.default.join(process.cwd(), p)));
142
+ console.log(`listening on: ${folders.join(", ")}`);
143
+ for (const folder of folders) {
144
+ listen(folder, execute);
144
145
  }
145
146
  } else {
146
- console.log(`listening on current folder`);
147
- const absolute_path = import_node_path.default.normalize(process.cwd());
148
- listen(absolute_path, execute);
147
+ const folder = import_node_path.default.normalize(process.cwd());
148
+ console.log(`listening on current folder: ${folder}`);
149
+ listen(folder, execute);
149
150
  }
150
151
  execute();
151
152
  });
package/dist/cli.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport {execFileSync} from 'child_process';\nimport watcher, {AsyncSubscription} from '@parcel/watcher';\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport {debounce} from 'lodash';\nimport {loadEnv} from 'ldenv';\n\nconst args = process.argv.slice(2);\n\nfunction error(msg: string) {\n\tconsole.error(msg);\n\tprocess.exit(1);\n}\n\nlet deploymentContext = 'localhost';\nlet argToConsume;\nlet command: string | undefined;\nlet commandArgs: string[] | undefined;\nconst options: {[key: string]: string[]} = {};\nfor (let i = 0; i < args.length; i++) {\n\tconst arg = args[i];\n\tif (arg.startsWith('--')) {\n\t\targToConsume = arg.substring(2);\n\t} else if (arg.startsWith('-')) {\n\t\targToConsume = arg.substring(1);\n\t} else {\n\t\tif (argToConsume) {\n\t\t\tif (options[argToConsume]) {\n\t\t\t\toptions[argToConsume].push(arg);\n\t\t\t} else {\n\t\t\t\toptions[argToConsume] = [arg];\n\t\t\t}\n\t\t\targToConsume = undefined;\n\t\t} else {\n\t\t\tcommand = arg;\n\t\t\tcommandArgs = args.slice(i + 1);\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\nif (!command) {\n\terror(`please specify a command`);\n}\nconst commandToUse = command!;\n\nconsole.log(`\"${commandToUse} ${commandArgs?.join(' ') || ''}\"`);\n\nloadEnv({mode: deploymentContext});\n\nasync function _execute() {\n\ttry {\n\t\texecFileSync(commandToUse, commandArgs, {stdio: ['inherit', 'inherit', 'inherit']});\n\t} catch {}\n}\n\n// let counter = 0;\nasync function subscribe_target(absolute_path: string, execute: () => void) {\n\t// const c = ++counter;\n\tconst p = path.relative(process.cwd(), absolute_path);\n\tconst subscription = await watcher.subscribe(absolute_path, (err, events) => {\n\t\t// console.log(`Files changed under ${p} (${c})`);\n\t\tconsole.log(`Files changed under ${p}`);\n\t\tfor (const event of events) {\n\t\t\tif (event.type === 'delete' && event.path === absolute_path) {\n\t\t\t\tsubscription.unsubscribe();\n\t\t\t\tlisten(absolute_path, execute);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\texecute();\n\t});\n}\n\nasync function listen(absolute_path: string, execute: () => void) {\n\tif (fs.existsSync(absolute_path)) {\n\t\tsubscribe_target(absolute_path, execute);\n\t} else {\n\t\t// console.log(`${absolute_path} do not exist yet, listening on parent`)\n\t\tlet tmp_subscription: AsyncSubscription | undefined = await watcher.subscribe(\n\t\t\tpath.dirname(absolute_path),\n\t\t\t(err, events) => {\n\t\t\t\tfor (const event of events) {\n\t\t\t\t\tif (event.type === 'create' && path.normalize(event.path) === absolute_path) {\n\t\t\t\t\t\t// console.log(`${absolute_path} just got created, listening for it...`);\n\t\t\t\t\t\ttmp_subscription?.unsubscribe();\n\t\t\t\t\t\ttmp_subscription = undefined;\n\t\t\t\t\t\t// wrap in a timeout to ensure @parcel/watcher hook on the correct inode?\n\t\t\t\t\t\tsetTimeout((v) => {\n\t\t\t\t\t\t\tsubscribe_target(absolute_path, execute);\n\t\t\t\t\t\t}, 500);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n}\n\nasync function main() {\n\tconst execute = debounce(_execute, 50);\n\tif (options['w']) {\n\t\tconsole.log(`listening on: ${options['w'].join(', ')}`);\n\t\tfor (const p of options['w']) {\n\t\t\tconst absolute_path = path.normalize(path.join(process.cwd(), p));\n\t\t\tlisten(absolute_path, execute);\n\t\t}\n\t} else {\n\t\tconsole.log(`listening on current folder`);\n\t\tconst absolute_path = path.normalize(process.cwd());\n\t\tlisten(absolute_path, execute);\n\t}\n\n\texecute();\n}\nmain();\n"],"mappings":"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","names":["path","watcher","fs"]}
1
+ {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport {execFileSync} from 'child_process';\nimport watcher, {AsyncSubscription} from '@parcel/watcher';\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport {debounce} from 'lodash';\nimport {loadEnv} from 'ldenv';\n\nconst args = process.argv.slice(2);\n\nfunction error(msg: string) {\n\tconsole.error(msg);\n\tprocess.exit(1);\n}\n\nlet deploymentContext = 'localhost';\nlet argToConsume;\nlet command: string | undefined;\nlet commandArgs: string[] | undefined;\nconst options: {[key: string]: string[]} = {};\nfor (let i = 0; i < args.length; i++) {\n\tconst arg = args[i];\n\tif (arg.startsWith('--')) {\n\t\targToConsume = arg.substring(2);\n\t} else if (arg.startsWith('-')) {\n\t\targToConsume = arg.substring(1);\n\t} else {\n\t\tif (argToConsume) {\n\t\t\tif (options[argToConsume]) {\n\t\t\t\toptions[argToConsume].push(arg);\n\t\t\t} else {\n\t\t\t\toptions[argToConsume] = [arg];\n\t\t\t}\n\t\t\targToConsume = undefined;\n\t\t} else {\n\t\t\tcommand = arg;\n\t\t\tcommandArgs = args.slice(i + 1);\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\nif (!command) {\n\terror(`please specify a command`);\n}\nconst commandToUse = command!;\n\nconsole.log(`\"${commandToUse} ${commandArgs?.join(' ') || ''}\"`);\n\nloadEnv({mode: deploymentContext});\n\nasync function _execute() {\n\ttry {\n\t\texecFileSync(commandToUse, commandArgs, {stdio: ['inherit', 'inherit', 'inherit']});\n\t} catch (err) {\n\t\tconsole.error('failed to execue', err);\n\t}\n}\n\n// let counter = 0;\nasync function subscribe_target(absolute_path: string, execute: () => void) {\n\t// const c = ++counter;\n\tconst p = path.relative(process.cwd(), absolute_path);\n\tconst subscription = await watcher.subscribe(absolute_path, (err, events) => {\n\t\t// console.log(`Files changed under ${p} (${c})`);\n\t\tconsole.log(`Files changed under ${p}`);\n\t\tfor (const event of events) {\n\t\t\tif (event.type === 'delete' && event.path === absolute_path) {\n\t\t\t\tsubscription.unsubscribe();\n\t\t\t\tlisten(absolute_path, execute);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\texecute();\n\t});\n}\n\nasync function listen(absolute_path: string, execute: () => void) {\n\tif (fs.existsSync(absolute_path)) {\n\t\tsubscribe_target(absolute_path, execute);\n\t} else {\n\t\t// console.log(`${absolute_path} do not exist yet, listening on parent`)\n\t\tlet tmp_subscription: AsyncSubscription | undefined = await watcher.subscribe(\n\t\t\tpath.dirname(absolute_path),\n\t\t\t(err, events) => {\n\t\t\t\tfor (const event of events) {\n\t\t\t\t\tif (event.type === 'create' && path.normalize(event.path) === absolute_path) {\n\t\t\t\t\t\t// console.log(`${absolute_path} just got created, listening for it...`);\n\t\t\t\t\t\ttmp_subscription?.unsubscribe();\n\t\t\t\t\t\ttmp_subscription = undefined;\n\t\t\t\t\t\t// wrap in a timeout to ensure @parcel/watcher hook on the correct inode?\n\t\t\t\t\t\tsetTimeout((v) => {\n\t\t\t\t\t\t\tsubscribe_target(absolute_path, execute);\n\t\t\t\t\t\t}, 500);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n}\n\nasync function main() {\n\tconst execute = debounce(_execute, 50);\n\tif (options['w']) {\n\t\tconst folders = options['w'].map((p) => path.normalize(path.join(process.cwd(), p)));\n\t\tconsole.log(`listening on: ${folders.join(', ')}`);\n\t\tfor (const folder of folders) {\n\t\t\tlisten(folder, execute);\n\t\t}\n\t} else {\n\t\tconst folder = path.normalize(process.cwd());\n\t\tconsole.log(`listening on current folder: ${folder}`);\n\t\tlisten(folder, execute);\n\t}\n\n\texecute();\n}\nmain();\n"],"mappings":"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","names":["path","watcher","fs"]}
package/dist/cli.js CHANGED
@@ -51,7 +51,8 @@ function _execute() {
51
51
  return __async(this, null, function* () {
52
52
  try {
53
53
  execFileSync(commandToUse, commandArgs, { stdio: ["inherit", "inherit", "inherit"] });
54
- } catch (e) {
54
+ } catch (err) {
55
+ console.error("failed to execue", err);
55
56
  }
56
57
  });
57
58
  }
@@ -97,15 +98,15 @@ function main() {
97
98
  return __async(this, null, function* () {
98
99
  const execute = debounce(_execute, 50);
99
100
  if (options["w"]) {
100
- console.log(`listening on: ${options["w"].join(", ")}`);
101
- for (const p of options["w"]) {
102
- const absolute_path = path.normalize(path.join(process.cwd(), p));
103
- listen(absolute_path, execute);
101
+ const folders = options["w"].map((p) => path.normalize(path.join(process.cwd(), p)));
102
+ console.log(`listening on: ${folders.join(", ")}`);
103
+ for (const folder of folders) {
104
+ listen(folder, execute);
104
105
  }
105
106
  } else {
106
- console.log(`listening on current folder`);
107
- const absolute_path = path.normalize(process.cwd());
108
- listen(absolute_path, execute);
107
+ const folder = path.normalize(process.cwd());
108
+ console.log(`listening on current folder: ${folder}`);
109
+ listen(folder, execute);
109
110
  }
110
111
  execute();
111
112
  });
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport {execFileSync} from 'child_process';\nimport watcher, {AsyncSubscription} from '@parcel/watcher';\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport {debounce} from 'lodash';\nimport {loadEnv} from 'ldenv';\n\nconst args = process.argv.slice(2);\n\nfunction error(msg: string) {\n\tconsole.error(msg);\n\tprocess.exit(1);\n}\n\nlet deploymentContext = 'localhost';\nlet argToConsume;\nlet command: string | undefined;\nlet commandArgs: string[] | undefined;\nconst options: {[key: string]: string[]} = {};\nfor (let i = 0; i < args.length; i++) {\n\tconst arg = args[i];\n\tif (arg.startsWith('--')) {\n\t\targToConsume = arg.substring(2);\n\t} else if (arg.startsWith('-')) {\n\t\targToConsume = arg.substring(1);\n\t} else {\n\t\tif (argToConsume) {\n\t\t\tif (options[argToConsume]) {\n\t\t\t\toptions[argToConsume].push(arg);\n\t\t\t} else {\n\t\t\t\toptions[argToConsume] = [arg];\n\t\t\t}\n\t\t\targToConsume = undefined;\n\t\t} else {\n\t\t\tcommand = arg;\n\t\t\tcommandArgs = args.slice(i + 1);\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\nif (!command) {\n\terror(`please specify a command`);\n}\nconst commandToUse = command!;\n\nconsole.log(`\"${commandToUse} ${commandArgs?.join(' ') || ''}\"`);\n\nloadEnv({mode: deploymentContext});\n\nasync function _execute() {\n\ttry {\n\t\texecFileSync(commandToUse, commandArgs, {stdio: ['inherit', 'inherit', 'inherit']});\n\t} catch {}\n}\n\n// let counter = 0;\nasync function subscribe_target(absolute_path: string, execute: () => void) {\n\t// const c = ++counter;\n\tconst p = path.relative(process.cwd(), absolute_path);\n\tconst subscription = await watcher.subscribe(absolute_path, (err, events) => {\n\t\t// console.log(`Files changed under ${p} (${c})`);\n\t\tconsole.log(`Files changed under ${p}`);\n\t\tfor (const event of events) {\n\t\t\tif (event.type === 'delete' && event.path === absolute_path) {\n\t\t\t\tsubscription.unsubscribe();\n\t\t\t\tlisten(absolute_path, execute);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\texecute();\n\t});\n}\n\nasync function listen(absolute_path: string, execute: () => void) {\n\tif (fs.existsSync(absolute_path)) {\n\t\tsubscribe_target(absolute_path, execute);\n\t} else {\n\t\t// console.log(`${absolute_path} do not exist yet, listening on parent`)\n\t\tlet tmp_subscription: AsyncSubscription | undefined = await watcher.subscribe(\n\t\t\tpath.dirname(absolute_path),\n\t\t\t(err, events) => {\n\t\t\t\tfor (const event of events) {\n\t\t\t\t\tif (event.type === 'create' && path.normalize(event.path) === absolute_path) {\n\t\t\t\t\t\t// console.log(`${absolute_path} just got created, listening for it...`);\n\t\t\t\t\t\ttmp_subscription?.unsubscribe();\n\t\t\t\t\t\ttmp_subscription = undefined;\n\t\t\t\t\t\t// wrap in a timeout to ensure @parcel/watcher hook on the correct inode?\n\t\t\t\t\t\tsetTimeout((v) => {\n\t\t\t\t\t\t\tsubscribe_target(absolute_path, execute);\n\t\t\t\t\t\t}, 500);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n}\n\nasync function main() {\n\tconst execute = debounce(_execute, 50);\n\tif (options['w']) {\n\t\tconsole.log(`listening on: ${options['w'].join(', ')}`);\n\t\tfor (const p of options['w']) {\n\t\t\tconst absolute_path = path.normalize(path.join(process.cwd(), p));\n\t\t\tlisten(absolute_path, execute);\n\t\t}\n\t} else {\n\t\tconsole.log(`listening on current folder`);\n\t\tconst absolute_path = path.normalize(process.cwd());\n\t\tlisten(absolute_path, execute);\n\t}\n\n\texecute();\n}\nmain();\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport {execFileSync} from 'child_process';\nimport watcher, {AsyncSubscription} from '@parcel/watcher';\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport {debounce} from 'lodash';\nimport {loadEnv} from 'ldenv';\n\nconst args = process.argv.slice(2);\n\nfunction error(msg: string) {\n\tconsole.error(msg);\n\tprocess.exit(1);\n}\n\nlet deploymentContext = 'localhost';\nlet argToConsume;\nlet command: string | undefined;\nlet commandArgs: string[] | undefined;\nconst options: {[key: string]: string[]} = {};\nfor (let i = 0; i < args.length; i++) {\n\tconst arg = args[i];\n\tif (arg.startsWith('--')) {\n\t\targToConsume = arg.substring(2);\n\t} else if (arg.startsWith('-')) {\n\t\targToConsume = arg.substring(1);\n\t} else {\n\t\tif (argToConsume) {\n\t\t\tif (options[argToConsume]) {\n\t\t\t\toptions[argToConsume].push(arg);\n\t\t\t} else {\n\t\t\t\toptions[argToConsume] = [arg];\n\t\t\t}\n\t\t\targToConsume = undefined;\n\t\t} else {\n\t\t\tcommand = arg;\n\t\t\tcommandArgs = args.slice(i + 1);\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\nif (!command) {\n\terror(`please specify a command`);\n}\nconst commandToUse = command!;\n\nconsole.log(`\"${commandToUse} ${commandArgs?.join(' ') || ''}\"`);\n\nloadEnv({mode: deploymentContext});\n\nasync function _execute() {\n\ttry {\n\t\texecFileSync(commandToUse, commandArgs, {stdio: ['inherit', 'inherit', 'inherit']});\n\t} catch (err) {\n\t\tconsole.error('failed to execue', err);\n\t}\n}\n\n// let counter = 0;\nasync function subscribe_target(absolute_path: string, execute: () => void) {\n\t// const c = ++counter;\n\tconst p = path.relative(process.cwd(), absolute_path);\n\tconst subscription = await watcher.subscribe(absolute_path, (err, events) => {\n\t\t// console.log(`Files changed under ${p} (${c})`);\n\t\tconsole.log(`Files changed under ${p}`);\n\t\tfor (const event of events) {\n\t\t\tif (event.type === 'delete' && event.path === absolute_path) {\n\t\t\t\tsubscription.unsubscribe();\n\t\t\t\tlisten(absolute_path, execute);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\texecute();\n\t});\n}\n\nasync function listen(absolute_path: string, execute: () => void) {\n\tif (fs.existsSync(absolute_path)) {\n\t\tsubscribe_target(absolute_path, execute);\n\t} else {\n\t\t// console.log(`${absolute_path} do not exist yet, listening on parent`)\n\t\tlet tmp_subscription: AsyncSubscription | undefined = await watcher.subscribe(\n\t\t\tpath.dirname(absolute_path),\n\t\t\t(err, events) => {\n\t\t\t\tfor (const event of events) {\n\t\t\t\t\tif (event.type === 'create' && path.normalize(event.path) === absolute_path) {\n\t\t\t\t\t\t// console.log(`${absolute_path} just got created, listening for it...`);\n\t\t\t\t\t\ttmp_subscription?.unsubscribe();\n\t\t\t\t\t\ttmp_subscription = undefined;\n\t\t\t\t\t\t// wrap in a timeout to ensure @parcel/watcher hook on the correct inode?\n\t\t\t\t\t\tsetTimeout((v) => {\n\t\t\t\t\t\t\tsubscribe_target(absolute_path, execute);\n\t\t\t\t\t\t}, 500);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n}\n\nasync function main() {\n\tconst execute = debounce(_execute, 50);\n\tif (options['w']) {\n\t\tconst folders = options['w'].map((p) => path.normalize(path.join(process.cwd(), p)));\n\t\tconsole.log(`listening on: ${folders.join(', ')}`);\n\t\tfor (const folder of folders) {\n\t\t\tlisten(folder, execute);\n\t\t}\n\t} else {\n\t\tconst folder = path.normalize(process.cwd());\n\t\tconsole.log(`listening on current folder: ${folder}`);\n\t\tlisten(folder, execute);\n\t}\n\n\texecute();\n}\nmain();\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "as-soon",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "description": "watch and execute",
5
5
  "publishConfig": {
6
6
  "access": "public"
package/src/cli.ts CHANGED
@@ -52,7 +52,9 @@ loadEnv({mode: deploymentContext});
52
52
  async function _execute() {
53
53
  try {
54
54
  execFileSync(commandToUse, commandArgs, {stdio: ['inherit', 'inherit', 'inherit']});
55
- } catch {}
55
+ } catch (err) {
56
+ console.error('failed to execue', err);
57
+ }
56
58
  }
57
59
 
58
60
  // let counter = 0;
@@ -100,15 +102,15 @@ async function listen(absolute_path: string, execute: () => void) {
100
102
  async function main() {
101
103
  const execute = debounce(_execute, 50);
102
104
  if (options['w']) {
103
- console.log(`listening on: ${options['w'].join(', ')}`);
104
- for (const p of options['w']) {
105
- const absolute_path = path.normalize(path.join(process.cwd(), p));
106
- listen(absolute_path, execute);
105
+ const folders = options['w'].map((p) => path.normalize(path.join(process.cwd(), p)));
106
+ console.log(`listening on: ${folders.join(', ')}`);
107
+ for (const folder of folders) {
108
+ listen(folder, execute);
107
109
  }
108
110
  } else {
109
- console.log(`listening on current folder`);
110
- const absolute_path = path.normalize(process.cwd());
111
- listen(absolute_path, execute);
111
+ const folder = path.normalize(process.cwd());
112
+ console.log(`listening on current folder: ${folder}`);
113
+ listen(folder, execute);
112
114
  }
113
115
 
114
116
  execute();