@storm-software/workspace-tools 1.273.0 → 1.273.2

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 (108) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +2 -1
  3. package/dist/{chunk-EHAI3NXN.mjs → chunk-6NLLGP7C.mjs} +1 -1
  4. package/dist/{chunk-XOKT6TQL.mjs → chunk-JHTHTSQS.mjs} +1 -1
  5. package/dist/{chunk-YTHGOOKO.mjs → chunk-JISERTNY.mjs} +1 -1
  6. package/dist/{chunk-33FZTHTK.mjs → chunk-KJPEFYZD.mjs} +1 -1
  7. package/dist/{chunk-IEZKYJSF.mjs → chunk-QYPOYIKU.mjs} +1 -1
  8. package/dist/{chunk-HLMSVHZY.mjs → chunk-VHIM4LJY.mjs} +1 -1
  9. package/dist/executors.mjs +2 -2
  10. package/dist/generators.mjs +5 -5
  11. package/dist/index.mjs +6 -6
  12. package/dist/src/base/base-executor.mjs +1 -1
  13. package/dist/src/base/base-executor.untyped.mjs +1 -1
  14. package/dist/src/base/base-generator.mjs +1 -1
  15. package/dist/src/base/base-generator.untyped.mjs +1 -1
  16. package/dist/src/base/cargo-base-executor.untyped.mjs +1 -1
  17. package/dist/src/base/index.mjs +1 -1
  18. package/dist/src/base/typescript-build-executor.untyped.mjs +1 -1
  19. package/dist/src/base/typescript-library-generator.untyped.mjs +1 -1
  20. package/dist/src/executors/cargo-build/executor.mjs +1 -1
  21. package/dist/src/executors/cargo-build/schema.d.ts +86 -0
  22. package/dist/src/executors/cargo-build/schema.json +85 -0
  23. package/dist/src/executors/cargo-build/untyped.mjs +1 -1
  24. package/dist/src/executors/cargo-check/executor.mjs +1 -1
  25. package/dist/src/executors/cargo-check/schema.d.ts +89 -0
  26. package/dist/src/executors/cargo-check/schema.json +88 -0
  27. package/dist/src/executors/cargo-check/untyped.mjs +1 -1
  28. package/dist/src/executors/cargo-clippy/executor.mjs +1 -1
  29. package/dist/src/executors/cargo-clippy/schema.d.ts +97 -0
  30. package/dist/src/executors/cargo-clippy/schema.json +94 -0
  31. package/dist/src/executors/cargo-clippy/untyped.mjs +1 -1
  32. package/dist/src/executors/cargo-doc/executor.mjs +1 -1
  33. package/dist/src/executors/cargo-doc/schema.d.ts +125 -0
  34. package/dist/src/executors/cargo-doc/schema.json +164 -0
  35. package/dist/src/executors/cargo-doc/untyped.mjs +1 -1
  36. package/dist/src/executors/cargo-format/executor.mjs +1 -1
  37. package/dist/src/executors/cargo-format/schema.d.ts +89 -0
  38. package/dist/src/executors/cargo-format/schema.json +88 -0
  39. package/dist/src/executors/cargo-format/untyped.mjs +1 -1
  40. package/dist/src/executors/cargo-publish/executor.mjs +1 -1
  41. package/dist/src/executors/cargo-publish/schema.d.ts +115 -0
  42. package/dist/src/executors/cargo-publish/schema.json +107 -0
  43. package/dist/src/executors/cargo-publish/untyped.mjs +1 -1
  44. package/dist/src/executors/clean-package/executor.mjs +1 -1
  45. package/dist/src/executors/clean-package/schema.d.ts +60 -0
  46. package/dist/src/executors/clean-package/schema.json +57 -0
  47. package/dist/src/executors/clean-package/untyped.mjs +1 -1
  48. package/dist/src/executors/esbuild/executor.mjs +2 -2
  49. package/dist/src/executors/esbuild/schema.d.ts +137 -0
  50. package/dist/src/executors/esbuild/schema.json +165 -0
  51. package/dist/src/executors/esbuild/untyped.mjs +1 -1
  52. package/dist/src/executors/npm-publish/executor.mjs +1 -1
  53. package/dist/src/executors/npm-publish/schema.d.ts +68 -0
  54. package/dist/src/executors/npm-publish/schema.json +61 -0
  55. package/dist/src/executors/npm-publish/untyped.mjs +1 -1
  56. package/dist/src/executors/size-limit/executor.mjs +1 -1
  57. package/dist/src/executors/size-limit/schema.d.ts +25 -0
  58. package/dist/src/executors/size-limit/schema.json +29 -0
  59. package/dist/src/executors/size-limit/untyped.mjs +1 -1
  60. package/dist/src/executors/typia/executor.mjs +1 -1
  61. package/dist/src/executors/typia/schema.d.ts +48 -0
  62. package/dist/src/executors/typia/schema.json +57 -0
  63. package/dist/src/executors/typia/untyped.mjs +1 -1
  64. package/dist/src/executors/unbuild/executor.mjs +1 -1
  65. package/dist/src/executors/unbuild/schema.d.ts +258 -0
  66. package/dist/src/executors/unbuild/schema.json +301 -0
  67. package/dist/src/executors/unbuild/untyped.mjs +1 -1
  68. package/dist/src/generators/browser-library/generator.mjs +2 -2
  69. package/dist/src/generators/browser-library/schema.json +117 -0
  70. package/dist/src/generators/browser-library/untyped.mjs +1 -1
  71. package/dist/src/generators/config-schema/generator.mjs +1 -1
  72. package/dist/src/generators/config-schema/schema.json +24 -0
  73. package/dist/src/generators/config-schema/untyped.mjs +1 -1
  74. package/dist/src/generators/init/init.mjs +1 -1
  75. package/dist/src/generators/init/schema.json +15 -0
  76. package/dist/src/generators/init/untyped.mjs +1 -1
  77. package/dist/src/generators/neutral-library/generator.mjs +2 -2
  78. package/dist/src/generators/neutral-library/schema.json +116 -0
  79. package/dist/src/generators/neutral-library/untyped.mjs +1 -1
  80. package/dist/src/generators/node-library/generator.mjs +2 -2
  81. package/dist/src/generators/node-library/schema.json +117 -0
  82. package/dist/src/generators/node-library/untyped.mjs +1 -1
  83. package/dist/src/generators/preset/generator.mjs +2 -2
  84. package/dist/src/generators/preset/schema.json +96 -0
  85. package/dist/src/generators/preset/untyped.mjs +1 -1
  86. package/dist/src/generators/release-version/generator.mjs +1 -1
  87. package/dist/src/generators/release-version/schema.json +158 -0
  88. package/dist/src/generators/release-version/untyped.mjs +1 -1
  89. package/dist/src/plugins/rust/cargo-toml.mjs +1 -1
  90. package/dist/src/plugins/rust/index.mjs +1 -1
  91. package/dist/src/plugins/typescript/index.mjs +1 -1
  92. package/dist/src/plugins/typescript/project-config.mjs +1 -1
  93. package/dist/src/plugins/typescript/tsup.mjs +1 -1
  94. package/dist/src/plugins/typescript/untyped-schema.mjs +1 -1
  95. package/dist/src/types.mjs +1 -1
  96. package/dist/src/utils/apply-workspace-tokens.mjs +1 -1
  97. package/dist/src/utils/cargo.mjs +1 -1
  98. package/dist/src/utils/create-cli-options.mjs +1 -1
  99. package/dist/src/utils/get-project-configurations.mjs +1 -1
  100. package/dist/src/utils/index.mjs +1 -1
  101. package/dist/src/utils/lock-file.mjs +1 -1
  102. package/dist/src/utils/package-helpers.mjs +1 -1
  103. package/dist/src/utils/plugin-helpers.mjs +1 -1
  104. package/dist/src/utils/pnpm-deps-update.mjs +1 -1
  105. package/dist/src/utils/project-tags.mjs +1 -1
  106. package/dist/src/utils/typia-transform.mjs +1 -1
  107. package/dist/src/utils/versions.mjs +1 -1
  108. package/package.json +4 -4
