@nmakarov/cli-toolkit 0.18.0 → 0.21.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.
package/dist/init.js CHANGED
@@ -1916,7 +1916,7 @@ var Params = class _Params {
1916
1916
  throw new ParamError(`default value "${defValObj.value}" type mismatch`);
1917
1917
  }
1918
1918
  type = type.default(defValObj.value);
1919
- } else if (str.match(/required/)) {
1919
+ } else if (str.match(/\s*required\s*/)) {
1920
1920
  type = type.required();
1921
1921
  } else {
1922
1922
  type = type.optional();
@@ -1992,6 +1992,8 @@ var Params = class _Params {
1992
1992
  /**
1993
1993
  * Get all parameters from definitions (main script).
1994
1994
  * Same as getAllForModule("script", defs). Processes left-to-right for cross-parameter references.
1995
+ * Libraries should use {@link getAllForModule} with an explicit module name (or {@link runWithModule}
1996
+ * around {@link get}) so --showUsedParams groups usage correctly.
1995
1997
  */
1996
1998
  getAll(defs) {
1997
1999
  return this.getAllForModule("script", defs);
@@ -2028,6 +2030,19 @@ var Params = class _Params {
2028
2030
  this._currentModule = prev;
2029
2031
  }
2030
2032
  }
2033
+ /**
2034
+ * Run a callback with {@link _currentModule} set so single {@link get} calls are tracked
2035
+ * under the same module (for --showUsedParams / getFiguredByModule).
2036
+ */
2037
+ runWithModule(moduleName, fn) {
2038
+ const prev = this._currentModule;
2039
+ this._currentModule = moduleName;
2040
+ try {
2041
+ return fn();
2042
+ } finally {
2043
+ this._currentModule = prev;
2044
+ }
2045
+ }
2031
2046
  /**
2032
2047
  * Infer module name from call stack: first caller outside params/index gives path like .../src/<moduleName>/...
2033
2048
  */