@langri-sha/projen-project 0.8.1 → 0.9.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/CHANGELOG.json CHANGED
@@ -2,7 +2,60 @@
2
2
  "name": "@langri-sha/projen-project",
3
3
  "entries": [
4
4
  {
5
- "date": "Tue, 21 May 2024 07:47:31 GMT",
5
+ "date": "Sat, 25 May 2024 03:25:02 GMT",
6
+ "version": "0.9.0",
7
+ "tag": "@langri-sha/projen-project_v0.9.0",
8
+ "comments": {
9
+ "minor": [
10
+ {
11
+ "author": "filip.dupanovic@gmail.com",
12
+ "package": "@langri-sha/projen-project",
13
+ "commit": "1b0960cb6ed3918c64dbc464cb2baa83f5dc9bdd",
14
+ "comment": "feat(projen): Add support for creating licenses"
15
+ },
16
+ {
17
+ "author": "filip.dupanovic@gmail.com",
18
+ "package": "@langri-sha/projen-project",
19
+ "commit": "1b0960cb6ed3918c64dbc464cb2baa83f5dc9bdd",
20
+ "comment": "feat(project): Add support for configuring Jest"
21
+ },
22
+ {
23
+ "author": "filip.dupanovic@gmail.com",
24
+ "package": "@langri-sha/projen-project",
25
+ "commit": "1b0960cb6ed3918c64dbc464cb2baa83f5dc9bdd",
26
+ "comment": "feat(project): Match project dependencies with Renovate"
27
+ },
28
+ {
29
+ "author": "filip.dupanovic@gmail.com",
30
+ "package": "@langri-sha/projen-project",
31
+ "commit": "1b0960cb6ed3918c64dbc464cb2baa83f5dc9bdd",
32
+ "comment": "feat(project): Add projenrc file to subprojects"
33
+ },
34
+ {
35
+ "author": "filip.dupanovic@gmail.com",
36
+ "package": "@langri-sha/projen-project",
37
+ "commit": "1b0960cb6ed3918c64dbc464cb2baa83f5dc9bdd",
38
+ "comment": "feat(project): Add support for NPM ignore files"
39
+ }
40
+ ],
41
+ "patch": [
42
+ {
43
+ "author": "filip.dupanovic@gmail.com",
44
+ "package": "@langri-sha/projen-project",
45
+ "commit": "1b0960cb6ed3918c64dbc464cb2baa83f5dc9bdd",
46
+ "comment": "fix(project): Update documentation URL"
47
+ },
48
+ {
49
+ "author": "filip.dupanovic@gmail.com",
50
+ "package": "@langri-sha/projen-project",
51
+ "commit": "1b0960cb6ed3918c64dbc464cb2baa83f5dc9bdd",
52
+ "comment": "fix(project): Update matching Renovate dependencies"
53
+ }
54
+ ]
55
+ }
56
+ },
57
+ {
58
+ "date": "Tue, 21 May 2024 07:47:40 GMT",
6
59
  "version": "0.8.1",
7
60
  "tag": "@langri-sha/projen-project_v0.8.1",
8
61
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,29 @@
1
1
  # Change Log - @langri-sha/projen-project
2
2
 
3
- This log was last generated on Tue, 21 May 2024 07:47:31 GMT and should not be manually modified.
3
+ This log was last generated on Sat, 25 May 2024 03:25:02 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 0.9.0
8
+
9
+ Sat, 25 May 2024 03:25:02 GMT
10
+
11
+ ### Minor changes
12
+
13
+ - feat(projen): Add support for creating licenses (filip.dupanovic@gmail.com)
14
+ - feat(project): Add support for configuring Jest (filip.dupanovic@gmail.com)
15
+ - feat(project): Match project dependencies with Renovate (filip.dupanovic@gmail.com)
16
+ - feat(project): Add projenrc file to subprojects (filip.dupanovic@gmail.com)
17
+ - feat(project): Add support for NPM ignore files (filip.dupanovic@gmail.com)
18
+
19
+ ### Patches
20
+
21
+ - fix(project): Update documentation URL (filip.dupanovic@gmail.com)
22
+ - fix(project): Update matching Renovate dependencies (filip.dupanovic@gmail.com)
23
+
7
24
  ## 0.8.1
8
25
 
9
- Tue, 21 May 2024 07:47:31 GMT
26
+ Tue, 21 May 2024 07:47:40 GMT
10
27
 
11
28
  ### Patches
12
29
 
package/lib/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Project as BaseProject, type ProjectOptions as BaseProjectOptions, javascript } from 'projen';
1
+ import { Project as BaseProject, type ProjectOptions as BaseProjectOptions, IgnoreFile, IgnoreFileOptions, javascript } from 'projen';
2
2
  import { type LintSynthesizedOptions } from '@langri-sha/projen-lint-synthesized';
3
3
  import { EditorConfig, type EditorConfigOptions } from '@langri-sha/projen-editorconfig';
4
4
  import { Codeowners, type CodeownersOptions } from '@langri-sha/projen-codeowners';
@@ -6,7 +6,9 @@ import { Renovate, type RenovateOptions } from '@langri-sha/projen-renovate';
6
6
  import { Husky, type HuskyOptions } from '@langri-sha/projen-husky';
7
7
  import { TypeScriptConfig, type TypeScriptConfigOptions } from '@langri-sha/projen-typescript-config';
8
8
  import { Beachball, BeachballOptions } from '@langri-sha/projen-beachball';
9
+ import { License } from '@langri-sha/projen-license';
9
10
  import { ProjenrcFile } from './lib/index.js';
11
+ import { JestConfig, JestConfigOptions } from '@langri-sha/projen-jest-config';
10
12
  export * from '@langri-sha/projen-typescript-config';
11
13
  export interface ProjectOptions extends Omit<BaseProjectOptions, 'renovatebot' | 'renovatebotOptions'> {
12
14
  beachballOptions?: BeachballOptions;
@@ -19,12 +21,27 @@ export interface ProjectOptions extends Omit<BaseProjectOptions, 'renovatebot' |
19
21
  * Husky options.
20
22
  */
21
23
  huskyOptions?: HuskyOptions;
22
- renovateOptions?: RenovateOptions;
24
+ /**
25
+ * Configures Jest, when provided.
26
+ */
27
+ jestConfigOptions?: JestConfigOptions;
23
28
  lintSynthesizedOptions?: LintSynthesizedOptions;
24
29
  /**
25
30
  * Package configuration options.
26
31
  */
27
- package?: javascript.NodePackageOptions;
32
+ package?: {
33
+ /**
34
+ * License copyright year.
35
+ *
36
+ * @default "Current full year"
37
+ */
38
+ copyrightYear?: string;
39
+ } & javascript.NodePackageOptions;
40
+ /**
41
+ * Pass in to configure NPM ignore options.
42
+ */
43
+ npmIgnoreOptions?: IgnoreFileOptions;
44
+ renovateOptions?: RenovateOptions;
28
45
  /**
29
46
  * TypeScript configuration options.
30
47
  */
@@ -38,6 +55,9 @@ export declare class Project extends BaseProject {
38
55
  codeowners?: Codeowners;
39
56
  editorConfig?: EditorConfig;
40
57
  husky?: Husky;
58
+ jestConfig?: JestConfig;
59
+ license?: License;
60
+ npmIgnore?: IgnoreFile;
41
61
  package?: javascript.NodePackage;
42
62
  projenrc?: ProjenrcFile;
43
63
  renovate?: Renovate;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,WAAW,EACtB,KAAK,cAAc,IAAI,kBAAkB,EAEzC,UAAU,EACX,MAAM,QAAQ,CAAA;AAIf,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC7B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,cAAc,sCAAsC,CAAA;AAEpD,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,kBAAkB,EAAE,aAAa,GAAG,oBAAoB,CAAC;IAItE,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IAKnC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IAErC;;OAEG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IAEzC;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,CAAA;IAK3B,eAAe,CAAC,EAAE,eAAe,CAAA;IAKjC,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAE/C;;OAEG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC,kBAAkB,CAAA;IAEvC;;OAEG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;IAKjD,aAAa,CAAC,EAAE,OAAO,CAAA;IAKvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,qBAAa,OAAQ,SAAQ,WAAW;;IACtC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,OAAO,CAAC,EAAE,UAAU,CAAC,WAAW,CAAA;IAChC,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;gBAEvB,OAAO,EAAE,cAAc;IAkCnC;;OAEG;IACH,aAAa,CAAC,cAAc,EAAE,cAAc;IAO5C;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CA2NtC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,WAAW,EACtB,KAAK,cAAc,IAAI,kBAAkB,EACzC,UAAU,EACV,iBAAiB,EAEjB,UAAU,EACX,MAAM,QAAQ,CAAA;AAIf,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC7B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAE9E,cAAc,sCAAsC,CAAA;AAEpD,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,kBAAkB,EAAE,aAAa,GAAG,oBAAoB,CAAC;IAItE,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IAKnC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IAErC;;OAEG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IAEzC;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,CAAA;IAE3B;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IAKrC,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAE/C;;OAEG;IACH,OAAO,CAAC,EAAE;QACR;;;;WAIG;QACH,aAAa,CAAC,EAAE,MAAM,CAAA;KACvB,GAAG,UAAU,CAAC,kBAAkB,CAAA;IAEjC;;OAEG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,CAAA;IAKpC,eAAe,CAAC,EAAE,eAAe,CAAA;IAEjC;;OAEG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;IAKjD,aAAa,CAAC,EAAE,OAAO,CAAA;IAKvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,qBAAa,OAAQ,SAAQ,WAAW;;IACtC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,OAAO,CAAC,EAAE,UAAU,CAAC,WAAW,CAAA;IAChC,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;gBAEvB,OAAO,EAAE,cAAc;IAqCnC;;OAEG;IACH,aAAa,CAAC,cAAc,EAAE,cAAc;IAO5C;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAwRtC"}
package/lib/index.js CHANGED
@@ -3,8 +3,8 @@ 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_configureLintSynthesized, _Project_configurePackage, _Project_configureProjenrc, _Project_configureRenovate, _Project_configureTypeScript, _Project_createPnpmWorkspaces;
7
- import { Project as BaseProject, YamlFile, javascript, } from 'projen';
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';
8
8
  import * as R from 'ramda';
9
9
  import { LintSynthesized, } from '@langri-sha/projen-lint-synthesized';
10
10
  import { EditorConfig, } from '@langri-sha/projen-editorconfig';
@@ -13,7 +13,9 @@ import { Renovate } from '@langri-sha/projen-renovate';
13
13
  import { Husky } from '@langri-sha/projen-husky';
14
14
  import { TypeScriptConfig, } from '@langri-sha/projen-typescript-config';
15
15
  import { Beachball } from '@langri-sha/projen-beachball';
16
+ import { License } from '@langri-sha/projen-license';
16
17
  import { ProjenrcFile } from './lib/index.js';
18
+ import { JestConfig } from '@langri-sha/projen-jest-config';
17
19
  export * from '@langri-sha/projen-typescript-config';
18
20
  export class Project extends BaseProject {
19
21
  constructor(options) {
@@ -30,6 +32,7 @@ export class Project extends BaseProject {
30
32
  this.tasks.removeTask('post-compile');
31
33
  this.tasks.removeTask('pre-compile');
32
34
  this.tasks.removeTask('watch');
35
+ __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureProjenrc).call(this);
33
36
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configurePackage).call(this, options);
34
37
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureTypeScript).call(this, options);
35
38
  if (this.parent) {
@@ -41,8 +44,10 @@ export class Project extends BaseProject {
41
44
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureCodeowners).call(this, options);
42
45
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureEditorConfig).call(this, options);
43
46
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureHusky).call(this, options);
47
+ __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureJestConfig).call(this, options);
48
+ __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureLicense).call(this, options);
44
49
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureLintSynthesized).call(this, options);
45
- __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureProjenrc).call(this);
50
+ __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureNpmIgnore).call(this, options);
46
51
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_configureRenovate).call(this, options);
47
52
  __classPrivateFieldGet(this, _Project_instances, "m", _Project_createPnpmWorkspaces).call(this, options);
