@i-santos/create-package-starter 0.1.2 → 1.0.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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @i-santos/create-package-starter
2
2
 
3
- Scaffold new npm packages with a consistent release workflow.
3
+ Scaffold new npm packages with a standardized Changesets release workflow.
4
4
 
5
5
  ## Install / Run
6
6
 
@@ -13,17 +13,11 @@ npx @i-santos/create-package-starter --name @i-santos/swarm
13
13
 
14
14
  - `--name <name>` (required, supports `pkg` and `@scope/pkg`)
15
15
  - `--out <directory>` (default: current directory)
16
- - `--release-cli-pkg <package>` (default: `@i-santos/release-cli`)
17
- - `--release-cli-version <version>` (default: `^0.1.0`)
18
16
 
19
17
  ## Output
20
18
 
21
19
  Generated package includes:
22
20
 
23
- - `release:beta`
24
- - `release:stable`
25
- - `release:publish`
26
- - `registry:start`
27
21
  - `changeset`
28
22
  - `version-packages`
29
23
  - `release`
package/lib/run.js CHANGED
@@ -1,27 +1,21 @@
1
1
  const fs = require('fs');
2
2
  const path = require('path');
3
3
 
4
- const DEFAULT_RELEASE_CLI_PKG = '@i-santos/release-cli';
5
- const DEFAULT_RELEASE_CLI_VERSION = '^0.1.0';
6
-
7
4
  function usage() {
8
5
  return [
9
6
  'Uso:',
10
- ' create-package-starter --name <nome> [--out <diretorio>] [--release-cli-pkg <pkg>] [--release-cli-version <versao>]',
7
+ ' create-package-starter --name <nome> [--out <diretorio>]',
11
8
  '',
12
9
  'Exemplo:',
13
10
  ' create-package-starter --name hello-package',
14
11
  ' create-package-starter --name @i-santos/swarm',
15
- ' create-package-starter --name hello-package --out ./packages',
16
- ' create-package-starter --name hello-package --release-cli-pkg @i-santos/release-cli --release-cli-version ^1.0.0'
12
+ ' create-package-starter --name hello-package --out ./packages'
17
13
  ].join('\n');
18
14
  }
19
15
 
