dependency-grouper 0.1.3 → 0.2.1
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/README.md +188 -182
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -84,210 +84,221 @@ Run `dependency-grouper generate` and it merges the groups with automatic sortin
|
|
|
84
84
|
}
|
|
85
85
|
```
|
|
86
86
|
|
|
87
|
-
##
|
|
87
|
+
## Quick Start
|
|
88
88
|
|
|
89
|
-
###
|
|
89
|
+
### Option A: Bootstrap from Existing Monorepo (Recommended)
|
|
90
90
|
|
|
91
|
-
If you already have a monorepo with dependencies
|
|
91
|
+
If you already have a monorepo with dependencies:
|
|
92
92
|
|
|
93
93
|
```bash
|
|
94
|
-
# 1. Install
|
|
94
|
+
# 1. Install at workspace root
|
|
95
95
|
pnpm add -D dependency-grouper
|
|
96
96
|
|
|
97
|
-
# 2. Add depGroups to
|
|
98
|
-
#
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
97
|
+
# 2. Add "depGroups": [] to ALL package.json files
|
|
98
|
+
# ├── package.json → "depGroups": []
|
|
99
|
+
# └── packages/
|
|
100
|
+
# ├── app1/package.json → "depGroups": []
|
|
101
|
+
# └── app2/package.json → "depGroups": []
|
|
102
102
|
|
|
103
|
-
# 3.
|
|
104
|
-
npx dependency-grouper
|
|
105
|
-
|
|
103
|
+
# 3. Run generate (does everything automatically):
|
|
104
|
+
npx dependency-grouper generate
|
|
105
|
+
```
|
|
106
106
|
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
**What just happened:**
|
|
108
|
+
1. ✅ Created `.dep-groups.yaml` with all your dependencies organized
|
|
109
|
+
2. ✅ Root dependencies → `root` group, sub-packages → `common` group
|
|
110
|
+
3. ✅ Auto-populated `depGroups: ["root"]` or `["common"]` in all files
|
|
111
|
+
4. ✅ Injected `preinstall` script for automatic sync
|
|
109
112
|
|
|
110
|
-
|
|
113
|
+
**Next steps:**
|
|
114
|
+
```bash
|
|
115
|
+
# 4. Review and reorganize the generated .dep-groups.yaml
|
|
116
|
+
code .dep-groups.yaml
|
|
117
|
+
|
|
118
|
+
# Example: Split 'common' into specific groups:
|
|
119
|
+
# groups:
|
|
120
|
+
# common:
|
|
121
|
+
# dependencies:
|
|
122
|
+
# axios: ^1.6.0 → Move to 'shared-utils'
|
|
123
|
+
# react: ← New group
|
|
124
|
+
# dependencies:
|
|
125
|
+
# react: ^18.2.0
|
|
126
|
+
# react-dom: ^18.2.0
|
|
127
|
+
|
|
128
|
+
# 5. Update package.json files to use new groups:
|
|
129
|
+
# packages/react-app/package.json:
|
|
130
|
+
# "depGroups": ["react", "shared-utils"]
|
|
131
|
+
|
|
132
|
+
# 6. Regenerate to apply changes:
|
|
111
133
|
npx dependency-grouper generate
|
|
112
|
-
```
|
|
113
134
|
|
|
114
|
-
|
|
135
|
+
# 7. Install and you're done!
|
|
136
|
+
pnpm install
|
|
137
|
+
```
|
|
115
138
|
|
|
116
|
-
###
|
|
139
|
+
### Option B: Fresh Setup (New Monorepo)
|
|
117
140
|
|
|
118
|
-
|
|
119
|
-
# pnpm
|
|
120
|
-
pnpm add -D dependency-grouper
|
|
141
|
+
Starting from scratch:
|
|
121
142
|
|
|
122
|
-
|
|
123
|
-
npm install -D dependency-grouper
|
|
143
|
+
#### 1. Install
|
|
124
144
|
|
|
125
|
-
|
|
126
|
-
|
|
145
|
+
```bash
|
|
146
|
+
pnpm add -D dependency-grouper # or npm / yarn
|
|
127
147
|
```
|
|
128
148
|
|
|
129
|
-
|
|
149
|
+
#### 2. Create `.dep-groups.yaml` at workspace root
|
|
150
|
+
|
|
151
|
+
Define your dependency groups:
|
|
130
152
|
|
|
131
153
|
```yaml
|
|
132
154
|
groups:
|
|
133
|
-
|
|
155
|
+
react:
|
|
134
156
|
dependencies:
|
|
135
|
-
|
|
136
|
-
|
|
157
|
+
react: ^18.2.0
|
|
158
|
+
react-dom: ^18.2.0
|
|
159
|
+
devDependencies:
|
|
160
|
+
'@types/react': ^18.2.0
|
|
137
161
|
|
|
138
|
-
|
|
162
|
+
shared-utils:
|
|
139
163
|
dependencies:
|
|
140
|
-
|
|
164
|
+
axios: ^1.6.0
|
|
165
|
+
lodash: ^4.17.21
|
|
141
166
|
```
|
|
142
167
|
|
|
143
|
-
|
|
168
|
+
#### 3. Add `depGroups` to package.json files
|
|
144
169
|
|
|
145
170
|
```json
|
|
146
171
|
{
|
|
147
|
-
"name": "my-
|
|
148
|
-
"depGroups": ["
|
|
149
|
-
"dependencies": {
|
|
150
|
-
"my-custom-dep": "^1.0.0"
|
|
151
|
-
}
|
|
172
|
+
"name": "my-react-app",
|
|
173
|
+
"depGroups": ["react", "shared-utils"]
|
|
152
174
|
}
|
|
153
175
|
```
|
|
154
176
|
|
|
155
|
-
|
|
177
|
+
#### 4. Generate and install
|
|
156
178
|
|
|
157
179
|
```bash
|
|
158
|
-
dependency-grouper generate
|
|
180
|
+
npx dependency-grouper generate
|
|
181
|
+
pnpm install
|
|
159
182
|
```
|
|
160
183
|
|
|
161
|
-
|
|
184
|
+
---
|
|
162
185
|
|
|
163
|
-
|
|
164
|
-
# pnpm
|
|
165
|
-
pnpm install
|
|
186
|
+
## How It Works
|
|
166
187
|
|
|
167
|
-
|
|
168
|
-
|
|
188
|
+
1. **You define groups** in `.dep-groups.yaml` (shared dependency sets)
|
|
189
|
+
2. **You reference groups** in `package.json` with `"depGroups": ["group1", "group2"]`
|
|
190
|
+
3. **Run `generate`** → Merges group dependencies into each package.json
|
|
191
|
+
4. **Run package manager** → Installs the merged dependencies
|
|
169
192
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
193
|
+
**Bidirectional sync:**
|
|
194
|
+
- `.dep-groups.yaml` → `package.json` (group deps added to packages)
|
|
195
|
+
- `package.json` → `.dep-groups.yaml` (new deps captured in groups)
|
|
196
|
+
|
|
197
|
+
---
|
|
173
198
|
|
|
174
|
-
##
|
|
199
|
+
## CLI Commands
|
|
200
|
+
|
|
201
|
+
### `dependency-grouper generate`
|
|
175
202
|
|
|
176
|
-
|
|
203
|
+
**Full bidirectional sync** - Use this most of the time.
|
|
177
204
|
|
|
178
|
-
|
|
205
|
+
1. Scans all package.json files
|
|
206
|
+
2. Updates `.dep-groups.yaml` with new dependencies
|
|
207
|
+
3. Merges group dependencies back into package.json files
|
|
208
|
+
4. Auto-populates empty `depGroups: []` arrays
|
|
209
|
+
5. Injects preinstall scripts
|
|
210
|
+
|
|
211
|
+
**When to use:**
|
|
212
|
+
- Initial setup
|
|
213
|
+
- After reorganizing groups
|
|
214
|
+
- In preinstall hooks
|
|
215
|
+
|
|
216
|
+
### `dependency-grouper sync`
|
|
217
|
+
|
|
218
|
+
**One-way sync only** - package.json → `.dep-groups.yaml`
|
|
219
|
+
|
|
220
|
+
Captures new dependencies without modifying package.json files. Faster, good for postinstall hooks.
|
|
221
|
+
|
|
222
|
+
**When to use:**
|
|
223
|
+
- Postinstall hooks to capture new deps
|
|
224
|
+
- CI/CD to keep `.dep-groups.yaml` updated
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## Automation (Optional)
|
|
229
|
+
|
|
230
|
+
Add hooks to your **workspace root** `package.json` for automatic syncing:
|
|
231
|
+
|
|
232
|
+
### Preinstall Hook (Recommended)
|
|
233
|
+
|
|
234
|
+
Runs `generate` before every `pnpm install`:
|
|
179
235
|
|
|
180
236
|
```json
|
|
181
237
|
{
|
|
182
|
-
"name": "my-monorepo",
|
|
183
|
-
"private": true,
|
|
184
238
|
"scripts": {
|
|
185
239
|
"preinstall": "dependency-grouper generate"
|
|
186
240
|
}
|
|
187
241
|
}
|
|
188
242
|
```
|
|
189
243
|
|
|
190
|
-
|
|
244
|
+
✅ Always in sync
|
|
245
|
+
✅ Team members don't need to remember
|
|
246
|
+
❌ Slower if you install frequently
|
|
247
|
+
|
|
248
|
+
### Postinstall Hook (Lightweight Alternative)
|
|
191
249
|
|
|
192
|
-
|
|
250
|
+
Runs `sync` after install to capture new deps:
|
|
193
251
|
|
|
194
252
|
```json
|
|
195
253
|
{
|
|
196
|
-
"name": "my-monorepo",
|
|
197
|
-
"private": true,
|
|
198
254
|
"scripts": {
|
|
199
255
|
"postinstall": "dependency-grouper sync"
|
|
200
256
|
}
|
|
201
257
|
}
|
|
202
258
|
```
|
|
203
259
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
3. postinstall hook automatically runs `dependency-grouper sync`
|
|
208
|
-
4. axios is captured in .dep-groups.yaml
|
|
209
|
-
5. Next time you/anyone runs `generate`, all packages in that group get axios
|
|
260
|
+
✅ Faster
|
|
261
|
+
✅ Captures new deps automatically
|
|
262
|
+
⚠️ Need to run `generate` manually to share with other packages
|
|
210
263
|
|
|
211
|
-
|
|
264
|
+
---
|
|
212
265
|
|
|
213
|
-
|
|
266
|
+
---
|
|
214
267
|
|
|
215
|
-
|
|
216
|
-
|------|---------|------|--------------------------|---------------------|
|
|
217
|
-
| preinstall | `generate` | Before install | ✅ | ✅ |
|
|
218
|
-
| postinstall | `sync` | After install | ✅ | ❌ |
|
|
268
|
+
## Advanced Usage
|
|
219
269
|
|
|
220
|
-
|
|
221
|
-
- ✅ No manual `generate` command needed
|
|
222
|
-
- ✅ Dependencies always up-to-date before install
|
|
223
|
-
- ✅ Team members don't need to remember to run generate
|
|
270
|
+
### Multiple Groups per Package
|
|
224
271
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
272
|
+
```json
|
|
273
|
+
{
|
|
274
|
+
"name": "my-app",
|
|
275
|
+
"depGroups": ["react", "shared-utils", "testing"]
|
|
276
|
+
}
|
|
277
|
+
```
|
|
229
278
|
|
|
230
|
-
|
|
279
|
+
All groups are merged together into the package.
|
|
231
280
|
|
|
232
|
-
|
|
281
|
+
### Root vs Sub-Packages
|
|
233
282
|
|
|
234
|
-
|
|
235
|
-
-
|
|
236
|
-
-
|
|
237
|
-
- ✅ **Automatic sorting** - package.json keys and dependencies alphabetically sorted
|
|
238
|
-
- ✅ **Type-safe** - Full TypeScript support with type definitions
|
|
239
|
-
- ✅ **Smart merging** - Preserves project-specific dependencies
|
|
240
|
-
- ✅ **Version control** - Update versions in one place
|
|
241
|
-
- ✅ **CI/CD ready** - Optional preinstall hook for automation
|
|
242
|
-
- ✅ **Nested projects** - Recursively finds all package.json files in monorepo
|
|
243
|
-
- ✅ **Bootstrap from existing** - Generate .dep-groups.yaml from current dependencies
|
|
283
|
+
When bootstrapping with empty `depGroups: []`:
|
|
284
|
+
- **Root** package.json → Auto-assigned `["root"]` group
|
|
285
|
+
- **Sub-packages** → Auto-assigned `["common"]` group
|
|
244
286
|
|
|
245
|
-
|
|
287
|
+
This separates monorepo tooling (root) from app dependencies (common).
|
|
246
288
|
|
|
247
|
-
###
|
|
289
|
+
### Nested Monorepos
|
|
248
290
|
|
|
249
|
-
|
|
250
|
-
groups:
|
|
251
|
-
groupName:
|
|
252
|
-
dependencies:
|
|
253
|
-
package-name: version
|
|
254
|
-
devDependencies:
|
|
255
|
-
dev-package: version
|
|
291
|
+
Recursively finds ALL package.json files:
|
|
256
292
|
```
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
{
|
|
262
|
-
"depGroups": ["groupName1", "groupName2"]
|
|
263
|
-
}
|
|
293
|
+
monorepo/
|
|
294
|
+
├── packages/app1/package.json ← Found
|
|
295
|
+
├── packages/nested/deep/app2/package.json ← Found
|
|
296
|
+
└── apps/frontend/utils/package.json ← Found
|
|
264
297
|
```
|
|
265
298
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
4. Finds all package.json files with `depGroups` field
|
|
270
|
-
5. Merges specified groups with existing dependencies
|
|
271
|
-
6. Sorts dependencies alphabetically within each section
|
|
272
|
-
7. Formats entire package.json with proper key ordering
|
|
273
|
-
8. Writes updated package.json files
|
|
274
|
-
9. Preserves project-specific dependencies
|
|
275
|
-
|
|
276
|
-
**Supports nested structures:**
|
|
277
|
-
```
|
|
278
|
-
monorepo/
|
|
279
|
-
├── .dep-groups.yaml
|
|
280
|
-
├── packages/
|
|
281
|
-
│ ├── app1/package.json
|
|
282
|
-
│ └── nested/
|
|
283
|
-
│ └── deep/
|
|
284
|
-
│ └── app2/package.json ← Found!
|
|
285
|
-
└── apps/
|
|
286
|
-
└── frontend/
|
|
287
|
-
└── utils/package.json ← Found!
|
|
288
|
-
``` key ordering
|
|
289
|
-
7. Writes updated package.json files
|
|
290
|
-
8. Preserves project-specific dependencies
|
|
299
|
+
Skips `node_modules/` and `.git/` automatically.
|
|
300
|
+
|
|
301
|
+
---
|
|
291
302
|
|
|
292
303
|
## Development
|
|
293
304
|
|
|
@@ -336,75 +347,70 @@ dependency-grouper sync
|
|
|
336
347
|
- Faster, useful for postinstall hooks to capture new dependencies
|
|
337
348
|
- Good for CI/CD to keep .dep-groups.yaml in sync
|
|
338
349
|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
### Initial Setup
|
|
350
|
+
---
|
|
342
351
|
|
|
343
|
-
|
|
344
|
-
# 1. Install at workspace root
|
|
345
|
-
pnpm add -D dependency-grouper
|
|
352
|
+
## Example Workflows
|
|
346
353
|
|
|
347
|
-
|
|
348
|
-
cat > .dep-groups.yaml << EOF
|
|
349
|
-
groups:
|
|
350
|
-
react:
|
|
351
|
-
dependencies:
|
|
352
|
-
react: "^18.2.0"
|
|
353
|
-
react-dom: "^18.2.0"
|
|
354
|
-
EOF
|
|
354
|
+
### Sharing a New Dependency
|
|
355
355
|
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
"version": "1.0.0",
|
|
361
|
-
"depGroups": ["react"]
|
|
362
|
-
}
|
|
363
|
-
EOF
|
|
356
|
+
```bash
|
|
357
|
+
# 1. Add to one package
|
|
358
|
+
cd packages/app1
|
|
359
|
+
pnpm add axios
|
|
364
360
|
|
|
365
|
-
#
|
|
366
|
-
|
|
361
|
+
# 2. If you have postinstall hook, it's already in .dep-groups.yaml!
|
|
362
|
+
# Otherwise, run manually:
|
|
363
|
+
npx dependency-grouper sync
|
|
367
364
|
|
|
368
|
-
#
|
|
369
|
-
|
|
365
|
+
# 3. Share with other packages:
|
|
366
|
+
npx dependency-grouper generate
|
|
370
367
|
```
|
|
371
368
|
|
|
372
|
-
###
|
|
369
|
+
### Reorganizing Groups
|
|
373
370
|
|
|
374
371
|
```bash
|
|
375
|
-
#
|
|
376
|
-
|
|
377
|
-
pnpm add axios
|
|
378
|
-
# ↑ postinstall hook runs automatically!
|
|
379
|
-
# → dependency-grouper sync
|
|
380
|
-
# → axios is now in .dep-groups.yaml
|
|
372
|
+
# 1. Edit .dep-groups.yaml - split 'common' into specific groups
|
|
373
|
+
code .dep-groups.yaml
|
|
381
374
|
|
|
382
|
-
#
|
|
383
|
-
|
|
384
|
-
# → All packages with same depGroups get axios
|
|
375
|
+
# 2. Update package.json files with new group names
|
|
376
|
+
# "depGroups": ["react", "api-utils"] # was ["common"]
|
|
385
377
|
|
|
386
|
-
#
|
|
387
|
-
|
|
388
|
-
# → generate runs automatically before install
|
|
378
|
+
# 3. Regenerate
|
|
379
|
+
npx dependency-grouper generate
|
|
389
380
|
```
|
|
390
381
|
|
|
391
|
-
|
|
382
|
+
### Updating a Dependency Version
|
|
383
|
+
|
|
392
384
|
```bash
|
|
393
|
-
|
|
394
|
-
#
|
|
395
|
-
# 2. pnpm installs lodash
|
|
396
|
-
# 3. postinstall runs: dependency-grouper sync
|
|
397
|
-
# 4. lodash automatically added to .dep-groups.yaml
|
|
398
|
-
# 5. Next time anyone runs generate, they get lodash too
|
|
399
|
-
```
|
|
385
|
+
# Just update the version in .dep-groups.yaml:
|
|
386
|
+
# react: ^18.2.0 → react: ^18.3.0
|
|
400
387
|
|
|
401
|
-
|
|
388
|
+
npx dependency-grouper generate
|
|
389
|
+
pnpm install
|
|
390
|
+
# All packages using the 'react' group get v18.3.0!
|
|
391
|
+
```
|
|
402
392
|
|
|
403
|
-
|
|
404
|
-
1. Detect the new package in your package.json
|
|
405
|
-
2. Automatically add it to all groups listed in `depGroups`
|
|
406
|
-
3. Sync it across all packages using those groups
|
|
393
|
+
---
|
|
407
394
|
|
|
408
395
|
## License
|
|
409
396
|
|
|
410
397
|
MIT
|
|
398
|
+
|
|
399
|
+
## Troubleshooting
|
|
400
|
+
|
|
401
|
+
**Q: `.dep-groups.yaml` wasn't created**
|
|
402
|
+
A: Add `"depGroups": []` to at least one package.json, then run `generate`.
|
|
403
|
+
|
|
404
|
+
**Q: Dependencies not merging**
|
|
405
|
+
A: Check that:
|
|
406
|
+
- `depGroups` field exists in package.json
|
|
407
|
+
- Group names match exactly (case-sensitive)
|
|
408
|
+
- You ran `generate` (not just `sync`)
|
|
409
|
+
|
|
410
|
+
**Q: How to use AI to organize dependencies?**
|
|
411
|
+
A:
|
|
412
|
+
1. Run `npx dependency-grouper generate` → creates `.dep-groups.yaml`
|
|
413
|
+
2. Give `.dep-groups.yaml` to AI: *"Reorganize into logical groups (react, testing, build-tools, etc.)"*
|
|
414
|
+
3. AI rewrites with better organization
|
|
415
|
+
4. Update `depGroups` in package.json files to use new group names
|
|
416
|
+
5. Run `npx dependency-grouper generate` to apply
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEjD,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAkCjF;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CASxD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAwB9D;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAkGtD;AAED,wBAAgB,cAAc,CAC5B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,GACnB,WAAW,CAoDb;AAED,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CA0E3D"}
|
package/dist/index.js
CHANGED
|
@@ -262,11 +262,32 @@ function generateDependencies(rootDir) {
|
|
|
262
262
|
for (const pkgPath of packageFiles) {
|
|
263
263
|
const content = fs.readFileSync(pkgPath, 'utf-8');
|
|
264
264
|
const packageJson = JSON.parse(content);
|
|
265
|
+
// Check if this is the root package.json
|
|
266
|
+
const isRootPkg = path.dirname(pkgPath) === workspaceRoot;
|
|
267
|
+
// Auto-populate depGroups if it's an empty array
|
|
268
|
+
if (packageJson.depGroups !== undefined && Array.isArray(packageJson.depGroups) && packageJson.depGroups.length === 0) {
|
|
269
|
+
packageJson.depGroups = [isRootPkg ? 'root' : 'common'];
|
|
270
|
+
console.log(`Auto-populated depGroups for ${packageJson.name || path.basename(path.dirname(pkgPath))} → [${packageJson.depGroups.join(', ')}]`);
|
|
271
|
+
}
|
|
272
|
+
// Skip packages without depGroups
|
|
265
273
|
if (!packageJson.depGroups || packageJson.depGroups.length === 0) {
|
|
266
274
|
continue;
|
|
267
275
|
}
|
|
268
|
-
console.log(`Processing ${packageJson.name}...`);
|
|
276
|
+
console.log(`Processing ${packageJson.name || path.basename(path.dirname(pkgPath))}...`);
|
|
269
277
|
const merged = mergeDepGroups(packageJson, depGroups);
|
|
278
|
+
// Auto-inject preinstall script if missing or append to existing
|
|
279
|
+
const generateCmd = 'dependency-grouper generate';
|
|
280
|
+
if (!merged.scripts) {
|
|
281
|
+
merged.scripts = {};
|
|
282
|
+
}
|
|
283
|
+
if (!merged.scripts.preinstall) {
|
|
284
|
+
merged.scripts.preinstall = generateCmd;
|
|
285
|
+
console.log(` + Added preinstall script`);
|
|
286
|
+
}
|
|
287
|
+
else if (!merged.scripts.preinstall.includes('dependency-grouper')) {
|
|
288
|
+
merged.scripts.preinstall = `${merged.scripts.preinstall} && ${generateCmd}`;
|
|
289
|
+
console.log(` + Appended to existing preinstall script`);
|
|
290
|
+
}
|
|
270
291
|
// Sort package.json keys using sort-package-json
|
|
271
292
|
const sorted = (0, sort_package_json_1.default)(merged);
|
|
272
293
|
// Write back to file
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,8CAkCC;AAED,sCASC;AAED,oDAwBC;AAED,4CAkGC;AAED,wCAuDC;AAED,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
interface DependencySet {
|
|
2
2
|
dependencies?: Record<string, string>;
|
|
3
3
|
devDependencies?: Record<string, string>;
|
|
4
4
|
}
|
|
@@ -12,4 +12,5 @@ export interface PackageJson {
|
|
|
12
12
|
devDependencies?: Record<string, string>;
|
|
13
13
|
[key: string]: any;
|
|
14
14
|
}
|
|
15
|
+
export {};
|
|
15
16
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,UAAU,aAAa;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB"}
|