@o3r/create 10.1.0-prerelease.26 → 10.1.0-prerelease.27

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.
Files changed (3) hide show
  1. package/README.md +1 -0
  2. package/index.js +24 -2
  3. package/package.json +6 -6
package/README.md CHANGED
@@ -34,3 +34,4 @@ The generator accepts all the configurations from Angular `ng new` command, find
34
34
  On top of them, the following options can be provided to the initializer:
35
35
 
36
36
  - `--yarn-version` : specify the version of yarn to use (default: `latest`)
37
+ - `--exact-o3r-version` : use a pinned version for [otter packages](https://github.com/AmadeusITGroup/otter/blob/main/docs/README.md).
package/index.js CHANGED
@@ -88,6 +88,7 @@ if (packageManagerEnv && ['npm', 'yarn'].includes(packageManagerEnv)) {
88
88
  defaultPackageManager = packageManagerEnv;
89
89
  }
90
90
  const packageManager = argv['package-manager'] || defaultPackageManager;
91
+ const exactO3rVersion = !!argv['exact-o3r-version'];
91
92
  if (argv._.length === 0) {
92
93
  // eslint-disable-next-line no-console
93
94
  console.error('The project name is mandatory');
@@ -149,6 +150,22 @@ const prepareWorkspace = (relativeDirectory = '.', projectPackageManager = 'npm'
149
150
  mandatoryDependencies.forEach((dep) => {
150
151
  packageJson.devDependencies[dep] = dependencies?.[dep] || devDependencies?.[dep] || 'latest';
151
152
  });
153
+ if (exactO3rVersion) {
154
+ const o3rPackages = ['@o3r/core', '@o3r/schematics', '@o3r/workspace'];
155
+ const resolutions = {};
156
+ o3rPackages.forEach((pkg) => {
157
+ if (packageJson.devDependencies?.[pkg]) {
158
+ packageJson.devDependencies[pkg] = version;
159
+ }
160
+ resolutions[pkg] = version;
161
+ });
162
+ if (projectPackageManager === 'yarn') {
163
+ packageJson.resolutions = resolutions;
164
+ }
165
+ else {
166
+ packageJson.overrides = resolutions;
167
+ }
168
+ }
152
169
  (0, node_fs_1.writeFileSync)(packageJsonPath, JSON.stringify(packageJson, null, 2));
153
170
  if (projectPackageManager === 'yarn') {
154
171
  exitProcessIfErrorInSpawnSync(2, (0, node_child_process_1.spawnSync)(runner, ['set', 'version', argv['yarn-version'] || 'stable'], {
@@ -166,9 +183,14 @@ const addOtterFramework = (relativeDirectory = '.', projectPackageManager = 'npm
166
183
  const runner = process.platform === 'win32' ? `${projectPackageManager}.cmd` : projectPackageManager;
167
184
  const options = schematicsCliOptions
168
185
  .flat();
169
- exitProcessIfErrorInSpawnSync(3, (0, node_child_process_1.spawnSync)(runner, ['exec', 'ng', 'add', `@o3r/core@~${version}`, ...(projectPackageManager === 'npm' ? ['--'] : []), ...options], {
186
+ exitProcessIfErrorInSpawnSync(3, (0, node_child_process_1.spawnSync)(runner, ['exec', 'ng', 'add', `@o3r/core@${exactO3rVersion ? '' : '~'}${version}`, ...(projectPackageManager === 'npm' ? ['--'] : []), ...options], {
170
187
  stdio: 'inherit',
171
- cwd
188
+ cwd,
189
+ env: exactO3rVersion && projectPackageManager === 'npm' ? {
190
+ ...process.env,
191
+ // eslint-disable-next-line @typescript-eslint/naming-convention, camelcase
192
+ NPM_CONFIG_SAVE_EXACT: 'true'
193
+ } : undefined
172
194
  }));
173
195
  };
174
196
  const projectFolder = argv._[0]?.replaceAll(' ', '-').toLowerCase() || '.';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o3r/create",
3
- "version": "10.1.0-prerelease.26",
3
+ "version": "10.1.0-prerelease.27",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -34,11 +34,11 @@
34
34
  "@nx/eslint-plugin": "~18.0.2",
35
35
  "@nx/jest": "~18.0.2",
36
36
  "@nx/js": "~18.0.2",
37
- "@o3r/build-helpers": "^10.1.0-prerelease.26",
38
- "@o3r/eslint-config-otter": "^10.1.0-prerelease.26",
39
- "@o3r/eslint-plugin": "^10.1.0-prerelease.26",
40
- "@o3r/schematics": "^10.1.0-prerelease.26",
41
- "@o3r/test-helpers": "^10.1.0-prerelease.26",
37
+ "@o3r/build-helpers": "^10.1.0-prerelease.27",
38
+ "@o3r/eslint-config-otter": "^10.1.0-prerelease.27",
39
+ "@o3r/eslint-plugin": "^10.1.0-prerelease.27",
40
+ "@o3r/schematics": "^10.1.0-prerelease.27",
41
+ "@o3r/test-helpers": "^10.1.0-prerelease.27",
42
42
  "@stylistic/eslint-plugin-ts": "^1.5.4",
43
43
  "@types/jest": "~29.5.2",
44
44
  "@types/minimist": "^1.2.2",