@langri-sha/projen-project 0.9.0 → 0.11.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.
@@ -3,8 +3,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
3
3
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
- var _Project_instances, _Project_configureBeachball, _Project_configureCodeowners, _Project_configureEditorConfig, _Project_configureHusky, _Project_configureJestConfig, _Project_configureLicense, _Project_configureLintSynthesized, _Project_configureNpmIgnore, _Project_configurePackage, _Project_configureProjenrc, _Project_configureRenovate, _Project_configureTypeScript, _Project_createPnpmWorkspaces;
7
- import { Project as BaseProject, IgnoreFile, YamlFile, javascript, } from 'projen';
6
+ var _Project_instances, _Project_configureBabel, _Project_configureBeachball, _Project_configureCodeowners, _Project_configureEditorConfig, _Project_configureESLint, _Project_configureHusky, _Project_configureJestConfig, _Project_configureLicense, _Project_configureLintStaged, _Project_configureLintSynthesized, _Project_configureNpmIgnore, _Project_configurePackage, _Project_configurePnpmWorkspace, _Project_configurePrettier, _Project_configureProjenrc, _Project_configureRenovate, _Project_configureSWC, _Project_configureTypeScript, _Project_populateTypeScriptProjectReferencesFromDependencies;
7
+ import * as path from 'node:path';
8
+ import { Project as BaseProject, IgnoreFile, javascript, } from 'projen';
8
9
  import * as R from 'ramda';
9
10
  import { LintSynthesized, } from '@langri-sha/projen-lint-synthesized';
10
11
  import { EditorConfig, } from '@langri-sha/projen-editorconfig';
@@ -14,8 +15,14 @@ import { Husky } from '@langri-sha/projen-husky';
14
15
  import { TypeScriptConfig, } from '@langri-sha/projen-typescript-config';
15
16
  import { Beachball } from '@langri-sha/projen-beachball';
16
17
  import { License } from '@langri-sha/projen-license';
17
- import { ProjenrcFile } from './lib/index.js';
18
+ import { NodePackage, ProjenrcFile } from './lib/index.js';
18
19
  import { JestConfig } from '@langri-sha/projen-jest-config';
20
+ import { Prettier } from '@langri-sha/projen-prettier';
21
+ import { ESLint } from '@langri-sha/projen-eslint';
22
+ import { LintStaged } from '@langri-sha/projen-lint-staged';
23
+ import { Babel } from '@langri-sha/projen-babel';
24
+ import { PnpmWorkspace, } from '@langri-sha/projen-pnpm-workspace';
25
+ import { SWCConfig } from '@langri-sha/projen-swcrc';
19
26
  export * from '@langri-sha/projen-typescript-config';
20
27
  export class Project extends BaseProject {
21
28
  constructor(options) {
@@ -32,60 +39,79 @@ export class Project extends BaseProject {
32
39
  this.tasks.removeTask('post-compile');
33
40
  this.tasks.removeTask('pre-compile');
34
41
  this.tasks.removeTask('watch');
35
- __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureProjenrc).call(this);
36
42
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configurePackage).call(this, options);
37
43
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureTypeScript).call(this, options);
44
+ __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureSWC).call(this, options);
45
+ __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureProjenrc).call(this);
38
46
  if (this.parent) {
39
47
  this.tasks.tryFind('default')?.reset();
40
48
  this.tasks.tryFind('install')?.reset();
41
49
  this.tasks.tryFind('install:ci')?.reset();
42
50
  }
