slim-package-json 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.
package/dist/index.cjs CHANGED
@@ -59,7 +59,7 @@ function addUsedDependencies(fileContent, rootPackageJson, childPackageJson) {
59
59
  for (const [key, val] of Object.entries(
60
60
  rootPackageJson.dependencies ?? {}
61
61
  )) {
62
- if (fileContent.includes(`from '${key}`) || fileContent.includes(`from "${key}`) || fileContent.includes(`require('${key}`) || fileContent.includes(`require("${key})`)) {
62
+ if (fileContent.includes(`from '${key}`) || fileContent.includes(`from "${key}`) || fileContent.includes(`require('${key}`) || fileContent.includes(`require("${key}`)) {
63
63
  if (!childPackageJson.dependencies) {
64
64
  childPackageJson.dependencies = {};
65
65
  }
@@ -78,4 +78,5 @@ function addUsedDependencies(fileContent, rootPackageJson, childPackageJson) {
78
78
  }
79
79
  }
80
80
 
81
+ exports.addUsedDependencies = addUsedDependencies;
81
82
  exports.generateSlimPackageJson = generateSlimPackageJson;
package/dist/index.d.cts CHANGED
@@ -22,6 +22,7 @@ type GeneratePackageJsonArgs = {
22
22
  dir: string;
23
23
  };
24
24
  declare function generateSlimPackageJson(args: GeneratePackageJsonArgs): Promise<void>;
25
+ declare function addUsedDependencies(fileContent: string, rootPackageJson: PackageJson, childPackageJson: PackageJson): void;
25
26
 
26
- export { generateSlimPackageJson };
27
+ export { addUsedDependencies, generateSlimPackageJson };
27
28
  export type { GeneratePackageJsonArgs, PackageJson };
package/dist/index.d.mts CHANGED
@@ -22,6 +22,7 @@ type GeneratePackageJsonArgs = {
22
22
  dir: string;
23
23
  };
24
24
  declare function generateSlimPackageJson(args: GeneratePackageJsonArgs): Promise<void>;
25
+ declare function addUsedDependencies(fileContent: string, rootPackageJson: PackageJson, childPackageJson: PackageJson): void;
25
26
 
26
- export { generateSlimPackageJson };
27
+ export { addUsedDependencies, generateSlimPackageJson };
27
28
  export type { GeneratePackageJsonArgs, PackageJson };
package/dist/index.d.ts CHANGED
@@ -22,6 +22,7 @@ type GeneratePackageJsonArgs = {
22
22
  dir: string;
23
23
  };
24
24
  declare function generateSlimPackageJson(args: GeneratePackageJsonArgs): Promise<void>;
25
+ declare function addUsedDependencies(fileContent: string, rootPackageJson: PackageJson, childPackageJson: PackageJson): void;
25
26
 
26
- export { generateSlimPackageJson };
27
+ export { addUsedDependencies, generateSlimPackageJson };
27
28
  export type { GeneratePackageJsonArgs, PackageJson };
package/dist/index.mjs CHANGED
@@ -53,7 +53,7 @@ function addUsedDependencies(fileContent, rootPackageJson, childPackageJson) {
53
53
  for (const [key, val] of Object.entries(
54
54
  rootPackageJson.dependencies ?? {}
55
55
  )) {
56
- if (fileContent.includes(`from '${key}`) || fileContent.includes(`from "${key}`) || fileContent.includes(`require('${key}`) || fileContent.includes(`require("${key})`)) {
56
+ if (fileContent.includes(`from '${key}`) || fileContent.includes(`from "${key}`) || fileContent.includes(`require('${key}`) || fileContent.includes(`require("${key}`)) {
57
57
  if (!childPackageJson.dependencies) {
58
58
  childPackageJson.dependencies = {};
59
59
  }
@@ -72,4 +72,4 @@ function addUsedDependencies(fileContent, rootPackageJson, childPackageJson) {
72
72
  }
73
73
  }
74
74
 
75
- export { generateSlimPackageJson };
75
+ export { addUsedDependencies, generateSlimPackageJson };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "slim-package-json",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "A cli tool for creating generating a package.json for containers that only includes the dependencies that were actually used",
5
5
  "main": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",
@@ -25,7 +25,8 @@
25
25
  "devDependencies": {
26
26
  "@types/node": "^25.6.0",
27
27
  "prettier": "^3.8.2",
28
- "unbuild": "^3.6.1"
28
+ "unbuild": "^3.6.1",
29
+ "vitest": "^4.1.4"
29
30
  },
30
31
  "scripts": {
31
32
  "build": "unbuild"
@@ -0,0 +1,45 @@
1
+ import { describe, expect, test } from 'vitest';
2
+ import { addUsedDependencies, PackageJson } from '.';
3
+
4
+ describe('addUsedDependencies', () => {
5
+ test('esm imports', () => {
6
+ const filecontents = [
7
+ `import {foo} from 'foo';`,
8
+ `import { bar } from "bar";`,
9
+ ];
10
+ const packageJson: PackageJson = {
11
+ dependencies: {
12
+ foo: '1.0.0',
13
+ bar: '1.1.1',
14
+ baz: '2.68.0-beta2',
15
+ },
16
+ };
17
+ const projectPackageJson: PackageJson = {};
18
+ for (const content of filecontents) {
19
+ addUsedDependencies(content, packageJson, projectPackageJson);
20
+ }
21
+ expect(projectPackageJson).toStrictEqual({
22
+ dependencies: { foo: '1.0.0', bar: '1.1.1' },
23
+ });
24
+ });
25
+ test('cjs require()', () => {
26
+ const filecontents = [
27
+ `const foo = require('foo');`,
28
+ `const bar = require("bar");`,
29
+ ];
30
+ const packageJson: PackageJson = {
31
+ dependencies: {
32
+ foo: '1.0.0',
33
+ bar: '1.1.1',
34
+ baz: '2.68.0-beta2',
35
+ },
36
+ };
37
+ const projectPackageJson: PackageJson = {};
38
+ for (const content of filecontents) {
39
+ addUsedDependencies(content, packageJson, projectPackageJson);
40
+ }
41
+ expect(projectPackageJson).toStrictEqual({
42
+ dependencies: { foo: '1.0.0', bar: '1.1.1' },
43
+ });
44
+ });
45
+ });
package/src/index.ts CHANGED
@@ -77,7 +77,7 @@ export async function generateSlimPackageJson(args: GeneratePackageJsonArgs) {
77
77
  console.info(`Successfully wrote package.json to ${outputFile}`);
78
78
  }
79
79
 
80
- function addUsedDependencies(
80
+ export function addUsedDependencies(
81
81
  fileContent: string,
82
82
  rootPackageJson: PackageJson,
83
83
  childPackageJson: PackageJson,
@@ -89,7 +89,7 @@ function addUsedDependencies(
89
89
  fileContent.includes(`from '${key}`) ||
90
90
  fileContent.includes(`from "${key}`) ||
91
91
  fileContent.includes(`require('${key}`) ||
92
- fileContent.includes(`require("${key})`)
92
+ fileContent.includes(`require("${key}`)
93
93
  ) {
94
94
  if (!childPackageJson.dependencies) {
95
95
  childPackageJson.dependencies = {};