create-powerapps-project 0.14.6 → 0.15.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.
- package/CHANGELOG.json +784 -0
- package/CHANGELOG.md +386 -0
- package/lib/createDataverseProject.d.ts +3 -2
- package/lib/createDataverseProject.js +77 -51
- package/lib/getEnvInfo.d.ts +10 -1
- package/lib/getEnvInfo.js +16 -8
- package/lib/index.js +22 -9
- package/lib/logger.d.ts +5 -0
- package/lib/logger.js +26 -0
- package/lib/nuget.js +18 -10
- package/lib/packageManager.js +16 -11
- package/lib/plop.d.ts +1 -2
- package/lib/plop.js +18 -10
- package/lib/plopfile.js +13 -7
- package/package.json +6 -7
- package/plop-templates/assembly/.editorconfig +132 -0
- package/plop-templates/assembly/.gitignore +362 -0
- package/plop-templates/assembly/.vscode/tasks.json +6 -0
- package/plop-templates/webresource/.gitignore +43 -0
- package/bin/sn.exe +0 -0
- package/bin/sn.exe.config +0 -6
package/lib/nuget.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.install = exports.getNugetPackageVersions = void 0;
|
|
7
|
+
const https_1 = __importDefault(require("https"));
|
|
8
|
+
const child_process_1 = require("child_process");
|
|
9
|
+
const getNugetPackageVersions = (name) => {
|
|
4
10
|
return new Promise((resolve, reject) => {
|
|
5
|
-
|
|
11
|
+
https_1.default.get(`https://azuresearch-usnc.nuget.org/query?q=packageid:${name}`, (response) => {
|
|
6
12
|
let body = '';
|
|
7
13
|
response.on('data', (d) => {
|
|
8
14
|
body += d;
|
|
@@ -19,29 +25,31 @@ export const getNugetPackageVersions = (name) => {
|
|
|
19
25
|
});
|
|
20
26
|
});
|
|
21
27
|
};
|
|
22
|
-
|
|
28
|
+
exports.getNugetPackageVersions = getNugetPackageVersions;
|
|
29
|
+
const install = (project, sdkVersion, xrmVersion) => {
|
|
23
30
|
// Add solution
|
|
24
|
-
spawnSync('dotnet', ['new', 'sln', '-n', project], {
|
|
31
|
+
(0, child_process_1.spawnSync)('dotnet', ['new', 'sln', '-n', project], {
|
|
25
32
|
cwd: process.cwd(),
|
|
26
33
|
stdio: 'inherit'
|
|
27
34
|
});
|
|
28
|
-
spawnSync('dotnet', ['sln', 'add', `${project}.csproj`], {
|
|
35
|
+
(0, child_process_1.spawnSync)('dotnet', ['sln', 'add', `${project}.csproj`], {
|
|
29
36
|
cwd: process.cwd(),
|
|
30
37
|
stdio: 'inherit'
|
|
31
38
|
});
|
|
32
39
|
// Install nuget packages
|
|
33
40
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
34
|
-
spawnSync('dotnet', ['add', 'package', 'Microsoft.CrmSdk.Workflow', '-v', sdkVersion, '-n'], {
|
|
41
|
+
(0, child_process_1.spawnSync)('dotnet', ['add', 'package', 'Microsoft.CrmSdk.Workflow', '-v', sdkVersion, '-n'], {
|
|
35
42
|
cwd: process.cwd(),
|
|
36
43
|
stdio: 'inherit'
|
|
37
44
|
});
|
|
38
45
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
39
|
-
spawnSync('dotnet', ['add', 'package', 'JourneyTeam.Xrm', '-v', xrmVersion, '-n'], {
|
|
46
|
+
(0, child_process_1.spawnSync)('dotnet', ['add', 'package', 'JourneyTeam.Xrm', '-v', xrmVersion, '-n'], {
|
|
40
47
|
cwd: process.cwd(),
|
|
41
48
|
stdio: 'inherit'
|
|
42
49
|
});
|
|
43
|
-
spawnSync('dotnet', ['restore'], {
|
|
50
|
+
(0, child_process_1.spawnSync)('dotnet', ['restore'], {
|
|
44
51
|
cwd: process.cwd(),
|
|
45
52
|
stdio: 'inherit'
|
|
46
53
|
});
|
|
47
54
|
};
|
|
55
|
+
exports.install = install;
|
package/lib/packageManager.js
CHANGED
|
@@ -1,29 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.install = exports.getYarn = void 0;
|
|
1
4
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const yarnInfo = getEnvInfo().Binaries.Yarn;
|
|
5
|
+
const child_process_1 = require("child_process");
|
|
6
|
+
const getEnvInfo_1 = require("./getEnvInfo");
|
|
7
|
+
const getYarn = () => {
|
|
8
|
+
const yarnInfo = (0, getEnvInfo_1.getEnvInfo)().Binaries.Yarn;
|
|
6
9
|
return yarnInfo && yarnInfo.path;
|
|
7
10
|
};
|
|
11
|
+
exports.getYarn = getYarn;
|
|
8
12
|
const getNpm = () => {
|
|
9
|
-
const npmInfo = getEnvInfo().Binaries.npm;
|
|
13
|
+
const npmInfo = (0, getEnvInfo_1.getEnvInfo)().Binaries.npm;
|
|
10
14
|
return npmInfo && npmInfo.path;
|
|
11
15
|
};
|
|
12
|
-
|
|
16
|
+
const install = (cwd, type) => {
|
|
13
17
|
const packages = getPackages(type);
|
|
14
|
-
if (getYarn()) {
|
|
15
|
-
spawnSync(getYarn(), ['add', ...packages.devDependencies], { stdio: 'inherit', cwd });
|
|
18
|
+
if ((0, exports.getYarn)()) {
|
|
19
|
+
(0, child_process_1.spawnSync)((0, exports.getYarn)(), ['add', ...packages.devDependencies], { stdio: 'inherit', cwd });
|
|
16
20
|
if (packages.dependencies) {
|
|
17
|
-
spawnSync(getYarn(), ['add', ...packages.dependencies], { stdio: 'inherit', cwd });
|
|
21
|
+
(0, child_process_1.spawnSync)((0, exports.getYarn)(), ['add', ...packages.dependencies], { stdio: 'inherit', cwd });
|
|
18
22
|
}
|
|
19
23
|
}
|
|
20
24
|
else {
|
|
21
|
-
spawnSync(getNpm(), ['add', ...packages.devDependencies], { stdio: 'inherit', cwd });
|
|
25
|
+
(0, child_process_1.spawnSync)(getNpm(), ['add', ...packages.devDependencies], { stdio: 'inherit', cwd });
|
|
22
26
|
if (packages.dependencies) {
|
|
23
|
-
spawnSync(getNpm(), ['add', ...packages.dependencies], { stdio: 'inherit', cwd });
|
|
27
|
+
(0, child_process_1.spawnSync)(getNpm(), ['add', ...packages.dependencies], { stdio: 'inherit', cwd });
|
|
24
28
|
}
|
|
25
29
|
}
|
|
26
30
|
};
|
|
31
|
+
exports.install = install;
|
|
27
32
|
function getPackages(type) {
|
|
28
33
|
const packages = {
|
|
29
34
|
devDependencies: [
|
package/lib/plop.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { PlopGenerator } from 'node-plop';
|
|
2
|
-
import yargs from 'yargs';
|
|
3
2
|
import { Config } from './createDataverseProject';
|
|
4
|
-
export declare const getGenerator: (
|
|
3
|
+
export declare const getGenerator: (type: string, name: string) => Promise<PlopGenerator>;
|
|
5
4
|
export declare const runGenerator: (generator: PlopGenerator, args: Config) => Promise<void>;
|
package/lib/plop.js
CHANGED
|
@@ -1,17 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runGenerator = exports.getGenerator = void 0;
|
|
7
|
+
const node_plop_1 = __importDefault(require("node-plop"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const logger_1 = require("./logger");
|
|
4
10
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
|
-
|
|
6
|
-
const plopFile =
|
|
7
|
-
const plop = await
|
|
8
|
-
const generator = plop.getGenerator(
|
|
11
|
+
const getGenerator = async (type, name) => {
|
|
12
|
+
const plopFile = path_1.default.resolve(__dirname, 'plopfile.js');
|
|
13
|
+
const plop = await (0, node_plop_1.default)(plopFile, { destBasePath: name, force: false });
|
|
14
|
+
const generator = plop.getGenerator(type);
|
|
9
15
|
return generator;
|
|
10
16
|
};
|
|
11
|
-
|
|
17
|
+
exports.getGenerator = getGenerator;
|
|
18
|
+
const runGenerator = async (generator, args) => {
|
|
12
19
|
const results = await generator.runActions(args, {
|
|
13
20
|
onComment: (comment) => {
|
|
14
|
-
logger.info(comment);
|
|
21
|
+
logger_1.logger.info(comment);
|
|
15
22
|
}
|
|
16
23
|
});
|
|
17
24
|
if (results.failures && results.failures.length > 0) {
|
|
@@ -20,7 +27,8 @@ export const runGenerator = async (generator, args) => {
|
|
|
20
27
|
// do something after the actions have run
|
|
21
28
|
for (const change of results.changes) {
|
|
22
29
|
if (change.path) {
|
|
23
|
-
logger.info(change.path);
|
|
30
|
+
logger_1.logger.info(change.path);
|
|
24
31
|
}
|
|
25
32
|
}
|
|
26
33
|
};
|
|
34
|
+
exports.runGenerator = runGenerator;
|
package/lib/plopfile.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const path_1 = __importDefault(require("path"));
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
3
8
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
9
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
5
|
-
|
|
10
|
+
exports.default = (plop) => {
|
|
6
11
|
plop.setActionType('signAssembly', (answers) => {
|
|
7
|
-
const keyPath =
|
|
8
|
-
spawnSync(
|
|
12
|
+
const keyPath = path_1.default.resolve(process.cwd(), `${answers.name}.snk`);
|
|
13
|
+
(0, child_process_1.spawnSync)(path_1.default.resolve(__dirname, '../', 'bin', 'sn.exe'), ['-q', '-k', keyPath], { stdio: 'inherit' });
|
|
9
14
|
return 'signed assembly';
|
|
10
15
|
});
|
|
11
16
|
plop.setGenerator('webresource', {
|
|
@@ -24,7 +29,7 @@ export default (plop) => {
|
|
|
24
29
|
{
|
|
25
30
|
type: 'add',
|
|
26
31
|
templateFile: '../plop-templates/assembly/assembly.csproj.hbs',
|
|
27
|
-
path:
|
|
32
|
+
path: path_1.default.resolve(process.cwd(), '{{name}}.csproj'),
|
|
28
33
|
},
|
|
29
34
|
{
|
|
30
35
|
type: 'addMany',
|
|
@@ -34,7 +39,8 @@ export default (plop) => {
|
|
|
34
39
|
'../plop-templates/assembly/*.ts.hbs',
|
|
35
40
|
'../plop-templates/assembly/.gitignore',
|
|
36
41
|
'../plop-templates/assembly/Entities/EarlyBoundGenerator.xml',
|
|
37
|
-
'../plop-templates/assembly/.vscode/tasks.json'
|
|
42
|
+
'../plop-templates/assembly/.vscode/tasks.json',
|
|
43
|
+
'../plop-templates/assembly/.editorconfig'
|
|
38
44
|
],
|
|
39
45
|
base: '../plop-templates/assembly',
|
|
40
46
|
destination: process.cwd(),
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-powerapps-project",
|
|
3
|
-
"description": "
|
|
4
|
-
"version": "0.
|
|
3
|
+
"description": "💧 plop generator for Dataverse development",
|
|
4
|
+
"version": "0.15.2",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"bin": {
|
|
@@ -23,15 +23,14 @@
|
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"envinfo": "^7.8.1",
|
|
26
|
-
"node-plop": "^0.26.
|
|
26
|
+
"node-plop": "^0.26.3",
|
|
27
27
|
"prompts": "^2.4.2",
|
|
28
|
-
"
|
|
29
|
-
"
|
|
28
|
+
"commander": "^8.3.0",
|
|
29
|
+
"kleur": "^4.1.4"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/envinfo": "^7.8.1",
|
|
33
33
|
"@types/node": "^14.14.21",
|
|
34
|
-
"@types/prompts": "^2.0.14"
|
|
35
|
-
"@types/yargs": "^17.0.7"
|
|
34
|
+
"@types/prompts": "^2.0.14"
|
|
36
35
|
}
|
|
37
36
|
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
###############################
|
|
2
|
+
# Core EditorConfig Options #
|
|
3
|
+
###############################
|
|
4
|
+
root = true
|
|
5
|
+
# All files
|
|
6
|
+
[*]
|
|
7
|
+
indent_style = space
|
|
8
|
+
|
|
9
|
+
# XML project files
|
|
10
|
+
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
|
|
11
|
+
indent_size = 2
|
|
12
|
+
|
|
13
|
+
# XML config files
|
|
14
|
+
[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}]
|
|
15
|
+
indent_size = 2
|
|
16
|
+
|
|
17
|
+
# Code files
|
|
18
|
+
[*.{cs,csx,vb,vbx}]
|
|
19
|
+
indent_size = 4
|
|
20
|
+
insert_final_newline = true
|
|
21
|
+
charset = utf-8-bom
|
|
22
|
+
###############################
|
|
23
|
+
# .NET Coding Conventions #
|
|
24
|
+
###############################
|
|
25
|
+
[*.{cs,vb}]
|
|
26
|
+
# Organize usings
|
|
27
|
+
dotnet_sort_system_directives_first = true
|
|
28
|
+
# this. preferences
|
|
29
|
+
dotnet_style_qualification_for_field = false:silent
|
|
30
|
+
dotnet_style_qualification_for_property = false:silent
|
|
31
|
+
dotnet_style_qualification_for_method = false:silent
|
|
32
|
+
dotnet_style_qualification_for_event = false:silent
|
|
33
|
+
# Language keywords vs BCL types preferences
|
|
34
|
+
dotnet_style_predefined_type_for_locals_parameters_members = true:silent
|
|
35
|
+
dotnet_style_predefined_type_for_member_access = true:silent
|
|
36
|
+
# Parentheses preferences
|
|
37
|
+
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
|
|
38
|
+
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
|
|
39
|
+
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
|
|
40
|
+
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
|
|
41
|
+
# Modifier preferences
|
|
42
|
+
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
|
|
43
|
+
dotnet_style_readonly_field = true:suggestion
|
|
44
|
+
# Expression-level preferences
|
|
45
|
+
dotnet_style_object_initializer = true:suggestion
|
|
46
|
+
dotnet_style_collection_initializer = true:suggestion
|
|
47
|
+
dotnet_style_explicit_tuple_names = true:suggestion
|
|
48
|
+
dotnet_style_null_propagation = true:suggestion
|
|
49
|
+
dotnet_style_coalesce_expression = true:suggestion
|
|
50
|
+
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent
|
|
51
|
+
dotnet_style_prefer_inferred_tuple_names = true:suggestion
|
|
52
|
+
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
|
|
53
|
+
dotnet_style_prefer_auto_properties = true:silent
|
|
54
|
+
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
|
|
55
|
+
dotnet_style_prefer_conditional_expression_over_return = true:silent
|
|
56
|
+
###############################
|
|
57
|
+
# Naming Conventions #
|
|
58
|
+
###############################
|
|
59
|
+
# Style Definitions
|
|
60
|
+
dotnet_naming_style.pascal_case_style.capitalization = pascal_case
|
|
61
|
+
# Use PascalCase for constant fields
|
|
62
|
+
dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion
|
|
63
|
+
dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields
|
|
64
|
+
dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style
|
|
65
|
+
dotnet_naming_symbols.constant_fields.applicable_kinds = field
|
|
66
|
+
dotnet_naming_symbols.constant_fields.applicable_accessibilities = *
|
|
67
|
+
dotnet_naming_symbols.constant_fields.required_modifiers = const
|
|
68
|
+
###############################
|
|
69
|
+
# C# Coding Conventions #
|
|
70
|
+
###############################
|
|
71
|
+
[*.cs]
|
|
72
|
+
# var preferences
|
|
73
|
+
csharp_style_var_for_built_in_types = true:suggestion
|
|
74
|
+
csharp_style_var_when_type_is_apparent = true:suggestion
|
|
75
|
+
csharp_style_var_elsewhere = true:silent
|
|
76
|
+
# Expression-bodied members
|
|
77
|
+
csharp_style_expression_bodied_methods = false:silent
|
|
78
|
+
csharp_style_expression_bodied_constructors = false:silent
|
|
79
|
+
csharp_style_expression_bodied_operators = false:silent
|
|
80
|
+
csharp_style_expression_bodied_properties = true:silent
|
|
81
|
+
csharp_style_expression_bodied_indexers = true:silent
|
|
82
|
+
csharp_style_expression_bodied_accessors = true:silent
|
|
83
|
+
# Pattern matching preferences
|
|
84
|
+
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
|
|
85
|
+
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
|
|
86
|
+
# Null-checking preferences
|
|
87
|
+
csharp_style_throw_expression = true:suggestion
|
|
88
|
+
csharp_style_conditional_delegate_call = true:suggestion
|
|
89
|
+
# Modifier preferences
|
|
90
|
+
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion
|
|
91
|
+
# Expression-level preferences
|
|
92
|
+
csharp_prefer_braces = true:silent
|
|
93
|
+
csharp_style_deconstructed_variable_declaration = true:suggestion
|
|
94
|
+
csharp_prefer_simple_default_expression = true:suggestion
|
|
95
|
+
csharp_style_pattern_local_over_anonymous_function = true:suggestion
|
|
96
|
+
csharp_style_inlined_variable_declaration = true:suggestion
|
|
97
|
+
###############################
|
|
98
|
+
# C# Formatting Rules #
|
|
99
|
+
###############################
|
|
100
|
+
# New line preferences
|
|
101
|
+
csharp_new_line_before_open_brace = all
|
|
102
|
+
csharp_new_line_before_else = true
|
|
103
|
+
csharp_new_line_before_catch = true
|
|
104
|
+
csharp_new_line_before_finally = true
|
|
105
|
+
csharp_new_line_before_members_in_object_initializers = true
|
|
106
|
+
csharp_new_line_before_members_in_anonymous_types = true
|
|
107
|
+
csharp_new_line_between_query_expression_clauses = true
|
|
108
|
+
# Indentation preferences
|
|
109
|
+
csharp_indent_case_contents = true
|
|
110
|
+
csharp_indent_switch_labels = true
|
|
111
|
+
csharp_indent_labels = flush_left
|
|
112
|
+
# Space preferences
|
|
113
|
+
csharp_space_after_cast = false
|
|
114
|
+
csharp_space_after_keywords_in_control_flow_statements = true
|
|
115
|
+
csharp_space_between_method_call_parameter_list_parentheses = false
|
|
116
|
+
csharp_space_between_method_declaration_parameter_list_parentheses = false
|
|
117
|
+
csharp_space_between_parentheses = false
|
|
118
|
+
csharp_space_before_colon_in_inheritance_clause = true
|
|
119
|
+
csharp_space_after_colon_in_inheritance_clause = true
|
|
120
|
+
csharp_space_around_binary_operators = before_and_after
|
|
121
|
+
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
|
|
122
|
+
csharp_space_between_method_call_name_and_opening_parenthesis = false
|
|
123
|
+
csharp_space_between_method_call_empty_parameter_list_parentheses = false
|
|
124
|
+
# Wrapping preferences
|
|
125
|
+
csharp_preserve_single_line_statements = true
|
|
126
|
+
csharp_preserve_single_line_blocks = true
|
|
127
|
+
###############################
|
|
128
|
+
# VB Coding Conventions #
|
|
129
|
+
###############################
|
|
130
|
+
[*.vb]
|
|
131
|
+
# Modifier preferences
|
|
132
|
+
visual_basic_preferred_modifier_order = Partial,Default,Private,Protected,Public,Friend,NotOverridable,Overridable,MustOverride,Overloads,Overrides,MustInherit,NotInheritable,Static,Shared,Shadows,ReadOnly,WriteOnly,Dim,Const,WithEvents,Widening,Narrowing,Custom,Async:suggestion
|