48
53
  }
@@ -125,12 +130,46 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
125
130
  this.package?.addDevDeps('husky@9.0.11');
126
131
  this.package?.setScript('prepare', 'husky');
127
132
  this.tryFindObjectFile('package.json')?.addDeletionOverride('pnpm');
133
+ }, _Project_configureJestConfig = function _Project_configureJestConfig({ jestConfigOptions }) {
134
+ if (!jestConfigOptions || this.parent) {
135
+ return;
136
+ }
137
+ this.jestConfig = new JestConfig(this, jestConfigOptions);
138
+ }, _Project_configureLicense = function _Project_configureLicense({ package: pkg }) {
139
+ if (!pkg?.license) {
140
+ return;
141
+ }
142
+ if (!pkg.authorName) {
143
+ throw new Error('Missing package author name. Set `package.authorName` in the project');
144
+ }
145
+ this.license = new License(this, {
146
+ spdx: pkg.license,
147
+ copyrightHolder: [
148
+ pkg.authorName,
149
+ pkg.authorEmail ? `<${pkg.authorEmail}>` : undefined,
150
+ pkg.authorUrl ? `(${pkg.authorUrl})` : undefined,
151
+ ]
152
+ .filter(Boolean)
153
+ .join(' '),
154
+ year: pkg.copyrightYear ?? new Date().getFullYear().toString(),
155
+ });
128
156
  }, _Project_configureLintSynthesized = function _Project_configureLintSynthesized({ lintSynthesizedOptions }) {
129
157
  new LintSynthesized(this, lintSynthesizedOptions ?? {
130
158
  'package.json': 'pnpx sort-package-json',
131
159
  '*.{js,jsx,ts,tsx}': 'pnpm eslint --fix',
132
160
  '*': 'pnpm prettier --write --ignore-unknown',
133
161
  });
162
+ }, _Project_configureNpmIgnore = function _Project_configureNpmIgnore({ jestConfigOptions, npmIgnoreOptions }) {
163
+ if (!npmIgnoreOptions) {
164
+ return;
165
+ }
166
+ const defaults = {
167
+ ignorePatterns: [
168
+ ...(jestConfigOptions ? ['*.test.*', '.*', '__snapshots__/'] : []),
169
+ 'tsconfig*.json',
170
+ ],
171
+ };
172
+ this.npmIgnore = new IgnoreFile(this, '.npmignore', deepMerge(defaults, npmIgnoreOptions));
134
173
  }, _Project_configurePackage = function _Project_configurePackage({ package: pkg }) {
135
174
  if (!pkg) {
136
175
  return;
@@ -151,9 +190,6 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
151
190
  this.package.removeScript('default');
152
191
  }
153
192
  }, _Project_configureProjenrc = function _Project_configureProjenrc() {
154
- if (this.parent) {
155
- return;
156
- }
157
193
  this.projenrc = new ProjenrcFile(this, {});
158
194
  }, _Project_configureRenovate = function _Project_configureRenovate({ renovateOptions }) {
159
195
  if (!renovateOptions || this.parent) {
@@ -169,10 +205,23 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
169
205
  customType: 'regex',
170
206
  datasourceTemplate: 'npm',
171
207
  fileMatch: ['\\.?projen.*.(js|cjs|mjs|ts|mts|cts)$'],
208
+ matchStringsStrategy: 'recursive',
209
+ matchStrings: [
210
+ '\\.(?<depType>addDeps|addDevDeps|addPeerDeps)\\([^)]*\\)',
211
+ "'(?<depName>[a-zA-Z0-9-]+)@(?<currentValue>[^']+)'",
212
+ ],
213
+ depTypeTemplate: "{{#if (equals depType 'addDeps')}}dependencies{{else if (equals depType 'addDevDeps')}}devDependencies{{else}}peerDependencies{{/if}}",
214
+ },
215
+ {
216
+ customType: 'regex',
217
+ datasourceTemplate: 'npm',
218
+ fileMatch: ['\\.?projen.*.(js|cjs|mjs|ts|mts|cts)$'],
219
+ matchStringsStrategy: 'recursive',
172
220
  matchStrings: [
173
- "\\.(?<depType>addDep|addDevDep|addPeerDep)\\('(?<depName>[a-zA-Z0-9-]+)@(?<currentValue>[^']+)'\\)",
221
+ '(?<depType>deps|devDeps|peerDeps):\\s*\\[[^\\]]*\\]',
222
+ "'(?<depName>[a-zA-Z0-9-]+)@(?<currentValue>[^']+)'",
174
223
  ],
175
- depTypeTemplate: "{{#if (equals depType 'addDevDep')}}devDependencies{{else if (equals depType 'addPeerDep')}}peerDependencies{{else}}dependencies{{/if}}",
224
+ depTypeTemplate: "{{#if (equals depType 'deps')}}dependencies{{else if (equals depType 'devDeps')}}devDependencies{{else}}peerDependencies{{/if}}",
176
225
  },
177
226
  {
178
227
  customType: 'regex',
@@ -222,7 +271,7 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
222
271
  },
223
272
  });