51
+ __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureESLint).call(this, options);
52
+ __classPrivateFieldGet(this, _Project_instances, "m", _Project_configurePrettier).call(this, options);
53
+ __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureBabel).call(this, options);
43
54
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureBeachball).call(this, options);
44
55
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureCodeowners).call(this, options);
45
56
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureEditorConfig).call(this, options);
46
57
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureHusky).call(this, options);
47
58
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureJestConfig).call(this, options);
48
59
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureLicense).call(this, options);
60
+ __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureLintStaged).call(this, options);
49
61
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureLintSynthesized).call(this, options);
50
62
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureNpmIgnore).call(this, options);
63
+ __classPrivateFieldGet(this, _Project_instances, "m", _Project_configurePnpmWorkspace).call(this, options);
51
64
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureRenovate).call(this, options);
52
- __classPrivateFieldGet(this, _Project_instances, "m", _Project_createPnpmWorkspaces).call(this, options);
65
+ }
66
+ preSynthesize() {
67
+ super.preSynthesize();
68
+ __classPrivateFieldGet(this, _Project_instances, "m", _Project_populateTypeScriptProjectReferencesFromDependencies).call(this);
69
+ }
70
+ get allSubprojects() {
71
+ return this.root.node
72
+ .findAll(0)
73
+ .filter((node) => node !== this.root)
74
+ .filter((node) => node instanceof BaseProject);
75
+ }
76
+ get allSubprojectsKind() {
77
+ return this.allSubprojects.filter((project) => project instanceof Project);
53
78
  }
54
79
  /**
55
80
  * Add a subproject.
56
81
  */
