@kitschpatrol/create-project 1.0.0 → 1.0.1
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/dist/index.js +2 -1
- package/package.json +5 -1
- package/.github/workflows/github-release.yml +0 -81
- package/.github/workflows/set-github-metadata.yml +0 -21
- package/.prettierignore +0 -8
- package/.remarkrc.js +0 -5
- package/.vscode/extensions.json +0 -11
- package/.vscode/settings.json +0 -66
- package/cspell.config.js +0 -3
- package/eslint.config.ts +0 -19
- package/knip.config.ts +0 -5
- package/mdat.config.ts +0 -3
- package/pnpm-workspace.yaml +0 -7
- package/prettier.config.js +0 -3
- package/src/index.ts +0 -9
- package/src/template.ts +0 -72
- package/stylelint.config.js +0 -3
- package/tsconfig.build.json +0 -8
- package/tsconfig.json +0 -7
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kitschpatrol/create-project",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Kitschpatrol's TypeScript project templates.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -21,6 +21,10 @@
|
|
|
21
21
|
},
|
|
22
22
|
"type": "module",
|
|
23
23
|
"bin": "dist/index.js",
|
|
24
|
+
"files": [
|
|
25
|
+
"dist",
|
|
26
|
+
"templates"
|
|
27
|
+
],
|
|
24
28
|
"dependencies": {
|
|
25
29
|
"bingo": "^0.5.16",
|
|
26
30
|
"bingo-fs": "^0.5.5",
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
name: Create GitHub Release
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
tags:
|
|
6
|
-
- 'v[0-9]*'
|
|
7
|
-
|
|
8
|
-
jobs:
|
|
9
|
-
build:
|
|
10
|
-
name: Create Release
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
env:
|
|
13
|
-
ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN || secrets.GITHUB_TOKEN }}
|
|
14
|
-
IS_VALID_COMMIT: false
|
|
15
|
-
TAG_NAME: ''
|
|
16
|
-
|
|
17
|
-
steps:
|
|
18
|
-
- name: Checkout
|
|
19
|
-
uses: actions/checkout@v4
|
|
20
|
-
with:
|
|
21
|
-
fetch-depth: 0
|
|
22
|
-
|
|
23
|
-
- name: Log Token Type
|
|
24
|
-
run: |
|
|
25
|
-
if [ ${{ env.ACCESS_TOKEN }} == ${{ secrets.GITHUB_TOKEN }} ]; then
|
|
26
|
-
echo "🗝️ Authenticated with GitHub Token"
|
|
27
|
-
else
|
|
28
|
-
echo "🔑 Authenticated with Personal Access token"
|
|
29
|
-
fi
|
|
30
|
-
|
|
31
|
-
- name: Validate Tag and Branch
|
|
32
|
-
id: validation
|
|
33
|
-
run: |
|
|
34
|
-
TAG=$(git tag --contains HEAD | grep '^v[0-9]' | head -n 1)
|
|
35
|
-
echo "🏷️ Tag for commit is: $TAG"
|
|
36
|
-
BRANCH=$(git branch -r --contains tags/${GITHUB_REF_NAME} | grep 'origin/main' | xargs)
|
|
37
|
-
if [[ -z "$BRANCH" ]]; then
|
|
38
|
-
echo "🚨 Tag is not on main branch"
|
|
39
|
-
else
|
|
40
|
-
echo "🕊️ Current branch is: $BRANCH"
|
|
41
|
-
fi
|
|
42
|
-
if [[ -z "$TAG" || -z "$BRANCH" ]]; then
|
|
43
|
-
echo "IS_VALID_COMMIT=false" >> "$GITHUB_ENV"
|
|
44
|
-
echo "TAG_NAME=''" >> "$GITHUB_ENV"
|
|
45
|
-
else
|
|
46
|
-
echo "IS_VALID_COMMIT=true" >> "$GITHUB_ENV"
|
|
47
|
-
echo "TAG_NAME=$TAG" >> "$GITHUB_ENV"
|
|
48
|
-
fi
|
|
49
|
-
|
|
50
|
-
- name: Release Notes
|
|
51
|
-
if: env.IS_VALID_COMMIT == 'true'
|
|
52
|
-
id: release-notes
|
|
53
|
-
uses: kitschpatrol/github-action-release-changelog@v2
|
|
54
|
-
|
|
55
|
-
- name: Release
|
|
56
|
-
if: env.IS_VALID_COMMIT == 'true'
|
|
57
|
-
id: release
|
|
58
|
-
uses: kitschpatrol/github-action-release@v2
|
|
59
|
-
with:
|
|
60
|
-
token: ${{ env.ACCESS_TOKEN }}
|
|
61
|
-
draft: false
|
|
62
|
-
prerelease: false
|
|
63
|
-
name: ${{ env.TAG_NAME }}
|
|
64
|
-
tag_name: ${{ env.TAG_NAME }}
|
|
65
|
-
body: |
|
|
66
|
-
${{ steps.release-notes.outputs.changelog }}
|
|
67
|
-
files: |
|
|
68
|
-
readme.md
|
|
69
|
-
README.md
|
|
70
|
-
LICENSE
|
|
71
|
-
license.txt
|
|
72
|
-
CHANGELOG
|
|
73
|
-
CHANGELOG.md
|
|
74
|
-
changelog.md
|
|
75
|
-
|
|
76
|
-
- name: Log Release Details
|
|
77
|
-
if: env.IS_VALID_COMMIT == 'true'
|
|
78
|
-
run: |
|
|
79
|
-
echo "📦 Successfully released: ${{ env.TAG_NAME }}"
|
|
80
|
-
echo "🔗 Release URL: ${{ steps.release.outputs.url }}"
|
|
81
|
-
echo "🪪 Release ID: ${{ steps.release.outputs.id }}"
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
name: Set GitHub Metadata
|
|
2
|
-
on:
|
|
3
|
-
push:
|
|
4
|
-
branches: [main]
|
|
5
|
-
workflow_dispatch: {}
|
|
6
|
-
|
|
7
|
-
jobs:
|
|
8
|
-
build:
|
|
9
|
-
name: Set GitHub Metadata
|
|
10
|
-
runs-on: ubuntu-latest
|
|
11
|
-
|
|
12
|
-
steps:
|
|
13
|
-
- name: Checkout
|
|
14
|
-
uses: actions/checkout@v4
|
|
15
|
-
with:
|
|
16
|
-
fetch-depth: 0
|
|
17
|
-
|
|
18
|
-
- name: Sync Package info to GitHub
|
|
19
|
-
uses: kitschpatrol/github-action-repo-sync@v3
|
|
20
|
-
with:
|
|
21
|
-
TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
|
package/.prettierignore
DELETED
package/.remarkrc.js
DELETED
package/.vscode/extensions.json
DELETED
package/.vscode/settings.json
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"explorer.fileNesting.enabled": true,
|
|
3
|
-
"explorer.fileNesting.expand": false,
|
|
4
|
-
"explorer.fileNesting.patterns": {
|
|
5
|
-
"*.js": "*.ts.map, *.js.map, *.d.ts, *.d.ts.map, *.d.js.map",
|
|
6
|
-
"*.ts": "*.ts.map, *.d.ts, *.d.ts.map",
|
|
7
|
-
".env": ".env.*",
|
|
8
|
-
"package.json": ".*ignore, .*rc, .*.js, .*.mjs, .*.cjs, .*.ts, .*.mts, .*.cts, .*.json, .*.jsonc, .*.json5, .*.yml, .*.yaml, *config.js, *config.mjs, *config.cjs, *config.ts, *config.mts, *config.cts, *config.json, *config.jsonc, *config.json5, *config.yml, *config.yaml, pnpm*, workspace*, yarn*, lerna.json, netlify.toml, package-lock.json, turbo.json, vercel.json, wrangler.toml, yarn.lock",
|
|
9
|
-
"readme.md": "authors*, backers*, changelog*, citation*, code_of_conduct*, contributing*, contributors*, copying*, credits*, governance*, history*, license*, maintainers*, release_notes*, security*, sponsors*"
|
|
10
|
-
},
|
|
11
|
-
"typescript.enablePromptUseWorkspaceTsdk": true,
|
|
12
|
-
"typescript.tsdk": "node_modules/typescript/lib",
|
|
13
|
-
"editor.codeActionsOnSave": {
|
|
14
|
-
"source.fixAll": "explicit",
|
|
15
|
-
"source.organizeImports": "never"
|
|
16
|
-
},
|
|
17
|
-
"eslint.enable": true,
|
|
18
|
-
"eslint.runtime": "node",
|
|
19
|
-
"eslint.validate": [
|
|
20
|
-
"astro",
|
|
21
|
-
"html",
|
|
22
|
-
"javascript",
|
|
23
|
-
"javascriptreact",
|
|
24
|
-
"json",
|
|
25
|
-
"json5",
|
|
26
|
-
"jsonc",
|
|
27
|
-
"markdown",
|
|
28
|
-
"mdx",
|
|
29
|
-
"svelte",
|
|
30
|
-
"toml",
|
|
31
|
-
"typescript",
|
|
32
|
-
"typescriptreact",
|
|
33
|
-
"xml",
|
|
34
|
-
"yaml"
|
|
35
|
-
],
|
|
36
|
-
"eslint.useFlatConfig": true,
|
|
37
|
-
"cSpell.enabled": true,
|
|
38
|
-
"cSpell.workspaceRootPath": ".",
|
|
39
|
-
"[astro]": {
|
|
40
|
-
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
41
|
-
},
|
|
42
|
-
"[gitignore]": {
|
|
43
|
-
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
44
|
-
},
|
|
45
|
-
"[ruby]": {
|
|
46
|
-
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
47
|
-
},
|
|
48
|
-
"[shellscript]": {
|
|
49
|
-
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
50
|
-
},
|
|
51
|
-
"[svelte]": {
|
|
52
|
-
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
53
|
-
},
|
|
54
|
-
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
55
|
-
"editor.formatOnSave": true,
|
|
56
|
-
"prettier.documentSelectors": [
|
|
57
|
-
"**/.eslintignore",
|
|
58
|
-
"**/.node-version",
|
|
59
|
-
"**/.npmrc",
|
|
60
|
-
"**/.prettierignore",
|
|
61
|
-
"**/*.astro",
|
|
62
|
-
"**/*.rb",
|
|
63
|
-
"**/*.svelte"
|
|
64
|
-
],
|
|
65
|
-
"prettier.enable": true
|
|
66
|
-
}
|
package/cspell.config.js
DELETED
package/eslint.config.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { eslintConfig } from '@kitschpatrol/eslint-config'
|
|
2
|
-
|
|
3
|
-
export default eslintConfig(
|
|
4
|
-
{
|
|
5
|
-
// Enable as needed:
|
|
6
|
-
// astro: true,
|
|
7
|
-
// react: true,
|
|
8
|
-
// svelte: true,
|
|
9
|
-
type: 'lib',
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
basePath: 'templates/cli',
|
|
13
|
-
files: ['package.json'],
|
|
14
|
-
rules: {
|
|
15
|
-
'json-package/valid-author': 'off',
|
|
16
|
-
'json-package/valid-name': 'off',
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
)
|
package/knip.config.ts
DELETED
package/mdat.config.ts
DELETED
package/pnpm-workspace.yaml
DELETED
package/prettier.config.js
DELETED
package/src/index.ts
DELETED
package/src/template.ts
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/* eslint-disable node/no-unsupported-features/node-builtins */
|
|
2
|
-
|
|
3
|
-
import { createTemplate } from 'bingo'
|
|
4
|
-
import { intakeDirectory } from 'bingo-fs'
|
|
5
|
-
import { handlebars } from 'bingo-handlebars'
|
|
6
|
-
import path from 'node:path'
|
|
7
|
-
import { z } from 'zod'
|
|
8
|
-
|
|
9
|
-
export default createTemplate({
|
|
10
|
-
about: {
|
|
11
|
-
name: 'Kitschpatrol Create Project',
|
|
12
|
-
// Show template origin in GitHub... don't want this right now
|
|
13
|
-
// repository: {
|
|
14
|
-
// owner: 'kitschpatrol',
|
|
15
|
-
// repository: 'https://github.com/kitschpatrol/create-project',
|
|
16
|
-
// },
|
|
17
|
-
},
|
|
18
|
-
options: {
|
|
19
|
-
/* eslint-disable perfectionist/sort-objects */
|
|
20
|
-
type: z
|
|
21
|
-
.enum(['minimal', 'web', 'cli', 'library', 'cli+library'])
|
|
22
|
-
.default('minimal')
|
|
23
|
-
.describe('The type of project to create'),
|
|
24
|
-
'author-name': z.string().default('Eric Mika').describe('The name of the author'),
|
|
25
|
-
'author-email': z.string().default('eric@ericmika.com').describe('The email of the author'),
|
|
26
|
-
'author-url': z.string().default('https://ericmika.com').describe('The URL of the author'),
|
|
27
|
-
'cli-command-name': z
|
|
28
|
-
.string()
|
|
29
|
-
.default('new-project')
|
|
30
|
-
.describe('CLI command name (if applicable)'),
|
|
31
|
-
// "Future" prefix prevents Bingo from creating a GitHub repository
|
|
32
|
-
// Pending resolution of https://github.com/bingo-js/bingo/issues/365
|
|
33
|
-
'github-owner': z
|
|
34
|
-
.string()
|
|
35
|
-
.default('kitschpatrol')
|
|
36
|
-
.describe('The owner of the future repository'),
|
|
37
|
-
'github-repository': z
|
|
38
|
-
.string()
|
|
39
|
-
.default(`new-project`)
|
|
40
|
-
.describe('The name of the future repository / package'),
|
|
41
|
-
'npm-otp-command': z
|
|
42
|
-
.string()
|
|
43
|
-
.default("op read 'op://Personal/Npmjs/one-time password?attribute=otp'")
|
|
44
|
-
.describe('A shell command that returns your one-time password for publishing to npm'),
|
|
45
|
-
/* eslint-enable perfectionist/sort-objects */
|
|
46
|
-
},
|
|
47
|
-
async produce(params) {
|
|
48
|
-
const { options } = params
|
|
49
|
-
|
|
50
|
-
return {
|
|
51
|
-
files: {
|
|
52
|
-
...(await intakeDirectory(path.join(import.meta.dirname, `../templates/${options.type}`), {
|
|
53
|
-
exclude: /node_modules|pnpm-lock\.yaml/,
|
|
54
|
-
})),
|
|
55
|
-
'license.txt': await handlebars(
|
|
56
|
-
path.join(import.meta.dirname, `../templates/${options.type}/license.txt`),
|
|
57
|
-
options,
|
|
58
|
-
),
|
|
59
|
-
'package.json': await handlebars(
|
|
60
|
-
path.join(import.meta.dirname, `../templates/${options.type}/package.json`),
|
|
61
|
-
options,
|
|
62
|
-
),
|
|
63
|
-
},
|
|
64
|
-
scripts: [
|
|
65
|
-
{
|
|
66
|
-
commands: ['pnpm install', 'pnpm run build', 'pnpm run fix'],
|
|
67
|
-
phase: 0,
|
|
68
|
-
},
|
|
69
|
-
],
|
|
70
|
-
}
|
|
71
|
-
},
|
|
72
|
-
})
|
package/stylelint.config.js
DELETED
package/tsconfig.build.json
DELETED