@postxl/generator 1.0.8 → 1.0.11

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.
@@ -1,4 +1,14 @@
1
- import { BackendModuleName, PackageName } from './branded.types';
1
+ import { PackageName } from './branded.types';
2
+ /**
3
+ * Hardcoded pnpm version used across all generated projects.
4
+ * Update this when upgrading pnpm.
5
+ */
6
+ export declare const PNPM_VERSION = "10.27.0";
7
+ /**
8
+ * Hardcoded Node.js version used across all generated projects.
9
+ * Update this when upgrading Node.js.
10
+ */
11
+ export declare const NODE_VERSION = "24.12.0";
2
12
  export type PackageJsonConfig = {
3
13
  /**
4
14
  * Name of the package. Should contain `@postxl/` prefix.
@@ -31,26 +41,23 @@ export type PackageJsonConfig = {
31
41
  */
32
42
  type?: 'module' | 'commonjs';
33
43
  /**
34
- * The package manager used in the project.
44
+ * Indicates whether the package is part of a PostXL workspace.
45
+ *
46
+ * If not, workspace dependencies will be replaced with latest published versions.
35
47
  */
36
- packageManager?: string;
48
+ isInPostXlWorkspace?: boolean;
37
49
  };
38
- export type PackageDependency = PackageDependency_Workspace | PackageDependency_Package | PackageDependency_LocalProject;
50
+ export type PackageDependency = PackageDependency_Workspace | PackageDependency_Package;
39
51
  export type PackageDependency_Workspace = {
40
52
  packageName: PackageName;
41
53
  };
54
+ export declare function isPostXlWorkspacePackageName(packageName: PackageDependency): packageName is PackageDependency_Workspace;
42
55
  export type PackageDependency_Package = {
43
56
  packageName: string;
44
57
  version: string;
45
58
  };
46
- export type PackageDependency_LocalProject = {
47
- packageName: PackageName;
48
- backendModuleName: BackendModuleName;
49
- path: string;
50
- };
51
- export declare function isLocalProjectDependency(dependency: PackageDependency): dependency is PackageDependency_LocalProject;
52
59
  export type PackageScript = {
53
60
  name: string;
54
61
  command: string;
55
62
  };
56
- export declare function generatePackageJson({ dependencies, devDependencies, scripts, name, description, type: pType, packageManager, }: PackageJsonConfig): string;
63
+ export declare function generatePackageJson({ dependencies, devDependencies, scripts, name, description, type: pType, isInPostXlWorkspace, }: PackageJsonConfig): string;
@@ -1,11 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isLocalProjectDependency = isLocalProjectDependency;
3
+ exports.NODE_VERSION = exports.PNPM_VERSION = void 0;
4
+ exports.isPostXlWorkspacePackageName = isPostXlWorkspacePackageName;
4
5
  exports.generatePackageJson = generatePackageJson;
5
- function isLocalProjectDependency(dependency) {
6
- return 'path' in dependency;
6
+ /**
7
+ * Hardcoded pnpm version used across all generated projects.
8
+ * Update this when upgrading pnpm.
9
+ */
10
+ exports.PNPM_VERSION = '10.27.0';
11
+ /**
12
+ * Hardcoded Node.js version used across all generated projects.
13
+ * Update this when upgrading Node.js.
14
+ */
15
+ exports.NODE_VERSION = '24.12.0';
16
+ function isPostXlWorkspacePackageName(packageName) {
17
+ return !('version' in packageName) && packageName.packageName.startsWith('@postxl/');
7
18
  }
8
- function generatePackageJson({ dependencies, devDependencies, scripts, name, description, type: pType, packageManager, }) {
19
+ function generatePackageJson({ dependencies, devDependencies, scripts, name, description, type: pType, isInPostXlWorkspace, }) {
9
20
  return JSON.stringify({
10
21
  name,
11
22
  version: '0.0.0',
@@ -16,21 +27,25 @@ function generatePackageJson({ dependencies, devDependencies, scripts, name, des
16
27
  scripts: scripts
17
28
  .toSorted((a, b) => a.name.localeCompare(b.name))
18
29
  .reduce((acc, script) => ({ ...acc, [script.name]: script.command }), {}),
19
- packageManager,
30
+ packageManager: `pnpm@${exports.PNPM_VERSION}`,
31
+ devEngines: { runtime: { name: 'node', version: exports.NODE_VERSION, onFail: 'download' } },
20
32
  dependencies: dependencies
21
- .map(toDependency_Package)
33
+ .map((dependency) => toDependency_Package({ dependency, isInPostXlWorkspace }))
22
34
  .toSorted((a, b) => a.packageName.localeCompare(b.packageName))
23
35
  .reduce((acc, dep) => ({ ...acc, [dep.packageName]: dep.version }), {}),
24
36
  devDependencies: devDependencies
25
- .map(toDependency_Package)
37
+ .map((dependency) => toDependency_Package({ dependency, isInPostXlWorkspace }))
26
38
  .toSorted((a, b) => a.packageName.localeCompare(b.packageName))
27
39
  .reduce((acc, dep) => ({ ...acc, [dep.packageName]: dep.version }), {}),
28
40
  license: 'UNLICENSED',
29
41
  });
30
42
  }
31
- function toDependency_Package(dependency) {
43
+ function toDependency_Package({ dependency, isInPostXlWorkspace, }) {
32
44
  if ('version' in dependency) {
33
45
  return dependency;
34
46
  }
47
+ if (!isInPostXlWorkspace) {
48
+ return { packageName: dependency.packageName, version: 'latest' };
49
+ }
35
50
  return { packageName: dependency.packageName, version: 'workspace:^' };
36
51
  }
@@ -67,7 +67,6 @@ exports.textExtensions = [
67
67
  '.toml',
68
68
  '.xml',
69
69
  '.svg',
70
- '.nvmrc',
71
70
  '.npmignore',
72
71
  '.gitignore',
73
72
  '.sql',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@postxl/generator",
3
- "version": "1.0.8",
3
+ "version": "1.0.11",
4
4
  "description": "Core package that orchestrates the code generation of a PXL project",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -38,6 +38,8 @@
38
38
  "directory": "packages/generator"
39
39
  },
40
40
  "dependencies": {
41
+ "@typescript-eslint/eslint-plugin": "8.46.3",
42
+ "prettier": "3.7.4",
41
43
  "diff": "8.0.2",
42
44
  "globals": "16.5.0",
43
45
  "isbinaryfile": "5.0.2",