20
16
  function parseArgs(argv) {
21
17
  const args = {
22
- out: process.cwd(),
23
- releaseCliPkg: DEFAULT_RELEASE_CLI_PKG,
24
- releaseCliVersion: DEFAULT_RELEASE_CLI_VERSION
18
+ out: process.cwd()
25
19
  };
26
20
 
27
21
  for (let i = 0; i < argv.length; i += 1) {
@@ -39,18 +33,6 @@ function parseArgs(argv) {
39
33
  continue;
40
34
  }
41
35
 
42
- if (token === '--release-cli-pkg') {
43
- args.releaseCliPkg = argv[i + 1];
44
- i += 1;
45
- continue;
46
- }
47
-
48
- if (token === '--release-cli-version') {
49
- args.releaseCliVersion = argv[i + 1];
50
- i += 1;
51
- continue;
52
- }
53
-
54
36
  if (token === '--help' || token === '-h') {
55
37
  args.help = true;
56
38
  continue;
@@ -96,10 +78,7 @@ function copyDirRecursive(sourceDir, targetDir) {
96
78
 
97
79
  function renderTemplateFile(filePath, variables) {
98
80
  const source = fs.readFileSync(filePath, 'utf8');
99
- const output = source
100
- .replace(/__PACKAGE_NAME__/g, variables.packageName)
101
- .replace(/__RELEASE_CLI_PKG__/g, variables.releaseCliPkg)
102
- .replace(/__RELEASE_CLI_VERSION__/g, variables.releaseCliVersion);
81
+ const output = source.replace(/__PACKAGE_NAME__/g, variables.packageName);
103
82
 
104
83
  fs.writeFileSync(filePath, output);
105
84
  }
@@ -116,10 +95,6 @@ async function run(argv) {
116
95
  throw new Error('Erro: informe um nome válido com --name (ex: hello-package ou @i-santos/swarm).');
117
96
  }
118
97
 
119
- if (!args.releaseCliPkg || !args.releaseCliVersion) {
120
- throw new Error('Erro: --release-cli-pkg e --release-cli-version devem ser informados corretamente.');
121
- }
122
-
123
98
  const packageRoot = path.resolve(__dirname, '..');
124
99
  const templateDir = path.join(packageRoot, 'template');
125
100
 
@@ -137,15 +112,11 @@ async function run(argv) {
137
112
  copyDirRecursive(templateDir, targetDir);
138
113
 
139
114
  renderTemplateFile(path.join(targetDir, 'package.json'), {
140
- packageName: args.name,
141
- releaseCliPkg: args.releaseCliPkg,
142
- releaseCliVersion: args.releaseCliVersion
115
+ packageName: args.name
143
116
  });
144
117
 
145
118
  renderTemplateFile(path.join(targetDir, 'README.md'), {
146
- packageName: args.name,
147
- releaseCliPkg: args.releaseCliPkg,
148
- releaseCliVersion: args.releaseCliVersion
119
+ packageName: args.name
149
120
  });
150
121
 
151
122
  console.log(`Pacote criado em ${targetDir}`);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@i-santos/create-package-starter",
3
- "version": "0.1.2",
4
- "description": "Scaffold new npm packages with standardized release scripts",
3
+ "version": "1.0.0",
4
+ "description": "Scaffold new npm packages with a standardized Changesets release workflow",
5
5
  "license": "MIT",
6
6
  "author": "Igor Santos",
7
7
  "homepage": "https://github.com/i-santos/package-starter#readme",
@@ -5,19 +5,13 @@ Pacote criado pelo `@i-santos/create-package-starter`.
5
5
  ## Comandos
6
6
 
7
7
  - `npm run check`
8
- - `npm run registry:start`
9
- - `npm run release:beta`
10
- - `npm run release:stable`
11
- - `npm run release:publish`
12
8
  - `npm run changeset`
13
9
  - `npm run version-packages`
14
10
  - `npm run release`
15
11
 
16
- ## Dependência de release
12
+ ## Fluxo de release
17
13
 
18
- Este pacote foi gerado para usar `__RELEASE_CLI_PKG__@__RELEASE_CLI_VERSION__`.
19
-
20
- ## CI/CD release
21
-
22
- - Workflow pronto em `.github/workflows/release.yml`.
23
- - Configuração de changesets em `.changeset/config.json`.
14
+ 1. Crie um changeset na PR: `npm run changeset`.
15
+ 2. Faça merge na `main`.
16
+ 3. O workflow `.github/workflows/release.yml` cria/atualiza a PR de release.
17
+ 4. Ao merge da PR de release, o publish é executado no npm.
@@ -4,16 +4,11 @@
4
4
  "description": "Pacote gerado pelo create-package-starter",
5
5
  "scripts": {
6
6
  "check": "node scripts/check.js",
7
- "release:beta": "release-cli beta",
8
- "release:stable": "release-cli stable",
9
- "release:publish": "release-cli publish",
10
- "registry:start": "release-cli registry http://127.0.0.1:4873",
11
7
  "changeset": "changeset",
12
8
  "version-packages": "changeset version",
13
- "release": "npm run check && npm run release:publish"
9
+ "release": "npm run check && changeset publish"
14
10
  },
15
11
  "devDependencies": {
16
- "__RELEASE_CLI_PKG__": "__RELEASE_CLI_VERSION__",
17
12
  "@changesets/cli": "^2.29.7"
18
13
  }
19
14
  }
@@ -7,10 +7,6 @@ const packageJsonPath = path.join(process.cwd(), 'package.json');
7
7
  const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
8
8
 
9
9
  const requiredScripts = [
10
- 'release:beta',
11
- 'release:stable',
12
- 'release:publish',
13
- 'registry:start',
14
10
  'changeset',
15
11
  'version-packages',
16
12
  'release'