224
273
  };
225
- const getGitIgnoreOptions = ({ huskyOptions, typeScriptConfigOptions, withTerraform, parent, gitIgnoreOptions, ...options }) => parent
274
+ const getGitIgnoreOptions = ({ gitIgnoreOptions, huskyOptions, parent, typeScriptConfigOptions, withTerraform, ...options }) => parent
226
275
  ? gitIgnoreOptions
227
276
  : {
228
277
  ignorePatterns: [
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"projenrc.d.ts","sourceRoot":"","sources":["../../src/lib/projenrc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,OAAO,EAAc,MAAM,QAAQ,CAAA;AAE9E,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,qBAAa,YAAa,SAAQ,gBAAgB;IAChD,SAAyB,QAAQ,EAAE,MAAM,CAAA;gBAGvC,OAAO,EAAE,OAAO,EAChB,EAAE,QAA0B,EAAE,EAAE,eAAe;CAkBlD"}
1
+ {"version":3,"file":"projenrc.d.ts","sourceRoot":"","sources":["../../src/lib/projenrc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,OAAO,EAAc,MAAM,QAAQ,CAAA;AAE9E,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,qBAAa,YAAa,SAAQ,gBAAgB;IAChD,SAAyB,QAAQ,EAAE,MAAM,CAAA;gBAGvC,OAAO,EAAE,OAAO,EAChB,EAAE,QAA0B,EAAE,EAAE,eAAe;CAyBlD"}
@@ -2,6 +2,10 @@ import { ProjenrcFile as BaseProjenrcFile, SampleFile } from 'projen';
2
2
  export class ProjenrcFile extends BaseProjenrcFile {
3
3
  constructor(project, { filename = '.projenrc.mts' }) {
4
4
  super(project);
5
+ if (project.parent) {
6
+ this.filePath = ProjenrcFile.of(project.parent)?.filePath ?? filename;
7
+ return;
8
+ }
5
9
  this.filePath = filename;
6
10
  this.project.defaultTask?.exec(`node --loader ts-node/esm/transpile-only ${filename}`);
7
11
  new SampleFile(project, filename, {
@@ -1 +1 @@
1
- {"version":3,"file":"projenrc.js","sourceRoot":"","sources":["../../src/lib/projenrc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAW,UAAU,EAAE,MAAM,QAAQ,CAAA;AAU9E,MAAM,OAAO,YAAa,SAAQ,gBAAgB;IAGhD,YACE,OAAgB,EAChB,EAAE,QAAQ,GAAG,eAAe,EAAmB;QAE/C,KAAK,CAAC,OAAO,CAAC,CAAA;QAEd,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAC5B,4CAA4C,QAAQ,EAAE,CACvD,CAAA;QAED,IAAI,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE;YAChC,QAAQ,EAAE;;;;;OAKT;SACF,CAAC,CAAA;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"projenrc.js","sourceRoot":"","sources":["../../src/lib/projenrc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAW,UAAU,EAAE,MAAM,QAAQ,CAAA;AAU9E,MAAM,OAAO,YAAa,SAAQ,gBAAgB;IAGhD,YACE,OAAgB,EAChB,EAAE,QAAQ,GAAG,eAAe,EAAmB;QAE/C,KAAK,CAAC,OAAO,CAAC,CAAA;QAEd,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,IAAI,QAAQ,CAAA;YAErE,OAAM;QACR,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAExB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAC5B,4CAA4C,QAAQ,EAAE,CACvD,CAAA;QAED,IAAI,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE;YAChC,QAAQ,EAAE;;;;;OAKT;SACF,CAAC,CAAA;IACJ,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@langri-sha/projen-project",
3
- "version": "0.8.1",
3
+ "version": "0.9.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -12,6 +12,8 @@
12
12
  "@langri-sha/projen-codeowners": "0.2.3",
13
13
  "@langri-sha/projen-editorconfig": "0.3.4",
14
14
  "@langri-sha/projen-husky": "0.1.3",
15
+ "@langri-sha/projen-jest-config": "0.1.0",
16
+ "@langri-sha/projen-license": "0.1.0",
15
17
  "@langri-sha/projen-lint-synthesized": "0.2.5",
16
18
  "@langri-sha/projen-renovate": "0.2.3",
17
19
  "@langri-sha/projen-typescript-config": "0.2.1",
package/readme CHANGED
@@ -20,5 +20,5 @@ projects.
20
20
  [code owners]:
21
21
  https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
22
22
  [pnpm]: https://pnpm.io
23
- [projen]: https://projen.dev/
23
+ [projen]: https://projen.io/
24
24
  [workspaces]: https://pnpm.io/workspaces
package/src/index.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import {
2
2
  Project as BaseProject,
3
3
  type ProjectOptions as BaseProjectOptions,
4
+ IgnoreFile,
5
+ IgnoreFileOptions,
4
6
  YamlFile,
5
7
  javascript,
6
8
  } from 'projen'
@@ -26,8 +28,10 @@ import {
26
28
  type TypeScriptConfigOptions,
27
29
  } from '@langri-sha/projen-typescript-config'
28
30
  import { Beachball, BeachballOptions } from '@langri-sha/projen-beachball'
31
+ import { License } from '@langri-sha/projen-license'
29
32
 
30
33
  import { ProjenrcFile } from './lib/index.js'
34
+ import { JestConfig, JestConfigOptions } from '@langri-sha/projen-jest-config'
31
35
 
32
36
  export * from '@langri-sha/projen-typescript-config'
33
37
 
@@ -53,10 +57,10 @@ export interface ProjectOptions
53
57
  */
54
58
  huskyOptions?: HuskyOptions
55
59
 
56
- /*
57
- * Pass in to configure Renovate.
60
+ /**
61
+ * Configures Jest, when provided.
58
62
  */
59
- renovateOptions?: RenovateOptions
63
+ jestConfigOptions?: JestConfigOptions
60
64
 
61
65
  /*
62
66
  * Options for the linting synthesized files.
@@ -66,7 +70,24 @@ export interface ProjectOptions
66
70
  /**
67
71
  * Package configuration options.
68
72
  */
69
- package?: javascript.NodePackageOptions
73
+ package?: {
74
+ /**
75
+ * License copyright year.
76
+ *
77
+ * @default "Current full year"
78
+ */
79
+ copyrightYear?: string
80
+ } & javascript.NodePackageOptions
81
+
82
+ /**
83
+ * Pass in to configure NPM ignore options.
84
+ */
85
+ npmIgnoreOptions?: IgnoreFileOptions
86
+
87
+ /*
88
+ * Pass in to configure Renovate.
89
+ */
90
+ renovateOptions?: RenovateOptions
70
91
 
71
92
  /**
72
93
  * TypeScript configuration options.
@@ -89,6 +110,9 @@ export class Project extends BaseProject {
89
110
  codeowners?: Codeowners
90
111
  editorConfig?: EditorConfig
91
112
  husky?: Husky
113
+ jestConfig?: JestConfig
114
+ license?: License
115
+ npmIgnore?: IgnoreFile
92
116
  package?: javascript.NodePackage
93
117
  projenrc?: ProjenrcFile
94
118
  renovate?: Renovate
@@ -109,6 +133,7 @@ export class Project extends BaseProject {
109
133
  this.tasks.removeTask('pre-compile')
110
134
  this.tasks.removeTask('watch')
111
135
 
136
+ this.#configureProjenrc()
112
137
  this.#configurePackage(options)
113
138
  this.#configureTypeScript(options)
114
139
 
@@ -122,8 +147,10 @@ export class Project extends BaseProject {
122
147
  this.#configureCodeowners(options)
123
148
  this.#configureEditorConfig(options)
124
149
  this.#configureHusky(options)
150
+ this.#configureJestConfig(options)
151
+ this.#configureLicense(options)
125
152
  this.#configureLintSynthesized(options)
126
- this.#configureProjenrc()
153
+ this.#configureNpmIgnore(options)
127
154
  this.#configureRenovate(options)
128
155
  this.#createPnpmWorkspaces(options)
129
156
  }
@@ -233,6 +260,38 @@ export class Project extends BaseProject {
233
260
  this.tryFindObjectFile('package.json')?.addDeletionOverride('pnpm')
234
261
  }
235
262
 
263
+ #configureJestConfig({ jestConfigOptions }: ProjectOptions) {
264
+ if (!jestConfigOptions || this.parent) {
265
+ return
266
+ }
267
+
268
+ this.jestConfig = new JestConfig(this, jestConfigOptions)
269
+ }
270
+
271
+ #configureLicense({ package: pkg }: ProjectOptions) {
272
+ if (!pkg?.license) {
273
+ return
274
+ }
275
+
276
+ if (!pkg.authorName) {
277
+ throw new Error(
278
+ 'Missing package author name. Set `package.authorName` in the project',
279
+ )
280
+ }
281
+
282
+ this.license = new License(this, {
283
+ spdx: pkg.license,
284
+ copyrightHolder: [
285
+ pkg.authorName,
286
+ pkg.authorEmail ? `<${pkg.authorEmail}>` : undefined,
287
+ pkg.authorUrl ? `(${pkg.authorUrl})` : undefined,
288
+ ]
289
+ .filter(Boolean)
290
+ .join(' '),
291
+ year: pkg.copyrightYear ?? new Date().getFullYear().toString(),
292
+ })
293
+ }
294
+
236
295
  #configureLintSynthesized({ lintSynthesizedOptions }: ProjectOptions) {
237
296
  new LintSynthesized(
238
297
  this,
@@ -244,6 +303,25 @@ export class Project extends BaseProject {
244
303
  )
245
304
  }
246
305
 
306
+ #configureNpmIgnore({ jestConfigOptions, npmIgnoreOptions }: ProjectOptions) {
307
+ if (!npmIgnoreOptions) {
308
+ return
309
+ }
310
+
311
+ const defaults: IgnoreFileOptions = {
312
+ ignorePatterns: [
313
+ ...(jestConfigOptions ? ['*.test.*', '.*', '__snapshots__/'] : []),
314
+ 'tsconfig*.json',
315
+ ],
316
+ }
317
+
318
+ this.npmIgnore = new IgnoreFile(
319
+ this,
320
+ '.npmignore',
321
+ deepMerge(defaults, npmIgnoreOptions),
322
+ )
323
+ }
324
+
247
325
  #configurePackage({ package: pkg }: ProjectOptions) {
248
326
  if (!pkg) {
249
327
  return
@@ -271,10 +349,6 @@ export class Project extends BaseProject {
271
349
  }
272
350
 
273
351
  #configureProjenrc() {
274
- if (this.parent) {
275
- return
276
- }
277
-
278
352
  this.projenrc = new ProjenrcFile(this, {})
279
353
  }
280
354
 
@@ -293,11 +367,25 @@ export class Project extends BaseProject {
293
367
  customType: 'regex',
294
368
  datasourceTemplate: 'npm',
295
369
  fileMatch: ['\\.?projen.*.(js|cjs|mjs|ts|mts|cts)$'],
370
+ matchStringsStrategy: 'recursive',
296
371
  matchStrings: [
297
- "\\.(?<depType>addDep|addDevDep|addPeerDep)\\('(?<depName>[a-zA-Z0-9-]+)@(?<currentValue>[^']+)'\\)",
372
+ '\\.(?<depType>addDeps|addDevDeps|addPeerDeps)\\([^)]*\\)',
373
+ "'(?<depName>[a-zA-Z0-9-]+)@(?<currentValue>[^']+)'",
298
374
  ],
299
375
  depTypeTemplate:
300
- "{{#if (equals depType 'addDevDep')}}devDependencies{{else if (equals depType 'addPeerDep')}}peerDependencies{{else}}dependencies{{/if}}",
376
+ "{{#if (equals depType 'addDeps')}}dependencies{{else if (equals depType 'addDevDeps')}}devDependencies{{else}}peerDependencies{{/if}}",
377
+ },
378
+ {
379
+ customType: 'regex',
380
+ datasourceTemplate: 'npm',
381
+ fileMatch: ['\\.?projen.*.(js|cjs|mjs|ts|mts|cts)$'],
382
+ matchStringsStrategy: 'recursive',
383
+ matchStrings: [
384
+ '(?<depType>deps|devDeps|peerDeps):\\s*\\[[^\\]]*\\]',
385
+ "'(?<depName>[a-zA-Z0-9-]+)@(?<currentValue>[^']+)'",
386
+ ],
387
+ depTypeTemplate:
388
+ "{{#if (equals depType 'deps')}}dependencies{{else if (equals depType 'devDeps')}}devDependencies{{else}}peerDependencies{{/if}}",
301
389
  },
302
390
  {
303
391
  customType: 'regex',
@@ -363,11 +451,11 @@ export class Project extends BaseProject {
363
451
  }
364
452
 
365
453
  const getGitIgnoreOptions = ({
454
+ gitIgnoreOptions,
366
455
  huskyOptions,
456
+ parent,
367
457
  typeScriptConfigOptions,
368
458
  withTerraform,
369
- parent,
370
- gitIgnoreOptions,
371
459
  ...options
372
460
  }: ProjectOptions): ProjectOptions['gitIgnoreOptions'] =>
373
461
  parent
@@ -17,7 +17,14 @@ export class ProjenrcFile extends BaseProjenrcFile {
17
17
  ) {
18
18
  super(project)
19
19
 
20
+ if (project.parent) {
21
+ this.filePath = ProjenrcFile.of(project.parent)?.filePath ?? filename
22
+
23
+ return
24
+ }
25
+
20
26
  this.filePath = filename
27
+
21
28
  this.project.defaultTask?.exec(
22
29
  `node --loader ts-node/esm/transpile-only ${filename}`,
23
30
  )