@alextheman/utility 5.1.0 → 5.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.
@@ -26,10 +26,10 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  }) : target, mod));
27
27
 
28
28
  //#endregion
29
- let execa = require("execa");
30
29
  let zod = require("zod");
31
30
  zod = __toESM(zod);
32
31
  require("libsodium-wrappers");
32
+ let execa = require("execa");
33
33
  let node_fs_promises = require("node:fs/promises");
34
34
  let node_path = require("node:path");
35
35
  node_path = __toESM(node_path);
@@ -605,6 +605,25 @@ const VersionType = {
605
605
  PATCH: "patch"
606
606
  };
607
607
 
608
+ //#endregion
609
+ //#region src/internal/getDependenciesFromGroup.ts
610
+ /**
611
+ * Get the dependencies from a given dependency group in `package.json`.
612
+ *
613
+ * @category Miscellaneous
614
+ *
615
+ * @param packageInfo - The data coming from `package.json`.
616
+ * @param dependencyGroup - The group to get dependency information about (can be `dependencies` or `devDependencies`).
617
+ *
618
+ * @returns A record consisting of the package names and version ranges from the given dependency group.
619
+ */
620
+ function getDependenciesFromGroup(packageInfo, dependencyGroup) {
621
+ return {
622
+ dependencies: parseZodSchema(zod.default.record(zod.default.string(), zod.default.string()), packageInfo.dependencies ?? {}),
623
+ devDependencies: parseZodSchema(zod.default.record(zod.default.string(), zod.default.string()), packageInfo.devDependencies ?? {})
624
+ }[dependencyGroup];
625
+ }
626
+
608
627
  //#endregion
609
628
  //#region src/internal/getExpectedTgzName.ts
