@codedrifters/configulator 0.0.241 → 0.0.243

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/lib/index.mjs CHANGED
@@ -15551,27 +15551,6 @@ var JsiiFaker = class _JsiiFaker extends Component12 {
15551
15551
  // src/projects/astro-project.ts
15552
15552
  import { SampleFile } from "projen";
15553
15553
 
15554
- // src/projects/typescript-project.ts
15555
- import { typescript } from "projen";
15556
- import {
15557
- NodePackageManager as NodePackageManager2,
15558
- Transform,
15559
- UpgradeDependenciesSchedule as UpgradeDependenciesSchedule2
15560
- } from "projen/lib/javascript";
15561
- import { ReleaseTrigger } from "projen/lib/release";
15562
- import { merge as merge2 } from "ts-deepmerge";
15563
-
15564
- // src/projects/monorepo-project.ts
15565
- import { WorkflowSteps } from "projen/lib/github";
15566
- import {
15567
- NodePackageManager,
15568
- UpgradeDependenciesSchedule
15569
- } from "projen/lib/javascript";
15570
- import {
15571
- TypeScriptAppProject
15572
- } from "projen/lib/typescript";
15573
- import { merge } from "ts-deepmerge";
15574
-
15575
15554
  // src/projects/monorepo-layout.ts
15576
15555
  var MONOREPO_LAYOUT = {
15577
15556
  DOCS: "docs",
@@ -15643,6 +15622,67 @@ function relativeOutdir(rootOutdir, subOutdir) {
15643
15622
  return subOutdir;
15644
15623
  }
15645
15624
 
15625
+ // src/projects/resolve-outdir.ts
15626
+ function parseScopedName(input) {
15627
+ if (!input.startsWith("@")) {
15628
+ return void 0;
15629
+ }
15630
+ const slashIndex = input.indexOf("/");
15631
+ if (slashIndex < 2) {
15632
+ return void 0;
15633
+ }
15634
+ const scope = input.slice(0, slashIndex);
15635
+ const name = input.slice(slashIndex + 1);
15636
+ if (name.length === 0 || name.includes("/")) {
15637
+ return void 0;
15638
+ }
15639
+ return { scope, name };
15640
+ }
15641
+ function resolveOutdirFromPackageName(packageName, root) {
15642
+ if (packageName === void 0 || packageName.length === 0) {
15643
+ throw new Error(
15644
+ "Cannot derive outdir: packageName (or name) is required when outdir is omitted. Either pass a scoped `packageName` / `name` like `@scope/foo`, or set `outdir` explicitly."
15645
+ );
15646
+ }
15647
+ const parsed = parseScopedName(packageName);
15648
+ if (parsed === void 0) {
15649
+ throw new Error(
15650
+ `Cannot derive outdir from unscoped packageName "${packageName}". Either use a scoped name like \`@scope/foo\`, or set \`outdir\` explicitly. Configulator places sub-projects at "${root}/<scope>/<name>".`
15651
+ );
15652
+ }
15653
+ return `${root}/${parsed.scope}/${parsed.name}`;
15654
+ }
15655
+ function resolveTypeScriptProjectOutdir(packageName) {
15656
+ return resolveOutdirFromPackageName(packageName, MONOREPO_LAYOUT.PACKAGES);
15657
+ }
15658
+ function resolveAwsCdkProjectOutdir(packageName) {
15659
+ return resolveOutdirFromPackageName(packageName, MONOREPO_LAYOUT.APPS);
15660
+ }
15661
+ function resolveAstroProjectOutdir(packageName) {
15662
+ return resolveOutdirFromPackageName(packageName, MONOREPO_LAYOUT.SITES);
15663
+ }
15664
+
15665
+ // src/projects/typescript-project.ts
15666
+ import { typescript } from "projen";
15667
+ import {
15668
+ NodePackageManager as NodePackageManager2,
15669
+ Transform,
15670
+ UpgradeDependenciesSchedule as UpgradeDependenciesSchedule2
15671
+ } from "projen/lib/javascript";
15672
+ import { ReleaseTrigger } from "projen/lib/release";
15673
+ import { merge as merge2 } from "ts-deepmerge";
15674
+
15675
+ // src/projects/monorepo-project.ts
15676
+ import { WorkflowSteps } from "projen/lib/github";
15677
+ import {
15678
+ NodePackageManager,
15679
+ UpgradeDependenciesSchedule
15680
+ } from "projen/lib/javascript";
15681
+ import {
15682
+ TypeScriptAppProject
15683
+ } from "projen/lib/typescript";
15684
+ import { merge } from "ts-deepmerge";
15685
+
15646
15686
  // src/tasks/reset-task.ts
15647
15687
  import { Component as Component13 } from "projen";
15648
15688
  var ResetTask = class _ResetTask extends Component13 {
@@ -16418,40 +16458,6 @@ var MonorepoProject = class extends TypeScriptAppProject {
16418
16458
  }
16419
16459
  };
16420
16460
 
16421
- // src/projects/resolve-outdir.ts
16422
- function parseScopedName(input) {
16423
- if (!input.startsWith("@")) {
16424
- return void 0;
16425
- }
16426
- const slashIndex = input.indexOf("/");
16427
- if (slashIndex < 2) {
16428
- return void 0;
16429
- }
16430
- const scope = input.slice(0, slashIndex);
16431
- const name = input.slice(slashIndex + 1);
16432
- if (name.length === 0 || name.includes("/")) {
16433
- return void 0;
16434
- }
16435
- return { scope, name };
16436
- }
16437
- function resolveOutdirFromPackageName(packageName, root) {
16438
- if (packageName === void 0 || packageName.length === 0) {
16439
- throw new Error(
16440
- "Cannot derive outdir: packageName (or name) is required when outdir is omitted. Either pass a scoped `packageName` / `name` like `@scope/foo`, or set `outdir` explicitly."
16441
- );
16442
- }
16443
- const parsed = parseScopedName(packageName);
16444
- if (parsed === void 0) {
16445
- throw new Error(
16446
- `Cannot derive outdir from unscoped packageName "${packageName}". Either use a scoped name like \`@scope/foo\`, or set \`outdir\` explicitly. Configulator places sub-projects at "${root}/<scope>/<name>".`
16447
- );
16448
- }
16449
- return `${root}/${parsed.scope}/${parsed.name}`;
16450
- }
16451
- function resolveTypeScriptProjectOutdir(packageName) {
16452
- return resolveOutdirFromPackageName(packageName, MONOREPO_LAYOUT.PACKAGES);
16453
- }
16454
-
16455
16461
  // src/projects/typescript-project.ts
16456
16462
  var TestRunner = {
16457
16463
  JEST: "jest",
@@ -16638,9 +16644,11 @@ var TypeScriptProject = class extends typescript.TypeScriptProject {
16638
16644
  // src/projects/astro-project.ts
16639
16645
  var AstroProject = class extends TypeScriptProject {
16640
16646
  constructor(userOptions) {
16647
+ const resolvedOutdir = userOptions.outdir ?? resolveAstroProjectOutdir(userOptions.packageName ?? userOptions.name);
16641
16648
  const options = {
16642
16649
  testRunner: TestRunner.VITEST,
16643
16650
  ...userOptions,
16651
+ outdir: resolvedOutdir,
16644
16652
  depsUpgradeOptions: {
16645
16653
  ...userOptions.depsUpgradeOptions,
16646
16654
  exclude: [...userOptions.depsUpgradeOptions?.exclude ?? [], "astro"]
@@ -17233,10 +17241,17 @@ var AwsCdkProject = class extends awscdk.AwsCdkTypeScriptApp {
17233
17241
  const parent = userOptions.parent;
17234
17242
  const pnpmVersion = parent.pnpmVersion;
17235
17243
  const pnpmWorkspace = PnpmWorkspace.of(parent);
17244
+ const resolvedOutdir = userOptions.outdir ?? resolveAwsCdkProjectOutdir(userOptions.packageName ?? userOptions.name);
17236
17245
  const testRunner = userOptions.testRunner ?? TestRunner.JEST;
17237
17246
  const useJest = testRunner === TestRunner.JEST;
17238
17247
  const defaultOptions = {
17239
17248
  defaultReleaseBranch: "main",
17249
+ /**
17250
+ * Outdir defaults to `apps/<scope>/<name>` when the caller omits
17251
+ * it. Explicit overrides in `userOptions` always win via the
17252
+ * merge below.
17253
+ */
17254
+ outdir: resolvedOutdir,
17240
17255
  /**
17241
17256
  * Enable reset task by default.
17242
17257
  */
@@ -17306,10 +17321,7 @@ var AwsCdkProject = class extends awscdk.AwsCdkTypeScriptApp {
17306
17321
  * Only release when the package source content or package.json changes.
17307
17322
  */
17308
17323
  releaseTrigger: ReleaseTrigger2.continuous({
17309
- paths: [
17310
- `${userOptions.outdir}/src/**`,
17311
- `${userOptions.outdir}/package.json`
17312
- ]
17324
+ paths: [`${resolvedOutdir}/src/**`, `${resolvedOutdir}/package.json`]
17313
17325
  })
17314
17326
  };
17315
17327
  const options = merge3(defaultOptions, userOptions);
@@ -17599,6 +17611,8 @@ export {
17599
17611
  requirementsReviewerBundle,
17600
17612
  requirementsWriterBundle,
17601
17613
  researchPipelineBundle,
17614
+ resolveAstroProjectOutdir,
17615
+ resolveAwsCdkProjectOutdir,
17602
17616
  resolveModelAlias,
17603
17617
  resolveOutdirFromPackageName,
17604
17618
  resolveTemplateVariables,