57
- addSubproject(projectOptions) {
58
- return new Project({
82
+ addSubproject(projectOptions, ...compose) {
83
+ const project = new Project({
59
84
  parent: this,
60
85
  ...projectOptions,
61
86
  });
87
+ for (const callback of compose) {
88
+ callback(project);
89
+ }
90
+ return project;
62
91
  }
63
92
  /**
64
93
  * Find a project by it's name, e.g. `@acme/some`.
65
94
  */
66
95
  findSubproject(name) {
67
- const subprojects = [];
68
- const addSubproject = (project) => {
69
- for (const subproject of project.subprojects) {
70
- subprojects.push(subproject);
71
- if (subproject.subprojects.length) {
72
- addSubproject(subproject);
73
- }
74
- }
75
- };
76
- addSubproject(this.root);
77
- const result = subprojects.find((subproject) => subproject.name === name);
78
- if (result instanceof Project) {
79
- return result;
80
- }
81
- throw new Error(`Cannot find subproject ${name}`);
96
+ return this.allSubprojectsKind.find((project) => project.name === name);
82
97
  }
83
98
  }
84
- _Project_instances = new WeakSet(), _Project_configureBeachball = function _Project_configureBeachball({ beachballOptions }) {
85
- if (!beachballOptions || this.parent) {
99
+ _Project_instances = new WeakSet(), _Project_configureBabel = function _Project_configureBabel({ babel }) {
100
+ if (!babel) {
101
+ return;
102
+ }
103
+ const defaults = {
104
+ options: {
105
+ presets: ['@langri-sha/babel-preset'],
106
+ },
107
+ };
108
+ this.babel = new Babel(this, deepMerge(defaults, babel));
109
+ this.typeScriptConfig?.addFile(this.babel.path);
110
+ }, _Project_configureBeachball = function _Project_configureBeachball({ beachball }) {
111
+ if (!beachball || this.parent) {
86
112
  return;
87
113
  }
88
- const options = deepMerge(beachballOptions, {
114
+ const options = deepMerge(beachball, {
89
115
  branch: 'origin/main',
90
116
  gitTags: false,
91
117
  ignorePatterns: [
@@ -97,14 +123,15 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
97
123
  ],
98
124
  });
99
125
  this.beachball = new Beachball(this, options);
126
+ this.prettier?.ignore.addPatterns('CHANGELOG.md');
100
127
  this.package?.addDevDeps('beachball@2.43.1');
101
128
  this.typeScriptConfig?.addFile('beachball.config.js');
102
- }, _Project_configureCodeowners = function _Project_configureCodeowners({ codeownersOptions }) {
129
+ }, _Project_configureCodeowners = function _Project_configureCodeowners({ codeowners: codeownersOptions }) {
103
130
  if (!codeownersOptions) {
104
131
  return;
105
132
  }
106
133
  this.codeowners = new Codeowners(this, codeownersOptions);
107
- }, _Project_configureEditorConfig = function _Project_configureEditorConfig({ editorConfigOptions }) {
134
+ }, _Project_configureEditorConfig = function _Project_configureEditorConfig({ editorConfig: editorConfigOptions, }) {
108
135
  if (!editorConfigOptions || this.parent) {
109
136
  return;
110
137
  }
@@ -122,7 +149,22 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
122
149
  },
123
150
  };
124
151
  this.editorConfig = new EditorConfig(this, deepMerge(editorConfigOptions ?? {}, defaults));
125
- }, _Project_configureHusky = function _Project_configureHusky({ huskyOptions }) {
152
+ this.prettier?.ignore.addPatterns('!.editorconfig');
153
+ }, _Project_configureESLint = function _Project_configureESLint({ eslint: eslintOptions }) {
154
+ if (!eslintOptions) {
155
+ return;
156
+ }
157
+ const defaults = {
158
+ filename: 'eslint.config.mjs',
159
+ ignorePatterns: ['.*', 'dist/'],
160
+ extends: '@langri-sha/eslint-config',
161
+ };
162
+ this.eslint = new ESLint(this, deepMerge(defaults, eslintOptions));
163
+ if (this.projenrc?.filePath) {
164
+ this.eslint.ignorePatterns.push(`!${this.projenrc.filePath}`);
165
+ }
166
+ this.typeScriptConfig?.addFile(this.eslint.path);
167
+ }, _Project_configureHusky = function _Project_configureHusky({ husky: huskyOptions }) {
126
168
  if (!huskyOptions || this.parent) {
127
169
  return;
128
170
  }
@@ -130,11 +172,12 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
130
172
  this.package?.addDevDeps('husky@9.0.11');
131
173
  this.package?.setScript('prepare', 'husky');
132
174
  this.tryFindObjectFile('package.json')?.addDeletionOverride('pnpm');
133
- }, _Project_configureJestConfig = function _Project_configureJestConfig({ jestConfigOptions }) {
175
+ }, _Project_configureJestConfig = function _Project_configureJestConfig({ jestConfig: jestConfigOptions }) {
134
176
  if (!jestConfigOptions || this.parent) {
135
177
  return;
136
178
  }
137
179
  this.jestConfig = new JestConfig(this, jestConfigOptions);
180
+ this.typeScriptConfig?.addFile(this.jestConfig.path);
138
181
  }, _Project_configureLicense = function _Project_configureLicense({ package: pkg }) {
139
182
  if (!pkg?.license) {
140
183
  return;
@@ -153,23 +196,38 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
153
196
  .join(' '),
154
197
  year: pkg.copyrightYear ?? new Date().getFullYear().toString(),
155
198
  });
156
- }, _Project_configureLintSynthesized = function _Project_configureLintSynthesized({ lintSynthesizedOptions }) {
157
- new LintSynthesized(this, lintSynthesizedOptions ?? {
199
+ }, _Project_configureLintStaged = function _Project_configureLintStaged({ lintStaged: lintStagedOptions }) {
200
+ if (!lintStagedOptions) {
201
+ return;
202
+ }
203
+ const defaults = {
204
+ filename: 'lint-staged.config.mjs',
205
+ extends: '@langri-sha/lint-staged',
206
+ };
207
+ this.lintStaged = new LintStaged(this, deepMerge(defaults, lintStagedOptions));
208
+ this.typeScriptConfig?.addFile(this.lintStaged.path);
209
+ }, _Project_configureLintSynthesized = function _Project_configureLintSynthesized({ lintSynthesized }) {
210
+ if (!lintSynthesized) {
211
+ return;
212
+ }
213
+ const defaults = {
158
214
  'package.json': 'pnpx sort-package-json',
159
- '*.{js,jsx,ts,tsx}': 'pnpm eslint --fix',
215
+ '*.{js,cjs,mjs,jsx,ts,cts,mts,tsx}': 'pnpm eslint --fix',
160
216
  '*': 'pnpm prettier --write --ignore-unknown',
161
- });
162
- }, _Project_configureNpmIgnore = function _Project_configureNpmIgnore({ jestConfigOptions, npmIgnoreOptions }) {
163
- if (!npmIgnoreOptions) {
217
+ };
218
+ new LintSynthesized(this, deepMerge(defaults, lintSynthesized));
219
+ }, _Project_configureNpmIgnore = function _Project_configureNpmIgnore({ typeScriptConfig, jestConfig, npmIgnore, }) {
220
+ if (!npmIgnore) {
164
221
  return;
165
222
  }
166
223
  const defaults = {
167
224
  ignorePatterns: [
168
- ...(jestConfigOptions ? ['*.test.*', '.*', '__snapshots__/'] : []),
169
- 'tsconfig*.json',
225
+ '.*',
226
+ ...(jestConfig ? ['*.test.*', '__snapshots__/'] : []),
227
+ ...(typeScriptConfig ? ['tsconfig*.json'] : []),
170
228
  ],
171
229
  };
172
- this.npmIgnore = new IgnoreFile(this, '.npmignore', deepMerge(defaults, npmIgnoreOptions));
230
+ this.npmIgnore = new IgnoreFile(this, '.npmignore', deepMerge(defaults, npmIgnore));
173
231
  }, _Project_configurePackage = function _Project_configurePackage({ package: pkg }) {
174
232
  if (!pkg) {
175
233
  return;
@@ -177,21 +235,45 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
177
235
  const defaults = {
178
236
  entrypoint: 'src/index.ts',
179
237
  packageManager: javascript.NodePackageManager.PNPM,
180
- minNodeVersion: '20.12.0',
181
238
  };
182
- this.package = new javascript.NodePackage(this, deepMerge(defaults, pkg));
239
+ this.package = new NodePackage(this, deepMerge(defaults, pkg));
183
240
  if (!this.parent) {
184
241
  this.package.addDevDeps('@langri-sha/projen-project@*');
185
- this.package.addDevDeps('projen@0.81.15');
242
+ this.package.addDevDeps('projen@0.82.4');
186
243
  }
187
244
  this.package.removeScript('start');
188
245
  this.package.removeScript('test');
189
246
  if (this.parent) {
190
247
  this.package.removeScript('default');
191
248
  }
249
+ }, _Project_configurePnpmWorkspace = function _Project_configurePnpmWorkspace({ pnpmWorkspace }) {
250
+ if (!pnpmWorkspace) {
251
+ return;
252
+ }
253
+ this.pnpmWorkspace = new PnpmWorkspace(this, pnpmWorkspace);
254
+ }, _Project_configurePrettier = function _Project_configurePrettier({ prettier: prettierOptions }) {
255
+ if (!prettierOptions || this.parent) {
256
+ return;
257
+ }
258
+ const defaults = {
259
+ filename: 'prettier.config.mjs',
260
+ extends: '@langri-sha/prettier',
261
+ ignorePatterns: ['.*', 'dist/'],
262
+ };
263
+ this.prettier = new Prettier(this, deepMerge(defaults, prettierOptions));
264
+ if (this.projenrc?.filePath) {
265
+ this.prettier.ignore.include(this.projenrc.filePath);
266
+ }
267
+ if (this.package?.packageManager === javascript.NodePackageManager.PNPM) {
268
+ this.prettier.ignore.addPatterns('pnpm-lock.yaml');
269
+ }
270
+ this.typeScriptConfig?.addFile(this.prettier.path);
192
271
  }, _Project_configureProjenrc = function _Project_configureProjenrc() {
193
272
  this.projenrc = new ProjenrcFile(this, {});
194
- }, _Project_configureRenovate = function _Project_configureRenovate({ renovateOptions }) {
273
+ if (!this.parent) {
274
+ this.typeScriptConfig?.addFile(this.projenrc.filePath);
275
+ }
276
+ }, _Project_configureRenovate = function _Project_configureRenovate({ renovate: renovateOptions }) {
195
277
  if (!renovateOptions || this.parent) {
196
278
  return;
197
279
  }
@@ -200,7 +282,19 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
200
282
  extends: ['config:recommended'],
201
283
  labels: ['dependencies'],
202
284
  reviewersFromCodeOwners: true,
285
+ lockFileMaintenance: {
286
+ enabled: true,
287
+ },
203
288
  customManagers: [
289
+ {
290
+ customType: 'regex',
291
+ datasourceTemplate: 'node',
292
+ depNameTemplate: 'node',
293
+ versioningTemplate: 'node',
294
+ currentValueTemplate: '>= {{currentValue}}',
295
+ fileMatch: ['\\.?projen.*.(js|cjs|mjs|ts|mts|cts)$'],
296
+ matchStrings: ["minNodeVersion:\\s*'(?<currentValue>[^']+)'"],
297
+ },
204
298
  {
205
299
  customType: 'regex',
206
300
  datasourceTemplate: 'npm',
@@ -208,7 +302,7 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
208
302
  matchStringsStrategy: 'recursive',
209
303
  matchStrings: [
210
304
  '\\.(?<depType>addDeps|addDevDeps|addPeerDeps)\\([^)]*\\)',
211
- "'(?<depName>[a-zA-Z0-9-]+)@(?<currentValue>[^']+)'",
305
+ "'(?<depName>@?[\\w-\\/]+)@(?<currentValue>[^']+)'",
212
306
  ],
213
307
  depTypeTemplate: "{{#if (equals depType 'addDeps')}}dependencies{{else if (equals depType 'addDevDeps')}}devDependencies{{else}}peerDependencies{{/if}}",
214
308
  },
@@ -219,7 +313,7 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
219
313
  matchStringsStrategy: 'recursive',
220
314
  matchStrings: [
221
315
  '(?<depType>deps|devDeps|peerDeps):\\s*\\[[^\\]]*\\]',
222
- "'(?<depName>[a-zA-Z0-9-]+)@(?<currentValue>[^']+)'",
316
+ "'(?<depName>@?[\\w-\\/]+)@(?<currentValue>[^']+)'",
223
317
  ],
224
318
  depTypeTemplate: "{{#if (equals depType 'deps')}}dependencies{{else if (equals depType 'devDeps')}}devDependencies{{else}}peerDependencies{{/if}}",
225
319
  },
@@ -233,19 +327,45 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
233
327
  },
234
328
  ],
235
329
  };
330
+ this.addTask('renovate', {
331
+ description: 'Run Renovate locally for debugging',
332
+ exec: 'pnpx renovate --platform=local --repository-cache=reset --dry-run=full',
333
+ });
236
334
  this.renovate = new Renovate(this, deepMerge(defaults, renovateOptions));
237
- }, _Project_configureTypeScript = function _Project_configureTypeScript({ parent, typeScriptConfigOptions }) {
238
- if (!typeScriptConfigOptions) {
335
+ }, _Project_configureSWC = function _Project_configureSWC({ swcrc, typeScriptConfig }) {
336
+ if (!swcrc) {
337
+ return;
338
+ }
339
+ if (!this.parent) {
340
+ this.package?.addDevDeps('@swc/core@1.6.13');
341
+ this.package?.addDevDeps('@swc-node/register@1.10.2');
342
+ }
343
+ const defaults = {
344
+ $schema: 'https://json.schemastore.org/swcrc',
345
+ ...(typeScriptConfig
346
+ ? {
347
+ jsc: {
348
+ parser: {
349
+ syntax: 'typescript',
350
+ },
351
+ },
352
+ }
353
+ : {}),
354
+ env: {
355
+ targets: {
356
+ node: 'current',
357
+ },
358
+ },
359
+ };
360
+ this.swcrc = new SWCConfig(this, deepMerge(defaults, swcrc));
361
+ }, _Project_configureTypeScript = function _Project_configureTypeScript({ parent, typeScriptConfig, swcrc }) {
362
+ if (!typeScriptConfig) {
239
363
  return;
240
364
  }
241
365
  const defaults = parent
242
366
  ? {
243
367
  config: {
244
- extends: '@langri-sha/tsconfig/project.json',
245
- compilerOptions: {
246
- baseUrl: '.',
247
- outDir: '.tsbuild',
248
- },
368
+ extends: '@langri-sha/tsconfig/project',
249
369
  },
250
370
  }
251
371
  : {
@@ -253,25 +373,38 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
253
373
  extends: '@langri-sha/tsconfig',
254
374
  },
255
375
  };
256
- this.typeScriptConfig = new TypeScriptConfig(this, deepMerge(defaults, typeScriptConfigOptions));
376
+ this.typeScriptConfig = new TypeScriptConfig(this, deepMerge(defaults, typeScriptConfig));
257
377
  if (!this.parent) {
258
- this.package?.addDevDeps('typescript@5.4.5');
259
- this.package?.addDevDeps('ts-node@10.9.2');
378
+ this.package?.addDevDeps('typescript@5.5.3');
379
+ if (!swcrc) {
380
+ this.package?.addDevDeps('ts-node@10.9.2');
381
+ }
260
382
  }
261
- this.package?.addDevDeps('@langri-sha/tsconfig@*');
262
- }, _Project_createPnpmWorkspaces = function _Project_createPnpmWorkspaces({ workspaces }) {
263
- if (!workspaces) {
383
+ if (this.name !== '@langri-sha/tsconfig') {
384
+ this.package?.addDevDeps('@langri-sha/tsconfig@*');
385
+ }
386
+ }, _Project_populateTypeScriptProjectReferencesFromDependencies = function _Project_populateTypeScriptProjectReferencesFromDependencies() {
387
+ if (this.parent || !this.package || !this.typeScriptConfig) {
264
388
  return;
265
389
  }
266
- new YamlFile(this, 'pnpm-workspace.yaml', {
267
- readonly: true,
268
- marker: true,
269
- obj: {
270
- packages: workspaces,
271
- },
272
- });
390
+ const subprojects = this.allSubprojectsKind.filter((project) => project.package && project.typeScriptConfig);
391
+ const root = path.dirname(this.package.file.absolutePath);
392
+ for (const project of subprojects) {
393
+ const from = path.dirname(project.package.file.absolutePath);
394
+ if (project.name !== '@langri-sha/tsconfig') {
395
+ this.typeScriptConfig.addReference(path.relative(root, from));
396
+ }
397
+ for (const dep of project.deps.all) {
398
+ const reference = subprojects.find(({ name }) => name === dep.name);
399
+ if (!reference) {
400
+ continue;
401
+ }
402
+ const to = path.dirname(reference.package.file.absolutePath);
403
+ project.typeScriptConfig.addReference(path.relative(from, to));
404
+ }
405
+ }
273
406
  };
274
- const getGitIgnoreOptions = ({ gitIgnoreOptions, huskyOptions, parent, typeScriptConfigOptions, withTerraform, ...options }) => parent
407
+ const getGitIgnoreOptions = ({ gitIgnoreOptions, husky: huskyOptions, parent, typeScriptConfig: typeScriptConfigOptions, withTerraform, }) => parent
275
408
  ? gitIgnoreOptions
276
409
  : {
277
410
  ignorePatterns: [
@@ -294,7 +427,7 @@ const getGitIgnoreOptions = ({ gitIgnoreOptions, huskyOptions, parent, typeScrip
294
427
  !.github/
295
428
  ${huskyOptions ? '!.husky/' : ''}
296
429
  !.projen/
297
- ${options.workspaces?.map((workspace) => `${workspace}/lib/`).join('\n') ?? ''}
430
+ dist/
298
431
  node_modules/
299
432
  `
300
433
  .split('\n')
@@ -303,5 +436,10 @@ const getGitIgnoreOptions = ({ gitIgnoreOptions, huskyOptions, parent, typeScrip
303
436
  ...(gitIgnoreOptions?.ignorePatterns ?? []),
304
437
  ],
305
438
  };
306
- const deepMerge = R.mergeDeepWith(R.concat);
439
+ const deepMerge = R.mergeDeepWith(R.cond([
440
+ // When both arguments are strings, use the right string.
441
+ [R.allPass([R.is(String), R.is(String)]), R.nthArg(1)],
442
+ // Otherwise, concatenate.
443
+ [R.T, R.concat],
444
+ ]));
307
445
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './node-package.js';
2
+ export * from './projenrc.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './node-package.js';
2
+ export * from './projenrc.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { Project, javascript } from 'projen';
2
+ /**
3
+ * Options for configuring Node.js packages.
4
+ */
5
+ export interface NodePackageOptions extends javascript.NodePackageOptions {
6
+ peerDependenciesMeta?: Record<string, {
7
+ optional?: boolean;
8
+ }>;
9
+ type?: 'commonjs' | 'module';
10
+ }
11
+ /**
12
+ * Custom Node.js package manager that preserves package.
13
+ */
14
+ export declare class NodePackage extends javascript.NodePackage {
15
+ #private;
16
+ constructor(project: Project, options?: NodePackageOptions);
17
+ postSynthesize(): void;
18
+ }
19
+ //# sourceMappingURL=node-package.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-package.d.ts","sourceRoot":"","sources":["../../src/lib/node-package.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAE5C;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,UAAU,CAAC,kBAAkB;IACvE,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAC7D,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAA;CAC7B;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU,CAAC,WAAW;;gBACzC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB;IA2BjD,cAAc,IAAI,IAAI;CAOhC"}
@@ -0,0 +1,43 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var _NodePackage_instances, _NodePackage_getPackageJson;
7
+ import * as fs from 'node:fs';
8
+ import { javascript } from 'projen';
9
+ /**
10
+ * Custom Node.js package manager that preserves package.
11
+ */
12
+ export class NodePackage extends javascript.NodePackage {
13
+ constructor(project, options) {
14
+ super(project, options);
15
+ _NodePackage_instances.add(this);
16
+ this.addVersion(__classPrivateFieldGet(this, _NodePackage_instances, "m", _NodePackage_getPackageJson).call(this)?.version ?? '0.0.0');
17
+ if (options?.type) {
18
+ this.addField('type', options.type);
19
+ }
20
+ if (options?.peerDependenciesMeta) {
21
+ this.addField('peerDependenciesMeta', options.peerDependenciesMeta);
22
+ }
23
+ // Reset, so we can run `pnpx projen` on CI after Renovate upgrades.
24
+ this.project.tasks
25
+ .tryFind('install:ci')
26
+ ?.reset(this.project.tasks.tryFind('install')?.steps[0]?.exec);
27
+ }
28
+ postSynthesize() {
29
+ if (this.project.parent) {
30
+ return;
31
+ }
32
+ super.postSynthesize();
33
+ }
34
+ }
35
+ _NodePackage_instances = new WeakSet(), _NodePackage_getPackageJson = function _NodePackage_getPackageJson() {
36
+ try {
37
+ return JSON.parse(fs.readFileSync(this.file.absolutePath, 'utf-8'));
38
+ }
39
+ catch (_) {
40
+ return undefined;
41
+ }
42
+ };
43
+ //# sourceMappingURL=node-package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-package.js","sourceRoot":"","sources":["../../src/lib/node-package.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAW,UAAU,EAAE,MAAM,QAAQ,CAAA;AAU5C;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,UAAU,CAAC,WAAW;IACrD,YAAY,OAAgB,EAAE,OAA4B;QACxD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;;QAEvB,IAAI,CAAC,UAAU,CAAC,uBAAA,IAAI,2DAAgB,MAApB,IAAI,CAAkB,EAAE,OAAO,IAAI,OAAO,CAAC,CAAA;QAE3D,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;QAED,IAAI,OAAO,EAAE,oBAAoB,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAA;QACrE,CAAC;QAED,oEAAoE;QACpE,IAAI,CAAC,OAAO,CAAC,KAAK;aACf,OAAO,CAAC,YAAY,CAAC;YACtB,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAClE,CAAC;IAUQ,cAAc;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACxB,OAAM;QACR,CAAC;QAED,KAAK,CAAC,cAAc,EAAE,CAAA;IACxB,CAAC;CACF;;IAdG,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;IACrE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
package/license CHANGED
@@ -1,20 +1,10 @@
1
+
1
2
  MIT License
2
3
 
3
4
  Copyright (c) 2024 Filip Dupanović <filip.dupanovic@gmail.com> (https://langri-sha.com)
4
5
 
5
- Permission is hereby granted, free of charge, to any person obtaining a copy of
6
- this software and associated documentation files (the "Software"), to deal in
7
- the Software without restriction, including without limitation the rights to
8
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
- the Software, and to permit persons to whom the Software is furnished to do so,
10
- subject to the following conditions:
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
11
7
 
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
8
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
14
9
 
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
- FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.