@common-stack/generate-plugin 7.0.4-alpha.1 → 7.0.4-alpha.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 (34) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/lib/generators/add-fullstack/files/package.json +1 -1
  3. package/lib/generators/add-fullstack/files/rollup.config.base.mjs +45 -22
  4. package/lib/generators/add-package/files/browser/rollup.config.mjs +1 -1
  5. package/lib/generators/add-package/files/browser/tsconfig.json +15 -27
  6. package/lib/generators/add-package/files/client/rollup.config.mjs +30 -25
  7. package/lib/generators/add-package/files/client/tsconfig.json +13 -26
  8. package/lib/generators/add-package/files/core/rollup.config.mjs +33 -61
  9. package/lib/generators/add-package/files/core/tsconfig.json +12 -21
  10. package/lib/generators/add-package/files/server/rollup.config.mjs +31 -24
  11. package/lib/generators/add-package/files/server/tsconfig.json +15 -25
  12. package/lib/generators/add-package/generator.cjs +53 -11
  13. package/lib/generators/add-package/generator.cjs.map +1 -1
  14. package/lib/generators/add-package/generator.d.ts +4 -1
  15. package/lib/generators/add-package/generator.mjs +53 -11
  16. package/lib/generators/add-package/generator.mjs.map +1 -1
  17. package/package.json +2 -2
  18. package/src/generators/add-fullstack/files/package.json +1 -1
  19. package/src/generators/add-fullstack/files/rollup.config.base.mjs +45 -22
  20. package/src/generators/add-package/files/browser/rollup.config.mjs +1 -1
  21. package/src/generators/add-package/files/browser/tsconfig.json +15 -27
  22. package/src/generators/add-package/files/client/rollup.config.mjs +30 -25
  23. package/src/generators/add-package/files/client/tsconfig.json +13 -26
  24. package/src/generators/add-package/files/core/rollup.config.mjs +33 -61
  25. package/src/generators/add-package/files/core/tsconfig.json +12 -21
  26. package/src/generators/add-package/files/server/rollup.config.mjs +31 -24
  27. package/src/generators/add-package/files/server/tsconfig.json +15 -25
  28. package/src/generators/add-package/generator.ts +75 -17
  29. package/lib/generators/add-package/files/browser/webpack.config.js +0 -71
  30. package/lib/generators/add-package/files/client/webpack.config.js +0 -72
  31. package/lib/generators/add-package/files/core/webpack.config.js +0 -53
  32. package/src/generators/add-package/files/browser/webpack.config.js +0 -71
  33. package/src/generators/add-package/files/client/webpack.config.js +0 -72
  34. package/src/generators/add-package/files/core/webpack.config.js +0 -53
@@ -1,9 +1,11 @@
1
- import { addProjectConfiguration, formatFiles, generateFiles, Tree, updateJson } from '@nx/devkit';
1
+ /* eslint-disable import/no-extraneous-dependencies */
2
+ import { formatFiles, generateFiles, Tree, updateJson, offsetFromRoot } from '@nx/devkit';
2
3
  import * as path from 'path';
3
4
  import { AddPackageGeneratorSchema } from './schema';
4
5
  import { isValid, getValid } from '../../utils';
5
6
  import { processFiles } from '../../utils/filesConfig';
6
7
  import { syncConfig } from '../../utils/syncConfig';
8
+ import { renameDotFiles, copyNpmrc } from '../../utils/copyDotfiles';
7
9
 
