@storm-software/workspace-tools 1.202.0 → 1.203.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.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## 1.203.0 (2024-12-19)
2
+
3
+ ### Features
4
+
5
+ - **workspace-tools:** Update TypeScript library generators to use `unbuild`
6
+ executor
7
+ ([29468243](https://github.com/storm-software/storm-ops/commit/29468243))
8
+
9
+ ## 1.202.1 (2024-12-19)
10
+
11
+ ### Bug Fixes
12
+
13
+ - **workspace-tools:** Resolved issue with TypeScript library generator
14
+ ([f1968e8d](https://github.com/storm-software/storm-ops/commit/f1968e8d))
15
+
1
16
  ## 1.202.0 (2024-12-18)
2
17
 
3
18
  ### Features
package/declarations.d.ts CHANGED
@@ -194,12 +194,20 @@ declare function typeScriptLibraryGeneratorFn(
194
194
  ): Promise<any>;
195
195
  export { typeScriptLibraryGeneratorFn };
196
196
 
197
- export type ProjectTagVariant = "language" | "type" | "dist-style" | "provider";
197
+ export type ProjectTagVariant =
198
+ | "language"
199
+ | "type"
200
+ | "dist-style"
201
+ | "provider"
202
+ | "platform"
203
+ | "registry";
198
204
  export const ProjectTagVariant = {
199
205
  LANGUAGE: "language" as ProjectTagVariant,
200
206
  TYPE: "type" as ProjectTagVariant,
201
207
  DIST_STYLE: "dist-style" as ProjectTagVariant,
202
- PROVIDER: "provider" as ProjectTagVariant
208
+ PROVIDER: "provider" as ProjectTagVariant,
209
+ PLATFORM: "platform" as ProjectTagVariant,
210
+ REGISTRY: "registry" as ProjectTagVariant
203
211
  };
204
212
 
205
213
  export type ProjectTagLanguageValue = "typescript" | "rust";
@@ -220,6 +228,14 @@ export const ProjectTagDistStyleValue = {
220
228
  CLEAN: "clean" as ProjectTagDistStyleValue
221
229
  };
222
230
 
231
+ export type ProjectTagPlatformValue = "node" | "browser" | "neutral" | "worker";
232
+ export const ProjectTagPlatformValue = {
233
+ NODE: "node" as ProjectTagPlatformValue,
234
+ BROWSER: "browser" as ProjectTagPlatformValue,
235
+ NEUTRAL: "neutral" as ProjectTagPlatformValue,
236
+ WORKER: "worker" as ProjectTagPlatformValue
237
+ };
238
+
223
239
  export type ProjectTagRegistryValue = "cargo" | "npm" | "container" | "cyclone";
224
240
  export const ProjectTagRegistryValue = {
225
241
  CARGO: "cargo" as ProjectTagRegistryValue,
package/index.js CHANGED
@@ -220722,7 +220722,6 @@ __export(workspace_tools_exports, {
220722
220722
  ProjectTagConstants: () => ProjectTagConstants,
220723
220723
  YARN_LOCK_FILE: () => YARN_LOCK_FILE,
220724
220724
  YARN_LOCK_PATH: () => YARN_LOCK_PATH,
220725
- addLint: () => addLint,
220726
220725
  addProjectTag: () => addProjectTag,
220727
220726
  applyWorkspaceExecutorTokens: () => applyWorkspaceExecutorTokens,
220728
220727
  buildCargoCommand: () => buildCargoCommand,
@@ -221088,6 +221087,91 @@ var import_js = require("@nx/js");
221088
221087
  var import_init = __toESM(require("@nx/js/src/generators/init/init"));
221089
221088
  var import_generator = __toESM(require("@nx/js/src/generators/setup-verdaccio/generator"));
221090
221089
 
221090
+ // packages/workspace-tools/src/utils/project-tags.ts
221091
+ var ProjectTagConstants = {
221092
+ Language: {
221093
+ TAG_ID: "language",
221094
+ TYPESCRIPT: "typescript",
221095
+ RUST: "rust"
221096
+ },
221097
+ ProjectType: {
221098
+ TAG_ID: "type",
221099
+ LIBRARY: "library",
221100
+ APPLICATION: "application"
221101
+ },
221102
+ DistStyle: {
221103
+ TAG_ID: "dist-style",
221104
+ NORMAL: "normal",
221105
+ CLEAN: "clean"
221106
+ },
221107
+ Provider: {
221108
+ TAG_ID: "provider"
221109
+ },
221110
+ Platform: {
221111
+ TAG_ID: "platform",
221112
+ NODE: "node",
221113
+ BROWSER: "browser",
221114
+ NEUTRAL: "neutral",
221115
+ WORKER: "worker"
221116
+ },
221117
+ Registry: {
221118
+ TAG_ID: "registry",
221119
+ CARGO: "cargo",
221120
+ NPM: "npm",
221121
+ CONTAINER: "container",
221122
+ CYCLONE: "cyclone"
221123
+ }
221124
+ };
221125
+ var formatProjectTag = (variant, value2) => {
221126
+ return `${variant}:${value2}`;
221127
+ };
221128
+ var hasProjectTag = (project, variant) => {
221129
+ project.tags = project.tags ?? [];
221130
+ const prefix = formatProjectTag(variant, "");
221131
+ return project.tags.some(
221132
+ (tag) => tag.startsWith(prefix) && tag.length > prefix.length
221133
+ );
221134
+ };
221135
+ var getProjectTag = (project, variant) => {
221136
+ if (!hasProjectTag(project, variant)) {
221137
+ return void 0;
221138
+ }
221139
+ project.tags = project.tags ?? [];
221140
+ const prefix = formatProjectTag(variant, "");
221141
+ const tag = project.tags.find((tag2) => tag2.startsWith(prefix));
221142
+ return tag?.replace(prefix, "");
221143
+ };
221144
+ var isEqualProjectTag = (project, variant, value2) => {
221145
+ const tag = getProjectTag(project, variant);
221146
+ return !!(tag && tag?.toUpperCase() === value2.toUpperCase());
221147
+ };
221148
+ var addProjectTag = (project, variant, value2, options = {
221149
+ overwrite: false
221150
+ }) => {
221151
+ project.tags = project.tags ?? [];
221152
+ if (options.overwrite || !hasProjectTag(project, variant)) {
221153
+ project.tags = project.tags.filter(
221154
+ (tag) => !tag.startsWith(formatProjectTag(variant, ""))
221155
+ );
221156
+ project.tags.push(formatProjectTag(variant, value2));
221157
+ }
221158
+ };
221159
+ var setDefaultProjectTags = (project) => {
221160
+ project.tags = project.tags ?? [];
221161
+ addProjectTag(
221162
+ project,
221163
+ ProjectTagConstants.ProjectType.TAG_ID,
221164
+ project.projectType === "application" ? ProjectTagConstants.ProjectType.APPLICATION : ProjectTagConstants.ProjectType.LIBRARY,
221165
+ { overwrite: true }
221166
+ );
221167
+ addProjectTag(
221168
+ project,
221169
+ ProjectTagConstants.DistStyle.TAG_ID,
221170
+ project.targets && Object.keys(project.targets).includes("clean-package") ? ProjectTagConstants.DistStyle.CLEAN : ProjectTagConstants.DistStyle.NORMAL,
221171
+ { overwrite: true }
221172
+ );
221173
+ };
221174
+
221091
221175
  // packages/workspace-tools/src/utils/versions.ts
221092
221176
  var tsupVersion = "^7.2.0";
221093
221177
  var prettierPackageJsonVersion = "2.4.6";
@@ -221146,6 +221230,7 @@ async function typeScriptLibraryGeneratorFn(tree, schema) {
221146
221230
  tsConfig: (0, import_devkit.joinPathFragments)(options.projectRoot, "tsconfig.json"),
221147
221231
  project: (0, import_devkit.joinPathFragments)(options.projectRoot, "package.json"),
221148
221232
  defaultConfiguration: "production",
221233
+ platform: "neutral",
221149
221234
  assets: [
221150
221235
  {
221151
221236
  input: options.projectRoot,
@@ -221169,21 +221254,25 @@ async function typeScriptLibraryGeneratorFn(tree, schema) {
221169
221254
  verbose: true
221170
221255
  }
221171
221256
  }
221172
- },
221173
- lint: {},
221174
- test: {}
221257
+ }
221175
221258
  }
221176
221259
  };
221177
- if (schema.platform && projectConfig?.targets?.build) {
221260
+ if (schema.platform) {
221178
221261
  projectConfig.targets.build.options.platform = schema.platform;
221179
221262
  }
221263
+ addProjectTag(
221264
+ projectConfig,
221265
+ ProjectTagConstants.Platform.TAG_ID,
221266
+ projectConfig.targets.build.options.platform === "node" ? ProjectTagConstants.Platform.NODE : projectConfig.targets.build.options.platform === "worker" ? ProjectTagConstants.Platform.WORKER : projectConfig.targets.build.options.platform === "browser" ? ProjectTagConstants.Platform.BROWSER : ProjectTagConstants.Platform.NEUTRAL,
221267
+ { overwrite: true }
221268
+ );
221180
221269
  createProjectTsConfigJson(tree, options);
221181
221270
  (0, import_devkit.addProjectConfiguration)(tree, options.name, projectConfig);
221182
221271
  let repository = {
221183
221272
  type: "github",
221184
221273
  url: "https://github.com/storm-software/storm-stack.git"
221185
221274
  };
221186
- let description = schema.description ?? "\u26A1 A Storm package used to create modern, scalable web applications.";
221275
+ let description = schema.description ?? "A package developed by Storm Software used to create modern, scalable web applications.";
221187
221276
  if (tree.exists("package.json")) {
221188
221277
  const packageJson = (0, import_devkit.readJson)(tree, "package.json");
221189
221278
  if (packageJson?.repository) {
@@ -221292,96 +221381,9 @@ async function typeScriptLibraryGeneratorFn(tree, schema) {
221292
221381
  exclude: ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
221293
221382
  });
221294
221383
  }
221295
- const lintCallback = await addLint(tree, options);
221296
- tasks.push(lintCallback);
221297
221384
  await (0, import_devkit.formatFiles)(tree);
221298
221385
  return null;
221299
221386
  }
221300
- async function addLint(tree, options) {
221301
- const { lintProjectGenerator } = (0, import_devkit.ensurePackage)("@nx/eslint", nxVersion);
221302
- const { mapLintPattern } = (
221303
- // eslint-disable-next-line @typescript-eslint/no-var-requires
221304
- require("@nx/eslint/src/generators/lint-project/lint-project")
221305
- );
221306
- const projectConfiguration = (0, import_devkit.readProjectConfiguration)(tree, options.name);
221307
- const task = lintProjectGenerator(tree, {
221308
- project: options.name,
221309
- linter: options.linter,
221310
- skipFormat: true,
221311
- tsConfigPaths: [(0, import_devkit.joinPathFragments)(options.projectRoot, "tsconfig.json")],
221312
- unitTestRunner: options.unitTestRunner,
221313
- eslintFilePatterns: [
221314
- mapLintPattern(
221315
- options.projectRoot,
221316
- options.js ? "js" : "ts",
221317
- options.rootProject
221318
- )
221319
- ],
221320
- setParserOptionsProject: options.setParserOptionsProject,
221321
- rootProject: options.rootProject
221322
- });
221323
- const {
221324
- addOverrideToLintConfig,
221325
- lintConfigHasOverride,
221326
- isEslintConfigSupported,
221327
- updateOverrideInLintConfig
221328
- // eslint-disable-next-line @typescript-eslint/no-var-requires
221329
- } = require("@nx/eslint/src/generators/utils/eslint-file");
221330
- if (!isEslintConfigSupported(tree)) {
221331
- return task;
221332
- }
221333
- addOverrideToLintConfig(tree, "", {
221334
- files: ["*.json"],
221335
- parser: "jsonc-eslint-parser",
221336
- rules: {
221337
- "@nx/dependency-checks": [
221338
- "error",
221339
- {
221340
- "buildTargets": ["build"],
221341
- "ignoredFiles": [
221342
- "{projectRoot}/esbuild.config.{js,ts,mjs,mts}",
221343
- "{projectRoot}/jest.config.ts"
221344
- ],
221345
- "checkMissingDependencies": true,
221346
- "checkObsoleteDependencies": true,
221347
- "checkVersionMismatches": false
221348
- }
221349
- ]
221350
- }
221351
- });
221352
- if (lintConfigHasOverride(
221353
- tree,
221354
- projectConfiguration.root,
221355
- (o) => Array.isArray(o.files) ? o.files.some((f2) => f2.match(/\.json$/)) : !!o.files?.match(/\.json$/),
221356
- true
221357
- )) {
221358
- updateOverrideInLintConfig(
221359
- tree,
221360
- projectConfiguration.root,
221361
- (o) => o.rules?.["@nx/dependency-checks"],
221362
- (o) => {
221363
- const value2 = o.rules["@nx/dependency-checks"];
221364
- let ruleSeverity;
221365
- let ruleOptions;
221366
- if (Array.isArray(value2)) {
221367
- ruleSeverity = value2[0];
221368
- ruleOptions = value2[1];
221369
- } else {
221370
- ruleSeverity = value2 ?? "error";
221371
- ruleOptions = {};
221372
- }
221373
- if (options.bundler === "esbuild") {
221374
- ruleOptions.ignoredFiles = [
221375
- "{projectRoot}/esbuild.config.{js,ts,mjs,mts}"
221376
- ];
221377
- o.rules["@nx/dependency-checks"] = [ruleSeverity, ruleOptions];
221378
- }
221379
- return o;
221380
- }
221381
- );
221382
- }
221383
- return task;
221384
- }
221385
221387
  function getOutputPath(options) {
221386
221388
  const parts = ["dist"];
221387
221389
  if (options.projectRoot === ".") {
@@ -235642,7 +235644,7 @@ async function nodeLibraryGeneratorFn(tree, schema) {
235642
235644
  devDependencies: {
235643
235645
  "@types/node": typesNodeVersion
235644
235646
  },
235645
- buildExecutor: "@storm-software/workspace-tools:tsup-node"
235647
+ buildExecutor: "@storm-software/workspace-tools:unbuild"
235646
235648
  };
235647
235649
  const options = await normalizeOptions(tree, tsLibraryGeneratorOptions);
235648
235650
  const { className, name, propertyName } = (0, import_devkit11.names)(
@@ -236960,86 +236962,6 @@ function isPostInstallProcess() {
236960
236962
  // packages/workspace-tools/src/utils/package-helpers.ts
236961
236963
  var import_devkit16 = require("@nx/devkit");
236962
236964
  var import_node_fs20 = require("node:fs");
236963
-
236964
- // packages/workspace-tools/src/utils/project-tags.ts
236965
- var ProjectTagConstants = {
236966
- Language: {
236967
- TAG_ID: "language",
236968
- TYPESCRIPT: "typescript",
236969
- RUST: "rust"
236970
- },
236971
- ProjectType: {
236972
- TAG_ID: "type",
236973
- LIBRARY: "library",
236974
- APPLICATION: "application"
236975
- },
236976
- DistStyle: {
236977
- TAG_ID: "dist-style",
236978
- NORMAL: "normal",
236979
- CLEAN: "clean"
236980
- },
236981
- Provider: {
236982
- TAG_ID: "provider"
236983
- },
236984
- Registry: {
236985
- TAG_ID: "registry",
236986
- CARGO: "cargo",
236987
- NPM: "npm",
236988
- CONTAINER: "container",
236989
- CYCLONE: "cyclone"
236990
- }
236991
- };
236992
- var formatProjectTag = (variant, value2) => {
236993
- return `${variant}:${value2}`;
236994
- };
236995
- var hasProjectTag = (project, variant) => {
236996
- project.tags = project.tags ?? [];
236997
- const prefix = formatProjectTag(variant, "");
236998
- return project.tags.some(
236999
- (tag) => tag.startsWith(prefix) && tag.length > prefix.length
237000
- );
237001
- };
237002
- var getProjectTag = (project, variant) => {
237003
- if (!hasProjectTag(project, variant)) {
237004
- return void 0;
237005
- }
237006
- project.tags = project.tags ?? [];
237007
- const prefix = formatProjectTag(variant, "");
237008
- const tag = project.tags.find((tag2) => tag2.startsWith(prefix));
237009
- return tag?.replace(prefix, "");
237010
- };
237011
- var isEqualProjectTag = (project, variant, value2) => {
237012
- const tag = getProjectTag(project, variant);
237013
- return !!(tag && tag?.toUpperCase() === value2.toUpperCase());
237014
- };
237015
- var addProjectTag = (project, variant, value2, options = {
237016
- overwrite: false
237017
- }) => {
237018
- project.tags = project.tags ?? [];
237019
- if (options.overwrite || !hasProjectTag(project, variant)) {
237020
- project.tags = project.tags.filter(
237021
- (tag) => !tag.startsWith(formatProjectTag(variant, ""))
237022
- );
237023
- project.tags.push(formatProjectTag(variant, value2));
237024
- }
237025
- };
237026
- var setDefaultProjectTags = (project) => {
237027
- project.tags = project.tags ?? [];
237028
- addProjectTag(
237029
- project,
237030
- ProjectTagConstants.ProjectType.TAG_ID,
237031
- project.projectType === "application" ? ProjectTagConstants.ProjectType.APPLICATION : ProjectTagConstants.ProjectType.LIBRARY,
237032
- { overwrite: true }
237033
- );
237034
- addProjectTag(
237035
- project,
237036
- ProjectTagConstants.DistStyle.TAG_ID,
237037
- project.targets && Object.keys(project.targets).includes("clean-package") ? ProjectTagConstants.DistStyle.CLEAN : ProjectTagConstants.DistStyle.NORMAL,
237038
- { overwrite: true }
237039
- );
237040
- };
237041
-
237042
- // packages/workspace-tools/src/utils/package-helpers.ts
237043
236965
  var PackageManagerTypes = {
237044
236966
  PackageJson: "package.json",
237045
236967
  CargoToml: "Cargo.toml"
@@ -237086,7 +237008,6 @@ var getTypiaTransform = (program3, diagnostics) => (0, import_transform.default)
237086
237008
  ProjectTagConstants,
237087
237009
  YARN_LOCK_FILE,
237088
237010
  YARN_LOCK_PATH,
237089
- addLint,
237090
237011
  addProjectTag,
237091
237012
  applyWorkspaceExecutorTokens,
237092
237013
  buildCargoCommand,