@langri-sha/projen-project 0.8.0 → 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 +69 -1
- package/CHANGELOG.md +27 -2
- package/lib/index.d.ts +23 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +63 -13
- package/lib/index.js.map +1 -1
- package/lib/lib/projenrc.d.ts.map +1 -1
- package/lib/lib/projenrc.js +4 -0
- package/lib/lib/projenrc.js.map +1 -1
- package/package.json +3 -1
- package/readme +1 -1
- package/src/index.ts +107 -18
- package/src/lib/projenrc.ts +7 -0
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,75 @@
|
|
|
2
2
|
"name": "@langri-sha/projen-project",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
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",
|
|
59
|
+
"version": "0.8.1",
|
|
60
|
+
"tag": "@langri-sha/projen-project_v0.8.1",
|
|
61
|
+
"comments": {
|
|
62
|
+
"patch": [
|
|
63
|
+
{
|
|
64
|
+
"author": "filip.dupanovic@gmail.com",
|
|
65
|
+
"package": "@langri-sha/projen-project",
|
|
66
|
+
"commit": "5620ce2f2f89b683bc0dba64ed440cfa14425c12",
|
|
67
|
+
"comment": "fix(project): Remove default tasks for subprojects"
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"date": "Tue, 21 May 2024 05:22:50 GMT",
|
|
6
74
|
"version": "0.8.0",
|
|
7
75
|
"tag": "@langri-sha/projen-project_v0.8.0",
|
|
8
76
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,37 @@
|
|
|
1
1
|
# Change Log - @langri-sha/projen-project
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
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
|
+
|
|
24
|
+
## 0.8.1
|
|
25
|
+
|
|
26
|
+
Tue, 21 May 2024 07:47:40 GMT
|
|
27
|
+
|
|
28
|
+
### Patches
|
|
29
|
+
|
|
30
|
+
- fix(project): Remove default tasks for subprojects (filip.dupanovic@gmail.com)
|
|
31
|
+
|
|
7
32
|
## 0.8.0
|
|
8
33
|
|
|
9
|
-
Tue, 21 May 2024 05:
|
|
34
|
+
Tue, 21 May 2024 05:22:50 GMT
|
|
10
35
|
|
|
11
36
|
### Minor changes
|
|
12
37
|
|
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
|
-
|
|
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?:
|
|
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;
|
package/lib/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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,18 +32,22 @@ 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');
|
|
33
|
-
|
|
34
|
-
this.tasks.removeTask('install');
|
|
35
|
-
this.tasks.removeTask('install:ci');
|
|
36
|
-
}
|
|
35
|
+
__classPrivateFieldGet(this, _Project_instances, "m", _Project_configureProjenrc).call(this);
|
|
37
36
|
__classPrivateFieldGet(this, _Project_instances, "m", _Project_configurePackage).call(this, options);
|
|
38
37
|
__classPrivateFieldGet(this, _Project_instances, "m", _Project_configureTypeScript).call(this, options);
|
|
38
|
+
if (this.parent) {
|
|
39
|
+
this.tasks.tryFind('default')?.reset();
|
|
40
|
+
this.tasks.tryFind('install')?.reset();
|
|
41
|
+
this.tasks.tryFind('install:ci')?.reset();
|
|
42
|
+
}
|
|
39
43
|
__classPrivateFieldGet(this, _Project_instances, "m", _Project_configureBeachball).call(this, options);
|
|
40
44
|
__classPrivateFieldGet(this, _Project_instances, "m", _Project_configureCodeowners).call(this, options);
|
|
41
45
|
__classPrivateFieldGet(this, _Project_instances, "m", _Project_configureEditorConfig).call(this, options);
|
|
42
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);
|
|
43
49
|
__classPrivateFieldGet(this, _Project_instances, "m", _Project_configureLintSynthesized).call(this, options);
|
|
44
|
-
__classPrivateFieldGet(this, _Project_instances, "m",
|
|
50
|
+
__classPrivateFieldGet(this, _Project_instances, "m", _Project_configureNpmIgnore).call(this, options);
|
|
45
51
|
__classPrivateFieldGet(this, _Project_instances, "m", _Project_configureRenovate).call(this, options);
|
|
46
52
|
__classPrivateFieldGet(this, _Project_instances, "m", _Project_createPnpmWorkspaces).call(this, options);
|
|
47
53
|
}
|
|
@@ -124,12 +130,46 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
|
|
|
124
130
|
this.package?.addDevDeps('husky@9.0.11');
|
|
125
131
|
this.package?.setScript('prepare', 'husky');
|
|
126
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
|
+
});
|
|
127
156
|
}, _Project_configureLintSynthesized = function _Project_configureLintSynthesized({ lintSynthesizedOptions }) {
|
|
128
157
|
new LintSynthesized(this, lintSynthesizedOptions ?? {
|
|
129
158
|
'package.json': 'pnpx sort-package-json',
|
|
130
159
|
'*.{js,jsx,ts,tsx}': 'pnpm eslint --fix',
|
|
131
160
|
'*': 'pnpm prettier --write --ignore-unknown',
|
|
132
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));
|
|
133
173
|
}, _Project_configurePackage = function _Project_configurePackage({ package: pkg }) {
|
|
134
174
|
if (!pkg) {
|
|
135
175
|
return;
|
|
@@ -150,9 +190,6 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
|
|
|
150
190
|
this.package.removeScript('default');
|
|
151
191
|
}
|
|
152
192
|
}, _Project_configureProjenrc = function _Project_configureProjenrc() {
|
|
153
|
-
if (this.parent) {
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
193
|
this.projenrc = new ProjenrcFile(this, {});
|
|
157
194
|
}, _Project_configureRenovate = function _Project_configureRenovate({ renovateOptions }) {
|
|
158
195
|
if (!renovateOptions || this.parent) {
|
|
@@ -168,10 +205,23 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
|
|
|
168
205
|
customType: 'regex',
|
|
169
206
|
datasourceTemplate: 'npm',
|
|
170
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',
|
|
171
220
|
matchStrings: [
|
|
172
|
-
|
|
221
|
+
'(?<depType>deps|devDeps|peerDeps):\\s*\\[[^\\]]*\\]',
|
|
222
|
+
"'(?<depName>[a-zA-Z0-9-]+)@(?<currentValue>[^']+)'",
|
|
173
223
|
],
|
|
174
|
-
depTypeTemplate: "{{#if (equals depType '
|
|
224
|
+
depTypeTemplate: "{{#if (equals depType 'deps')}}dependencies{{else if (equals depType 'devDeps')}}devDependencies{{else}}peerDependencies{{/if}}",
|
|
175
225
|
},
|
|
176
226
|
{
|
|
177
227
|
customType: 'regex',
|
|
@@ -221,7 +271,7 @@ _Project_instances = new WeakSet(), _Project_configureBeachball = function _Proj
|
|
|
221
271
|
},
|
|
222
272
|
});
|
|
223
273
|
};
|
|
224
|
-
const getGitIgnoreOptions = ({
|
|
274
|
+
const getGitIgnoreOptions = ({ gitIgnoreOptions, huskyOptions, parent, typeScriptConfigOptions, withTerraform, ...options }) => parent
|
|
225
275
|
? gitIgnoreOptions
|
|
226
276
|
: {
|
|
227
277
|
ignorePatterns: [
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EACL,OAAO,IAAI,WAAW,EAEtB,QAAQ,EACR,UAAU,GACX,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,CAAC,MAAM,OAAO,CAAA;AAE1B,OAAO,EACL,eAAe,GAEhB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EACL,YAAY,GAEb,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,UAAU,GAEX,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAwB,MAAM,6BAA6B,CAAA;AAC5E,OAAO,EAAE,KAAK,EAAqB,MAAM,0BAA0B,CAAA;AACnE,OAAO,EACL,gBAAgB,GAEjB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAoB,MAAM,8BAA8B,CAAA;
|
|
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;
|
|
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"}
|
package/lib/lib/projenrc.js
CHANGED
|
@@ -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, {
|
package/lib/lib/projenrc.js.map
CHANGED
|
@@ -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;
|
|
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.
|
|
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.
|
|
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
|
-
*
|
|
60
|
+
/**
|
|
61
|
+
* Configures Jest, when provided.
|
|
58
62
|
*/
|
|
59
|
-
|
|
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?:
|
|
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,20 +133,24 @@ export class Project extends BaseProject {
|
|
|
109
133
|
this.tasks.removeTask('pre-compile')
|
|
110
134
|
this.tasks.removeTask('watch')
|
|
111
135
|
|
|
112
|
-
|
|
113
|
-
this.tasks.removeTask('install')
|
|
114
|
-
this.tasks.removeTask('install:ci')
|
|
115
|
-
}
|
|
116
|
-
|
|
136
|
+
this.#configureProjenrc()
|
|
117
137
|
this.#configurePackage(options)
|
|
118
138
|
this.#configureTypeScript(options)
|
|
119
139
|
|
|
140
|
+
if (this.parent) {
|
|
141
|
+
this.tasks.tryFind('default')?.reset()
|
|
142
|
+
this.tasks.tryFind('install')?.reset()
|
|
143
|
+
this.tasks.tryFind('install:ci')?.reset()
|
|
144
|
+
}
|
|
145
|
+
|
|
120
146
|
this.#configureBeachball(options)
|
|
121
147
|
this.#configureCodeowners(options)
|
|
122
148
|
this.#configureEditorConfig(options)
|
|
123
149
|
this.#configureHusky(options)
|
|
150
|
+
this.#configureJestConfig(options)
|
|
151
|
+
this.#configureLicense(options)
|
|
124
152
|
this.#configureLintSynthesized(options)
|
|
125
|
-
this.#
|
|
153
|
+
this.#configureNpmIgnore(options)
|
|
126
154
|
this.#configureRenovate(options)
|
|
127
155
|
this.#createPnpmWorkspaces(options)
|
|
128
156
|
}
|
|
@@ -232,6 +260,38 @@ export class Project extends BaseProject {
|
|
|
232
260
|
this.tryFindObjectFile('package.json')?.addDeletionOverride('pnpm')
|
|
233
261
|
}
|
|
234
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
|
+
|
|
235
295
|
#configureLintSynthesized({ lintSynthesizedOptions }: ProjectOptions) {
|
|
236
296
|
new LintSynthesized(
|
|
237
297
|
this,
|
|
@@ -243,6 +303,25 @@ export class Project extends BaseProject {
|
|
|
243
303
|
)
|
|
244
304
|
}
|
|
245
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
|
+
|
|
246
325
|
#configurePackage({ package: pkg }: ProjectOptions) {
|
|
247
326
|
if (!pkg) {
|
|
248
327
|
return
|
|
@@ -270,10 +349,6 @@ export class Project extends BaseProject {
|
|
|
270
349
|
}
|
|
271
350
|
|
|
272
351
|
#configureProjenrc() {
|
|
273
|
-
if (this.parent) {
|
|
274
|
-
return
|
|
275
|
-
}
|
|
276
|
-
|
|
277
352
|
this.projenrc = new ProjenrcFile(this, {})
|
|
278
353
|
}
|
|
279
354
|
|
|
@@ -292,11 +367,25 @@ export class Project extends BaseProject {
|
|
|
292
367
|
customType: 'regex',
|
|
293
368
|
datasourceTemplate: 'npm',
|
|
294
369
|
fileMatch: ['\\.?projen.*.(js|cjs|mjs|ts|mts|cts)$'],
|
|
370
|
+
matchStringsStrategy: 'recursive',
|
|
295
371
|
matchStrings: [
|
|
296
|
-
|
|
372
|
+
'\\.(?<depType>addDeps|addDevDeps|addPeerDeps)\\([^)]*\\)',
|
|
373
|
+
"'(?<depName>[a-zA-Z0-9-]+)@(?<currentValue>[^']+)'",
|
|
297
374
|
],
|
|
298
375
|
depTypeTemplate:
|
|
299
|
-
"{{#if (equals depType '
|
|
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}}",
|
|
300
389
|
},
|
|
301
390
|
{
|
|
302
391
|
customType: 'regex',
|
|
@@ -362,11 +451,11 @@ export class Project extends BaseProject {
|
|
|
362
451
|
}
|
|
363
452
|
|
|
364
453
|
const getGitIgnoreOptions = ({
|
|
454
|
+
gitIgnoreOptions,
|
|
365
455
|
huskyOptions,
|
|
456
|
+
parent,
|
|
366
457
|
typeScriptConfigOptions,
|
|
367
458
|
withTerraform,
|
|
368
|
-
parent,
|
|
369
|
-
gitIgnoreOptions,
|
|
370
459
|
...options
|
|
371
460
|
}: ProjectOptions): ProjectOptions['gitIgnoreOptions'] =>
|
|
372
461
|
parent
|
package/src/lib/projenrc.ts
CHANGED
|
@@ -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
|
)
|