@@ -0,0 +1,89 @@
1
+
2
+ // Generated by @storm-software/untyped
3
+ // Do not edit this file directly
4
+
5
+ export interface CargoFormatExecutorSchema {
6
+ /**
7
+ * Output Path
8
+ *
9
+ * The output path for the build
10
+ *
11
+ * @default "dist/{projectRoot}"
12
+ *
13
+ * @format path
14
+ */
15
+ outputPath?: string,
16
+
17
+ /**
18
+ * Cargo.toml Path
19
+ *
20
+ * The path to the Cargo.toml file
21
+ *
22
+ * @default "{projectRoot}/Cargo.toml"
23
+ *
24
+ * @format path
25
+ */
26
+ package?: string,
27
+
28
+ /**
29
+ * Toolchain
30
+ *
31
+ * The type of toolchain to use for the build
32
+ *
33
+ * @default "stable"
34
+ *
35
+ * @enum stable,beta,nightly
36
+ */
37
+ toolchain?: string,
38
+
39
+ /**
40
+ * Target
41
+ *
42
+ * The target to build
43
+ *
44
+ */
45
+ target?: string,
46
+
47
+ /**
48
+ * All Targets
49
+ *
50
+ * Build all targets
51
+ *
52
+ */
53
+ allTargets?: boolean,
54
+
55
+ /**
56
+ * Profile
57
+ *
58
+ * The profile to build
59
+ *
60
+ */
61
+ profile?: string,
62
+
63
+ /**
64
+ * Release
65
+ *
66
+ * Build in release mode
67
+ *
68
+ */
69
+ release?: boolean,
70
+
71
+ /**
72
+ * Features
73
+ *
74
+ * The features to build
75
+ *
76
+ *
77
+ * @oneOf [object Object],[object Object]
78
+ */
79
+ features?: string,
80
+
81
+ /**
82
+ * All Features
83
+ *
84
+ * Build all features
85
+ *
86
+ */
87
+ allFeatures?: boolean,
88
+ }
89
+
@@ -0,0 +1,88 @@
1
+ {
2
+ "id": "#",
3
+ "title": "Cargo Format Executor",
4
+ "description": "A type definition for a Cargo/rust format executor schema",
5
+ "properties": {
6
+ "outputPath": {
7
+ "title": "Output Path",
8
+ "type": "string",
9
+ "format": "path",
10
+ "description": "The output path for the build",
11
+ "id": "#outputPath",
12
+ "default": "dist/{projectRoot}"
13
+ },
14
+ "package": {
15
+ "title": "Cargo.toml Path",
16
+ "type": "string",
17
+ "format": "path",
18
+ "description": "The path to the Cargo.toml file",
19
+ "id": "#package",
20
+ "default": "{projectRoot}/Cargo.toml"
21
+ },
22
+ "toolchain": {
23
+ "title": "Toolchain",
24
+ "description": "The type of toolchain to use for the build",
25
+ "enum": [
26
+ "stable",
27
+ "beta",
28
+ "nightly"
29
+ ],
30
+ "default": "stable",
31
+ "id": "#toolchain",
32
+ "type": "string"
33
+ },
34
+ "target": {
35
+ "title": "Target",
36
+ "type": "string",
37
+ "description": "The target to build",
38
+ "id": "#target"
39
+ },
40
+ "allTargets": {
41
+ "title": "All Targets",
42
+ "type": "boolean",
43
+ "description": "Build all targets",
44
+ "id": "#allTargets"
45
+ },
46
+ "profile": {
47
+ "title": "Profile",
48
+ "type": "string",
49
+ "description": "The profile to build",
50
+ "id": "#profile"
51
+ },
52
+ "release": {
53
+ "title": "Release",
54
+ "type": "boolean",
55
+ "description": "Build in release mode",
56
+ "id": "#release"
57
+ },
58
+ "features": {
59
+ "title": "Features",
60
+ "type": "string",
61
+ "description": "The features to build",
62
+ "oneOf": [
63
+ {
64
+ "type": "string"
65
+ },
66
+ {
67
+ "type": "array",
68
+ "items": {
69
+ "type": "string"
70
+ }
71
+ }
72
+ ],
73
+ "id": "#features"
74
+ },
75
+ "allFeatures": {
76
+ "title": "All Features",
77
+ "type": "boolean",
78
+ "description": "Build all features",
79
+ "id": "#allFeatures"
80
+ }
81
+ },
82
+ "type": "object",
83
+ "default": {
84
+ "outputPath": "dist/{projectRoot}",
85
+ "package": "{projectRoot}/Cargo.toml",
86
+ "toolchain": "stable"
87
+ }
88
+ }
@@ -2,7 +2,7 @@ import {
2
2
  cargo_base_executor_untyped_default
3
3
  } from "../../../chunk-7AN4JMFC.mjs";