8
10
  export async function addPackageGenerator(tree: Tree, options: AddPackageGeneratorSchema) {
9
11
  if (!isValid(options.name)) {
@@ -14,14 +16,14 @@ export async function addPackageGenerator(tree: Tree, options: AddPackageGenerat
14
16
  const packages = ['core', 'client', 'browser', 'server'];
15
17
  const packageType = getValid(options.packageType);
16
18
  if (packageType && packageType.toLocaleLowerCase() !== 'all') {
17
- if(!packages.includes(packageType)) {
19
+ if (!packages.includes(packageType)) {
18
20
  console.error('Package type is not available! please choice in Client|Browser|Core|Server|All');
19
21
  return;
20
22
  }
21
- generatePackage(tree, {...options, type: packageType.toLocaleLowerCase()}, true);
23
+ generatePackage(tree, { ...options, type: packageType.toLocaleLowerCase() }, true);
22
24
  } else {
23
- packages.forEach(pkg => {
24
- const configs: any = {...options, type: pkg};
25
+ packages.forEach((pkg) => {
26
+ const configs: any = { ...options, type: pkg };
25
27
  generatePackage(tree, configs, true);
26
28
  });
27
29
  }
@@ -35,28 +37,84 @@ export async function addPackageGenerator(tree: Tree, options: AddPackageGenerat
35
37
  // configs.type = packageName;
36
38
  // generatePackage(tree, configs, false);
37
39
  // }
38
-
40
+
39
41
  // await formatFiles(tree);
40
42
  // }
41
43
 
42
44
  export const generatePackage = async (tree: Tree, options: any, cmdLine: boolean = false) => {
43
- const basePath = `${options.name}/${options.type}`;
44
- const packageRoot = isValid(options.directory) ? `${getValid(options.directory)}/${basePath}` : basePath;
45
- const baseName = isValid(options.name) ? `${options.name}-${options.type}` : options.type;
46
- const packageName = isValid(options.ns) ? `${getValid(options.ns)}-${baseName}` : baseName;
47
-
48
- generateFiles(tree, path.join(__dirname, 'files', options.type), packageRoot, options);
49
- updateJson(tree, `${packageRoot}/package.json`, (packageJson) => {
50
- packageJson['name'] = packageName;
45
+ const packageName = getValid(options.name) ?? 'empty-package';
46
+ let projectRoot = '';
47
+
48
+ if (isValid(options.directory)) {
49
+ projectRoot = `${getValid(options.directory)}/${packageName}`;
50
+ } else {
51
+ projectRoot = `packages/${packageName}`;
52
+ }
53
+
54
+ // Namespace the package if provided
55
+ let fullPackageName = packageName;
56
+ if (isValid(options.ns)) {
57
+ fullPackageName = `${getValid(options.ns)}-${packageName}`;
58
+ }
59
+
60
+ // Calculate the offset from root for relative paths in templates
61
+ const offset = offsetFromRoot(projectRoot);
62
+
63
+ // Define template options with offsetFromRoot for relative paths
64
+ const templateOptions = {
65
+ ...options,
66
+ name: fullPackageName,
67
+ offsetFromRoot: offset,
68
+ template: '',
69
+ dot: '.',
70
+ };
71
+
72
+ // Determine the package type and generate files accordingly
73
+ const packageType = getValid(options.type) ?? 'core';
74
+
75
+ console.log(`Generating ${packageType} package: ${fullPackageName} at ${projectRoot}`);
76
+
77
+ // Generate the appropriate package files based on type
78
+ switch (packageType) {
79
+ case 'browser':
80
+ generateFiles(tree, path.join(__dirname, 'files', 'browser'), projectRoot, templateOptions);
81
+ break;
82
+ case 'client':
83
+ generateFiles(tree, path.join(__dirname, 'files', 'client'), projectRoot, templateOptions);
84
+ break;
85
+ case 'server':
86
+ generateFiles(tree, path.join(__dirname, 'files', 'server'), projectRoot, templateOptions);
87
+ break;
88
+ case 'core':
89
+ default:
90
+ generateFiles(tree, path.join(__dirname, 'files', 'core'), projectRoot, templateOptions);
91
+ break;
92
+ }
93
+
94
+ // Rename underscore-prefixed files to dot files
95
+ renameDotFiles(tree, projectRoot);
96
+
97
+ // Copy .npmrc from the main project root if exists
98
+ const mainProjectRoot = options.projectRoot || '';
99
+ copyNpmrc(tree, mainProjectRoot, projectRoot);
100
+
101
+ // Update package.json with the correct package name
102
+ updateJson(tree, `${projectRoot}/package.json`, (packageJson) => {
103
+ packageJson.name = fullPackageName;
51
104
  return packageJson;
52
105
  });
53
106
 
54
107
  if (cmdLine) {
55
- syncConfig(tree, packageRoot, options);
108
+ syncConfig(tree, projectRoot, options);
56
109
  } else {
57
- processFiles(tree, packageRoot, options);
110
+ processFiles(tree, projectRoot, options);
58
111
  await formatFiles(tree);
59
112
  }
60
- }
113
+
114
+ return {
115
+ packageName: fullPackageName,
116
+ projectRoot,
117
+ };
118
+ };
61
119
 
62
120
  export default addPackageGenerator;
@@ -1,71 +0,0 @@
1
- var nodeExternals = require('webpack-node-externals');
2
- var webpack = require('webpack');
3
- var path = require('path');
4
-
5
- var webpack_opts = {
6
- mode: 'development',
7
- entry: './src/index.tsx',
8
- target: 'node',
9
- output: {
10
- path: path.join(__dirname, 'lib'),
11
- filename: 'index.js',
12
- libraryTarget: "commonjs2",
13
- },
14
- node: {
15
- __dirname: false
16
- },
17
- resolve: {
18
- extensions: ['.ts', '.tsx', '.graphql', '.gql'],
19
- },
20
- plugins: [
21
- new webpack.LoaderOptionsPlugin({
22
- options: {
23
- test: /\.tsx?$/,
24
- ts: {
25
- compiler: 'typescript',
26
- configFile: 'tsconfig.json'
27
- },
28
- tslint: {
29
- emitErrors: true,
30
- failOnHint: true
31
- }
32
- }
33
- })
34
- ],
35
- devtool: 'source-map',
36
- module: {
37
- rules: [{
38
- test: /\.tsx?$/,
39
- use: 'ts-loader'
40
- },
41
- {
42
- test: /\.(pdf|jpg|png|gif|svg|ico)$/,
43
- use: [
44
- {
45
- loader: "url-loader"
46
- }
47
- ]
48
- },
49
- {
50
- test: /\.mjs$/,
51
- include: /node_modules/,
52
- type: 'javascript/auto',
53
- },
54
- {
55
- test: /\.graphql?/,
56
- exclude: /node_modules/,
57
- use: 'raw-loader',
58
- }, {
59
- test: /\.(gql)$/,
60
- exclude: /node_modules/,
61
- use: ['graphql-tag/loader']
62
- }
63
- ]
64
- },
65
- externals: [
66
- nodeExternals({ modulesDir: "../../../node_modules" }),
67
- nodeExternals()
68
- ]
69
- };
70
-
71
- module.exports = webpack_opts;
@@ -1,72 +0,0 @@
1
- var nodeExternals = require('webpack-node-externals');
2
- var webpack = require('webpack');
3
- var path = require('path');
4
- var fs = require('fs');
5
-
6
- var webpack_opts = {
7
- mode: 'development',
8
- entry: './src/index.ts',
9
- target: 'node',
10
- output: {
11
- path: path.join(__dirname, 'lib'),
12
- filename: 'index.js',
13
- libraryTarget: "commonjs2",
14
- },
15
- node: {
16
- __dirname: false
17
- },
18
- resolve: {
19
- extensions: ['.ts', '.tsx', '.graphql', '.gql'],
20
- },
21
- plugins: [
22
- new webpack.LoaderOptionsPlugin({
23
- options: {
24
- test: /\.tsx?$/,
25
- ts: {
26
- compiler: 'typescript',
27
- configFile: 'tsconfig.json'
28
- },
29
- tslint: {
30
- emitErrors: true,
31
- failOnHint: true
32
- }
33
- }
34
- })
35
- ],
36
- devtool: 'source-map',
37
- module: {
38
- rules: [{
39
- test: /\.tsx?$/,
40
- use: 'ts-loader'
41
- },
42
- {
43
- test: /\.mjs$/,
44
- include: /node_modules/,
45
- type: 'javascript/auto',
46
- },
47
- {
48
- test: /\.graphql?/,
49
- exclude: /node_modules/,
50
- use: 'raw-loader',
51
- }, {
52
- test: /\.(gql)$/,
53
- exclude: /node_modules/,
54
- use: ['graphql-tag/loader']
55
- },
56
- {
57
- test: /\.(pdf|jpg|png|gif|svg|ico)$/,
58
- use: [
59
- {
60
- loader: "url-loader"
61
- }
62
- ]
63
- },
64
- ]
65
- },
66
- externals: [
67
- nodeExternals({ modulesDir: "../../../node_modules" }),
68
- nodeExternals()
69
- ]
70
- };
71
-
72
- module.exports = webpack_opts;
@@ -1,53 +0,0 @@
1
- var nodeExternals = require('webpack-node-externals');
2
- var webpack = require('webpack');
3
- var path = require('path');
4
- var fs = require('fs');
5
-
6
-
7
-
8
- var webpack_opts = {
9
- mode: 'development',
10
- entry: {
11
- extensionApi: './src',
12
- },
13
- target: 'node',
14
- output: {
15
- path: path.join(__dirname, 'lib'),
16
- filename: 'index.js',
17
- libraryTarget: "commonjs2"
18
- },
19
- resolve: {
20
- extensions: ['.ts', '.mjs', '.js'],
21
- },
22
- plugins: [
23
- new webpack.LoaderOptionsPlugin({
24
- options: {
25
- test: /\.ts$/,
26
- ts: {
27
- compiler: 'typescript',
28
- configFile: 'tsconfig.json'
29
- },
30
- tslint: {
31
- emitErrors: true,
32
- failOnHint: true
33
- }
34
- }
35
- })
36
- ],
37
- devtool: 'source-map',
38
- module: {
39
- rules: [{
40
- test: /\.ts$/,
41
- use: 'ts-loader'
42
- }]
43
- },
44
- externals: [
45
- nodeExternals({ modulesDir: "../../../node_modules" }),
46
- nodeExternals()
47
- ],
48
- watchOptions: {
49
- ignored: /.d.ts/
50
- }
51
- };
52
-
53
- module.exports = webpack_opts;
@@ -1,71 +0,0 @@
1
- var nodeExternals = require('webpack-node-externals');
2
- var webpack = require('webpack');
3
- var path = require('path');
4
-
5
- var webpack_opts = {
6
- mode: 'development',
7
- entry: './src/index.tsx',
8
- target: 'node',
9
- output: {
10
- path: path.join(__dirname, 'lib'),
11
- filename: 'index.js',
12
- libraryTarget: "commonjs2",
13
- },
14
- node: {
15
- __dirname: false
16
- },
17
- resolve: {
18
- extensions: ['.ts', '.tsx', '.graphql', '.gql'],
19
- },
20
- plugins: [
21
- new webpack.LoaderOptionsPlugin({
22
- options: {
23
- test: /\.tsx?$/,
24
- ts: {
25
- compiler: 'typescript',
26
- configFile: 'tsconfig.json'
27
- },
28
- tslint: {
29
- emitErrors: true,
30
- failOnHint: true
31
- }
32
- }
33
- })
34
- ],
35
- devtool: 'source-map',
36
- module: {
37
- rules: [{
38
- test: /\.tsx?$/,
39
- use: 'ts-loader'
40
- },
41
- {
42
- test: /\.(pdf|jpg|png|gif|svg|ico)$/,
43
- use: [
44
- {
45
- loader: "url-loader"
46
- }
47
- ]
48
- },
49
- {
50
- test: /\.mjs$/,
51
- include: /node_modules/,
52
- type: 'javascript/auto',
53
- },
54
- {
55
- test: /\.graphql?/,
56
- exclude: /node_modules/,
57
- use: 'raw-loader',
58
- }, {
59
- test: /\.(gql)$/,
60
- exclude: /node_modules/,
61
- use: ['graphql-tag/loader']
62
- }
63
- ]
64
- },
65
- externals: [
66
- nodeExternals({ modulesDir: "../../../node_modules" }),
67
- nodeExternals()
68
- ]
69
- };
70
-
71
- module.exports = webpack_opts;
@@ -1,72 +0,0 @@
1
- var nodeExternals = require('webpack-node-externals');
2
- var webpack = require('webpack');
3
- var path = require('path');
4
- var fs = require('fs');
5
-
6
- var webpack_opts = {
7
- mode: 'development',
8
- entry: './src/index.ts',
9
- target: 'node',
10
- output: {
11
- path: path.join(__dirname, 'lib'),
12
- filename: 'index.js',
13
- libraryTarget: "commonjs2",
14
- },
15
- node: {
16
- __dirname: false
17
- },
18
- resolve: {
19
- extensions: ['.ts', '.tsx', '.graphql', '.gql'],
20
- },
21
- plugins: [
22
- new webpack.LoaderOptionsPlugin({
23
- options: {
24
- test: /\.tsx?$/,
25
- ts: {
26
- compiler: 'typescript',
27
- configFile: 'tsconfig.json'
28
- },
29
- tslint: {
30
- emitErrors: true,
31
- failOnHint: true
32
- }
33
- }
34
- })
35
- ],
36
- devtool: 'source-map',
37
- module: {
38
- rules: [{
39
- test: /\.tsx?$/,
40
- use: 'ts-loader'
41
- },
42
- {
43
- test: /\.mjs$/,
44
- include: /node_modules/,
45
- type: 'javascript/auto',
46
- },
47
- {
48
- test: /\.graphql?/,
49
- exclude: /node_modules/,
50
- use: 'raw-loader',
51
- }, {
52
- test: /\.(gql)$/,
53
- exclude: /node_modules/,
54
- use: ['graphql-tag/loader']
55
- },
56
- {
57
- test: /\.(pdf|jpg|png|gif|svg|ico)$/,
58
- use: [
59
- {
60
- loader: "url-loader"
61
- }
62
- ]
63
- },
64
- ]
65
- },
66
- externals: [
67
- nodeExternals({ modulesDir: "../../../node_modules" }),
68
- nodeExternals()
69
- ]
70
- };
71
-
72
- module.exports = webpack_opts;
@@ -1,53 +0,0 @@
1
- var nodeExternals = require('webpack-node-externals');
2
- var webpack = require('webpack');
3
- var path = require('path');
4
- var fs = require('fs');
5
-
6
-
7
-
8
- var webpack_opts = {
9
- mode: 'development',
10
- entry: {
11
- extensionApi: './src',
12
- },
13
- target: 'node',
14
- output: {
15
- path: path.join(__dirname, 'lib'),
16
- filename: 'index.js',
17
- libraryTarget: "commonjs2"
18
- },
19
- resolve: {
20
- extensions: ['.ts', '.mjs', '.js'],
21
- },
22
- plugins: [
23
- new webpack.LoaderOptionsPlugin({
24
- options: {
25
- test: /\.ts$/,
26
- ts: {
27
- compiler: 'typescript',
28
- configFile: 'tsconfig.json'
29
- },
30
- tslint: {
31
- emitErrors: true,
32
- failOnHint: true
33
- }
34
- }
35
- })
36
- ],
37
- devtool: 'source-map',
38
- module: {
39
- rules: [{
40
- test: /\.ts$/,
41
- use: 'ts-loader'
42
- }]
43
- },
44
- externals: [
45
- nodeExternals({ modulesDir: "../../../node_modules" }),
46
- nodeExternals()
47
- ],
48
- watchOptions: {
49
- ignored: /.d.ts/
50
- }
51
- };
52
-
53
- module.exports = webpack_opts;