610
629
  async function getExpectedTgzName(packagePath, packageManager) {
@@ -683,6 +702,8 @@ async function setupPackageEndToEnd(temporaryPath, packageManager, moduleType, o
683
702
  if (packageInfo === null) throw packageJsonNotFoundError(temporaryPath);
684
703
  packageInfo.type = moduleType === ModuleType.TYPESCRIPT ? ModuleType.ES_MODULES : moduleType;
685
704
  await (0, node_fs_promises.writeFile)(node_path.default.join(temporaryPath, "package.json"), JSON.stringify(packageInfo, null, 2));
705
+ if (options?.additionalDependencies?.dependencies?.length) await runCommandInTempDirectory`${packageManager} install ${options.additionalDependencies.dependencies.join(" ")}`;
706
+ if (options?.additionalDependencies?.devDependencies?.length) await runCommandInTempDirectory`${packageManager} install --save-dev ${options.additionalDependencies.devDependencies.join(" ")}`;
686
707
  await runCommandInTempDirectory`${packageManager} install ${dependencyGroup === "devDependencies" ? "--save-dev" : "--save-prod"} ${node_path.default.join(temporaryPath, tgzFileName)}`;
687
708
  return runCommandInTempDirectory;
688
709
  }
@@ -691,6 +712,7 @@ async function setupPackageEndToEnd(temporaryPath, packageManager, moduleType, o
691
712
  exports.DependencyGroup = DependencyGroup;
692
713
  exports.ModuleType = ModuleType;
693
714
  exports.PackageManager = PackageManager;
715
+ exports.getDependenciesFromGroup = getDependenciesFromGroup;
694
716
  exports.getExpectedTgzName = getExpectedTgzName;
695
717
  exports.getPackageJsonContents = getPackageJsonContents;
696
718
  exports.getPackageJsonPath = getPackageJsonPath;
@@ -1,5 +1,18 @@
1
1
  import { ExecaMethod } from "execa";
2
2
 
3
+ //#region src/internal/getDependenciesFromGroup.d.ts
4
+ /**
5
+ * Get the dependencies from a given dependency group in `package.json`.
6
+ *
7
+ * @category Miscellaneous
8
+ *
9
+ * @param packageInfo - The data coming from `package.json`.
10
+ * @param dependencyGroup - The group to get dependency information about (can be `dependencies` or `devDependencies`).
11
+ *
12
+ * @returns A record consisting of the package names and version ranges from the given dependency group.
13
+ */
14
+ declare function getDependenciesFromGroup(packageInfo: Record<string, unknown>, dependencyGroup: DependencyGroup): Record<string, string>;
15
+ //#endregion
3
16
  //#region src/root/types/RecordKey.d.ts
4
17
  /**
5
18
  * Represents the native Record's possible key type.
@@ -99,9 +112,10 @@ declare function parseJsonFromStdout(stdout: string): Record<string, unknown>;
99
112
  //#region src/internal/setupPackageEndToEnd.d.ts
100
113
  interface SetupPackageEndToEndOptions {
101
114
  dependencyGroup?: DependencyGroup;
115
+ additionalDependencies?: Record<DependencyGroup, string[]>;
102
116
  }
103
117
  declare function setupPackageEndToEnd(temporaryPath: string, packageManager: PackageManager, moduleType: ModuleType, options?: SetupPackageEndToEndOptions): Promise<ExecaMethod<{
104
118
  cwd: string;
105
119
  }>>;
106
120
  //#endregion
107
- export { DependencyGroup, type IsTypeArgumentString, ModuleType, PackageManager, getExpectedTgzName, getPackageJsonContents, getPackageJsonPath, packageJsonNotFoundError, parseJsonFromStdout, sayHello, setupPackageEndToEnd };
121
+ export { DependencyGroup, type IsTypeArgumentString, ModuleType, PackageManager, getDependenciesFromGroup, getExpectedTgzName, getPackageJsonContents, getPackageJsonPath, packageJsonNotFoundError, parseJsonFromStdout, sayHello, setupPackageEndToEnd };
@@ -1,6 +1,19 @@
1
- import { ExecaMethod } from "execa";
2
1
  import z from "zod";
2
+ import { ExecaMethod } from "execa";
3
3
 
4
+ //#region src/internal/getDependenciesFromGroup.d.ts
5
+ /**
6
+ * Get the dependencies from a given dependency group in `package.json`.
7
+ *
8
+ * @category Miscellaneous
9
+ *
10
+ * @param packageInfo - The data coming from `package.json`.
11
+ * @param dependencyGroup - The group to get dependency information about (can be `dependencies` or `devDependencies`).
12
+ *
13
+ * @returns A record consisting of the package names and version ranges from the given dependency group.
14
+ */
15
+ declare function getDependenciesFromGroup(packageInfo: Record<string, unknown>, dependencyGroup: DependencyGroup): Record<string, string>;
16
+ //#endregion
4
17
  //#region src/root/types/RecordKey.d.ts
5
18
  /**
6
19
  * Represents the native Record's possible key type.
@@ -100,9 +113,10 @@ declare function parseJsonFromStdout(stdout: string): Record<string, unknown>;
100
113
  //#region src/internal/setupPackageEndToEnd.d.ts
101
114
  interface SetupPackageEndToEndOptions {
102
115
  dependencyGroup?: DependencyGroup;
116
+ additionalDependencies?: Record<DependencyGroup, string[]>;
103
117
  }
104
118
  declare function setupPackageEndToEnd(temporaryPath: string, packageManager: PackageManager, moduleType: ModuleType, options?: SetupPackageEndToEndOptions): Promise<ExecaMethod<{
105
119
  cwd: string;
106
120
  }>>;
107
121
  //#endregion
108
- export { DependencyGroup, type IsTypeArgumentString, ModuleType, PackageManager, getExpectedTgzName, getPackageJsonContents, getPackageJsonPath, packageJsonNotFoundError, parseJsonFromStdout, sayHello, setupPackageEndToEnd };
122
+ export { DependencyGroup, type IsTypeArgumentString, ModuleType, PackageManager, getDependenciesFromGroup, getExpectedTgzName, getPackageJsonContents, getPackageJsonPath, packageJsonNotFoundError, parseJsonFromStdout, sayHello, setupPackageEndToEnd };
@@ -1,6 +1,6 @@
1
- import { execa } from "execa";
2
1
  import z from "zod";
3
2
  import "libsodium-wrappers";
3
+ import { execa } from "execa";
4
4
  import { readFile, writeFile } from "node:fs/promises";
5
5
  import path from "node:path";
6
6
 
@@ -575,6 +575,25 @@ const VersionType = {
575
575
  PATCH: "patch"
576
576
  };
577
577
 
578
+ //#endregion
579
+ //#region src/internal/getDependenciesFromGroup.ts
580
+ /**
581
+ * Get the dependencies from a given dependency group in `package.json`.
582
+ *
583
+ * @category Miscellaneous
584
+ *
585
+ * @param packageInfo - The data coming from `package.json`.
586
+ * @param dependencyGroup - The group to get dependency information about (can be `dependencies` or `devDependencies`).
587
+ *
588
+ * @returns A record consisting of the package names and version ranges from the given dependency group.
589
+ */
590
+ function getDependenciesFromGroup(packageInfo, dependencyGroup) {
591
+ return {
592
+ dependencies: parseZodSchema(z.record(z.string(), z.string()), packageInfo.dependencies ?? {}),
593
+ devDependencies: parseZodSchema(z.record(z.string(), z.string()), packageInfo.devDependencies ?? {})
594
+ }[dependencyGroup];
595
+ }
596
+
578
597
  //#endregion
579
598
  //#region src/internal/getExpectedTgzName.ts
580
599
  async function getExpectedTgzName(packagePath, packageManager) {
@@ -653,9 +672,11 @@ async function setupPackageEndToEnd(temporaryPath, packageManager, moduleType, o
653
672
  if (packageInfo === null) throw packageJsonNotFoundError(temporaryPath);
654
673
  packageInfo.type = moduleType === ModuleType.TYPESCRIPT ? ModuleType.ES_MODULES : moduleType;
655
674
  await writeFile(path.join(temporaryPath, "package.json"), JSON.stringify(packageInfo, null, 2));
675
+ if (options?.additionalDependencies?.dependencies?.length) await runCommandInTempDirectory`${packageManager} install ${options.additionalDependencies.dependencies.join(" ")}`;
676
+ if (options?.additionalDependencies?.devDependencies?.length) await runCommandInTempDirectory`${packageManager} install --save-dev ${options.additionalDependencies.devDependencies.join(" ")}`;
656
677
  await runCommandInTempDirectory`${packageManager} install ${dependencyGroup === "devDependencies" ? "--save-dev" : "--save-prod"} ${path.join(temporaryPath, tgzFileName)}`;
657
678
  return runCommandInTempDirectory;
658
679
  }
659
680
 
660
681
  //#endregion
661
- export { DependencyGroup, ModuleType, PackageManager, getExpectedTgzName, getPackageJsonContents, getPackageJsonPath, packageJsonNotFoundError, parseJsonFromStdout, sayHello_default as sayHello, setupPackageEndToEnd };
682
+ export { DependencyGroup, ModuleType, PackageManager, getDependenciesFromGroup, getExpectedTgzName, getPackageJsonContents, getPackageJsonPath, packageJsonNotFoundError, parseJsonFromStdout, sayHello_default as sayHello, setupPackageEndToEnd };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alextheman/utility",
3
- "version": "5.1.0",
3
+ "version": "5.1.2",
4
4
  "description": "Helpful utility functions.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -36,7 +36,7 @@
36
36
  "zod": "^4.3.6"
37
37
  },
38
38
  "devDependencies": {
39
- "@alextheman/eslint-plugin": "^5.7.0",
39
+ "@alextheman/eslint-plugin": "^5.7.1",
40
40
  "@types/node": "^25.2.3",
41
41
  "alex-c-line": "^1.26.2",
42
42
  "dotenv-cli": "^11.0.0",