4
4
  import "../../../chunk-DGC5L3Z7.mjs";
5
- import "../../../chunk-IEZKYJSF.mjs";
5
+ import "../../../chunk-QYPOYIKU.mjs";
6
6
 
7
7
  // src/executors/cargo-format/untyped.ts
8
8
  import { defineUntypedSchema } from "untyped";
@@ -6,7 +6,7 @@ import "../../../chunk-R2WP5YDO.mjs";
6
6
  import "../../../chunk-WLB7XVWW.mjs";
7
7
  import "../../../chunk-LSF4BHCI.mjs";
8
8
  import "../../../chunk-U7JFVMCK.mjs";
9
- import "../../../chunk-IEZKYJSF.mjs";
9
+ import "../../../chunk-QYPOYIKU.mjs";
10
10
  export {
11
11
  runExecutor as default,
12
12
  getRegistryVersion
@@ -0,0 +1,115 @@
1
+
2
+ // Generated by @storm-software/untyped
3
+ // Do not edit this file directly
4
+
5
+ export interface CargoPublishExecutorSchema {
6
+ /**
7
+ * Output Path
8
+ *
9
+ * The output path for the build
10
+ *
11
+ * @default "dist/{projectRoot}"
12
+ *
13
+ * @format path
14
+ */
15
+ outputPath?: string,
16
+
17
+ /**
18
+ * Cargo.toml Path
19
+ *
20
+ * The path to the Cargo.toml file
21
+ *
22
+ * @default "{projectRoot}/Cargo.toml"
23
+ *
24
+ * @format path
25
+ */
26
+ package?: string,
27
+
28
+ /**
29
+ * Toolchain
30
+ *
31
+ * The type of toolchain to use for the build
32
+ *
33
+ * @default "stable"
34
+ *
35
+ * @enum stable,beta,nightly
36
+ */
37
+ toolchain?: string,
38
+
39
+ /**
40
+ * Target
41
+ *
42
+ * The target to build
43
+ *
44
+ */
45
+ target?: string,
46
+
47
+ /**
48
+ * All Targets
49
+ *
50
+ * Build all targets
51
+ *
52
+ */
53
+ allTargets?: boolean,
54
+
55
+ /**
56
+ * Profile
57
+ *
58
+ * The profile to build
59
+ *
60
+ */
61
+ profile?: string,
62
+
63
+ /**
64
+ * Release
65
+ *
66
+ * Build in release mode
67
+ *
68
+ */
69
+ release?: boolean,
70
+
71
+ /**
72
+ * Features
73
+ *
74
+ * The features to build
75
+ *
76
+ *
77
+ * @oneOf [object Object],[object Object]
78
+ */
79
+ features?: string,
80
+
81
+ /**
82
+ * All Features
83
+ *
84
+ * Build all features
85
+ *
86
+ */
87
+ allFeatures?: boolean,
88
+
89
+ /**
90
+ * Registry
91
+ *
92
+ * The registry to publish to
93
+ *
94
+ */
95
+ registry?: string,
96
+
97
+ /**
98
+ * Package Root
99
+ *
100
+ * The path to the package root
101
+ *
102
+ *
103
+ * @format path
104
+ */
105
+ packageRoot?: string,
106
+
107
+ /**
108
+ * Dry Run
109
+ *
110
+ * Perform a dry run
111
+ *
112
+ */
113
+ dryRun?: boolean,
114
+ }
115
+
@@ -0,0 +1,107 @@
1
+ {
2
+ "id": "#",
3
+ "title": "Cargo Publish Executor",
4
+ "description": "A type definition for a Cargo/rust Publish executor schema",
5
+ "properties": {
6
+ "outputPath": {
7
+ "title": "Output Path",
8
+ "type": "string",
9
+ "format": "path",
10
+ "description": "The output path for the build",
11
+ "id": "#outputPath",
12
+ "default": "dist/{projectRoot}"
13
+ },
14
+ "package": {
15
+ "title": "Cargo.toml Path",
16
+ "type": "string",
17
+ "format": "path",
18
+ "description": "The path to the Cargo.toml file",
19
+ "id": "#package",
20
+ "default": "{projectRoot}/Cargo.toml"
21
+ },
22
+ "toolchain": {
23
+ "title": "Toolchain",
24
+ "description": "The type of toolchain to use for the build",
25
+ "enum": [
26
+ "stable",
27
+ "beta",
28
+ "nightly"
29
+ ],
30
+ "default": "stable",
31
+ "id": "#toolchain",
32
+ "type": "string"
33
+ },
34
+ "target": {
35
+ "title": "Target",
36
+ "type": "string",
37
+ "description": "The target to build",
38
+ "id": "#target"
39
+ },
40
+ "allTargets": {
41
+ "title": "All Targets",
42
+ "type": "boolean",
43
+ "description": "Build all targets",
44
+ "id": "#allTargets"
45
+ },
46
+ "profile": {
47
+ "title": "Profile",
48
+ "type": "string",
49
+ "description": "The profile to build",
50
+ "id": "#profile"
51
+ },
52
+ "release": {
53
+ "title": "Release",
54
+ "type": "boolean",
55
+ "description": "Build in release mode",
56
+ "id": "#release"
57
+ },
58
+ "features": {
59
+ "title": "Features",
60
+ "type": "string",
61
+ "description": "The features to build",
62
+ "oneOf": [
63
+ {
64
+ "type": "string"
65
+ },
66
+ {
67
+ "type": "array",
68
+ "items": {
69
+ "type": "string"
70
+ }
71
+ }
72
+ ],
73
+ "id": "#features"
74
+ },
75
+ "allFeatures": {
76
+ "title": "All Features",
77
+ "type": "boolean",
78
+ "description": "Build all features",
79
+ "id": "#allFeatures"
80
+ },
81
+ "registry": {
82
+ "title": "Registry",
83
+ "type": "string",
84
+ "description": "The registry to publish to",
85
+ "id": "#registry"
86
+ },
87
+ "packageRoot": {
88
+ "title": "Package Root",
89
+ "type": "string",
90
+ "format": "path",
91
+ "description": "The path to the package root",
92
+ "id": "#packageRoot"
93
+ },
94
+ "dryRun": {
95
+ "title": "Dry Run",
96
+ "type": "boolean",
97
+ "description": "Perform a dry run",
98
+ "id": "#dryRun"
99
+ }
100
+ },
101
+ "type": "object",
102
+ "default": {
103
+ "outputPath": "dist/{projectRoot}",
104
+ "package": "{projectRoot}/Cargo.toml",
105
+ "toolchain": "stable"
106
+ }
107
+ }
@@ -2,7 +2,7 @@ import {
2
2
  cargo_base_executor_untyped_default
3
3
  } from "../../../chunk-7AN4JMFC.mjs";
4
4
  import "../../../chunk-DGC5L3Z7.mjs";
5
- import "../../../chunk-IEZKYJSF.mjs";
5
+ import "../../../chunk-QYPOYIKU.mjs";
6
6
 
7
7
  // src/executors/cargo-publish/untyped.ts
8
8
  import { defineUntypedSchema } from "untyped";
@@ -10,7 +10,7 @@ import "../../../chunk-LSF4BHCI.mjs";
10
10
  import {
11
11
  joinPaths
12
12
  } from "../../../chunk-U7JFVMCK.mjs";
13
- import "../../../chunk-IEZKYJSF.mjs";
13
+ import "../../../chunk-QYPOYIKU.mjs";
14
14
 
15
15
  // src/executors/clean-package/executor.ts
16
16
  import { joinPathFragments } from "@nx/devkit";
@@ -0,0 +1,60 @@
1
+
2
+ // Generated by @storm-software/untyped
3
+ // Do not edit this file directly
4
+
5
+ export interface CleanPackageExecutorSchema {
6
+ /**
7
+ * Output Path
8
+ *
9
+ * The path to the output
10
+ *
11
+ * @default "dist/{projectRoot}"
12
+ */
13
+ outputPath?: string,
14
+
15
+ /**
16
+ * Package JSON Path
17
+ *
18
+ * The path to the package.json that will be modified
19
+ *
20
+ * @default "{outputPath}/package.json"
21
+ *
22
+ * @format path
23
+ */
24
+ packageJsonPath?: string,
25
+
26
+ /**
27
+ * Ignored Files
28
+ *
29
+ * The files to ignore
30
+ *
31
+ */
32
+ ignoredFiles?: string,
33
+
34
+ /**
35
+ * Fields
36
+ *
37
+ * The fields to include
38
+ *
39
+ */
40
+ fields?: string,
41
+
42
+ /**
43
+ * Clean Read Me
44
+ *
45
+ * Clean the read me
46
+ *
47
+ * @default true
48
+ */
49
+ cleanReadMe?: boolean,
50
+
51
+ /**
52
+ * Clean Comments
53
+ *
54
+ * Clean the comments
55
+ *
56
+ * @default true
57
+ */
58
+ cleanComments?: boolean,
59
+ }
60
+
@@ -0,0 +1,57 @@
1
+ {
2
+ "id": "#",
3
+ "title": "Clean Package Executor",
4
+ "description": "The clean package executor is responsible for removing unnecessary files and fields from a distributable package to make it as light as possible (for scenarios like edge computing, limited memory environments, etc.)",
5
+ "properties": {
6
+ "outputPath": {
7
+ "title": "Output Path",
8
+ "type": "string",
9
+ "description": "The path to the output",
10
+ "id": "#outputPath",
11
+ "default": "dist/{projectRoot}"
12
+ },
13
+ "packageJsonPath": {
14
+ "title": "Package JSON Path",
15
+ "type": "string",
16
+ "format": "path",
17
+ "description": "The path to the package.json that will be modified",
18
+ "id": "#packageJsonPath",
19
+ "default": "{outputPath}/package.json"
20
+ },
21
+ "ignoredFiles": {
22
+ "title": "Ignored Files",
23
+ "type": "string",
24
+ "description": "The files to ignore",
25
+ "id": "#ignoredFiles"
26
+ },
27
+ "fields": {
28
+ "title": "Fields",
29
+ "type": "string",
30
+ "description": "The fields to include",
31
+ "id": "#fields",
32
+ "default": []
33
+ },
34
+ "cleanReadMe": {
35
+ "title": "Clean Read Me",
36
+ "type": "boolean",
37
+ "description": "Clean the read me",
38
+ "id": "#cleanReadMe",
39
+ "default": true
40
+ },
41
+ "cleanComments": {
42
+ "title": "Clean Comments",
43
+ "type": "boolean",
44
+ "description": "Clean the comments",
45
+ "id": "#cleanComments",
46
+ "default": true
47
+ }
48
+ },
49
+ "type": "object",
50
+ "default": {
51
+ "outputPath": "dist/{projectRoot}",
52
+ "packageJsonPath": "{outputPath}/package.json",
53
+ "fields": [],
54
+ "cleanReadMe": true,
55
+ "cleanComments": true
56
+ }
57
+ }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  base_executor_untyped_default
3
3
  } from "../../../chunk-DGC5L3Z7.mjs";
4
- import "../../../chunk-IEZKYJSF.mjs";
4
+ import "../../../chunk-QYPOYIKU.mjs";
5
5
 
6
6
  // src/executors/clean-package/untyped.ts
7
7
  import { defineUntypedSchema } from "untyped";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  esbuildExecutorFn,
3
3
  executor_default
4
- } from "../../../chunk-YTHGOOKO.mjs";
4
+ } from "../../../chunk-JISERTNY.mjs";
5
5
  import "../../../chunk-FCRAGTW6.mjs";
6
6
  import "../../../chunk-X6PHOMFB.mjs";
7
7
  import "../../../chunk-N63KWRTH.mjs";
8
8
  import "../../../chunk-WLB7XVWW.mjs";
9
9
  import "../../../chunk-LSF4BHCI.mjs";
10
10
  import "../../../chunk-U7JFVMCK.mjs";
11
- import "../../../chunk-IEZKYJSF.mjs";
11
+ import "../../../chunk-QYPOYIKU.mjs";
12
12
  export {
13
13
  executor_default as default,
14
14
  esbuildExecutorFn