@doikayt/typescript-build-config 0.1.10 → 0.1.11
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 +36 -7
- package/assets/doikayt-logo.png +0 -0
- package/assets/doikayt-logo.svg +60 -0
- package/package.json +17 -7
- package/src/playwright.js +50 -0
- package/src/postinstall.js +30 -0
- package/src/top-level/gitignore +34 -4
package/README.md
CHANGED
|
@@ -23,8 +23,8 @@ Shared build configuration presets for TypeScript-based projects.
|
|
|
23
23
|
|
|
24
24
|
## Purpose
|
|
25
25
|
|
|
26
|
-
This package centralises common build tooling configuration
|
|
27
|
-
TypeScript projects maintained under the `@doikayt` scope. The goal is a
|
|
26
|
+
This package centralises common build tooling configuration, release policy, and content assets
|
|
27
|
+
across all TypeScript projects maintained under the `@doikayt` scope. The goal is a
|
|
28
28
|
single source of truth for such settings that should be held constant across
|
|
29
29
|
projects, avoiding drift between repos over time.
|
|
30
30
|
The plugin encapsulates common build **policy** and release **workflow logic**
|
|
@@ -62,6 +62,28 @@ versions of these tools may produce peer dependency conflicts.
|
|
|
62
62
|
- Auto-changeset script (`scripts/auto-changeset.sh`)
|
|
63
63
|
- NPM token diagnostic workflow (`.github/workflows/verify-npm-token.yml`) — see
|
|
64
64
|
[Troubleshooting Publish Auth](docs/RELEASE-PROCESS.md#troubleshooting-publish-auth)
|
|
65
|
+
- Playwright config helper (`@doikayt/typescript-build-config/playwright`) — `nixChromiumLaunchOptions()`
|
|
66
|
+
discovers the system Chromium on quirky NixOS; `definePlaywrightConfig()` wraps `defineConfig` and
|
|
67
|
+
merges the result in. Transparent no-op on platforms where Playwright's bundled browser works.
|
|
68
|
+
`@playwright/test` is an **optional peer dependency** — it is not installed automatically.
|
|
69
|
+
Any project that imports from `@doikayt/typescript-build-config/playwright` must declare it
|
|
70
|
+
explicitly in its own `devDependencies`:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
npm install --save-dev @playwright/test
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
import { definePlaywrightConfig } from "@doikayt/typescript-build-config/playwright";
|
|
78
|
+
export default definePlaywrightConfig({
|
|
79
|
+
testDir: "code/tests/e2e",
|
|
80
|
+
testMatch: "**/*.spec.ts",
|
|
81
|
+
use: { baseURL: "http://localhost:8080" },
|
|
82
|
+
});
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
- Brand assets (`assets/doikayt-logo.png`, `assets/doikayt-logo.svg`) — shared logos for use
|
|
86
|
+
across all `@doikayt` project READMEs and documentation
|
|
65
87
|
|
|
66
88
|
## Delivery Model
|
|
67
89
|
|
|
@@ -73,9 +95,10 @@ _states_ it:
|
|
|
73
95
|
┌─────────────────────────────────────────────────┐
|
|
74
96
|
│ @doikayt/typescript-build-config │
|
|
75
97
|
│ │
|
|
76
|
-
│ presets
|
|
98
|
+
│ presets eslint prettier tsconfig playwright│
|
|
77
99
|
│ stubs src/top-level/* │
|
|
78
100
|
│ pipeline src/pipeline/* │
|
|
101
|
+
│ assets assets/* │
|
|
79
102
|
│ policy docs/RELEASE-PROCESS.md │
|
|
80
103
|
└─────────┬───────────────┬───────────────┬───────┘
|
|
81
104
|
│ │ │
|
|
@@ -83,10 +106,11 @@ _states_ it:
|
|
|
83
106
|
IN PLACE │ ON INSTALL │ NEVER COPIED │
|
|
84
107
|
│ │ │
|
|
85
108
|
presets stay in │ postinstall │ cited by URL │
|
|
86
|
-
node_modules — │ seeds stubs
|
|
87
|
-
updates flow │ pipeline
|
|
88
|
-
with npm update │
|
|
89
|
-
│
|
|
109
|
+
node_modules — │ seeds stubs, │ only; one │
|
|
110
|
+
updates flow │ pipeline, and │ canonical │
|
|
111
|
+
with npm update │ assets once; │ copy — drift │
|
|
112
|
+
│ consumer owns │ is impossible │
|
|
113
|
+
│ them; drift ⇒ │ │
|
|
90
114
|
│ diff warning │ │
|
|
91
115
|
▼ ▼ ▼
|
|
92
116
|
┌─────────────────────────────────────────────────┐
|
|
@@ -98,6 +122,7 @@ _states_ it:
|
|
|
98
122
|
│ node_modules (chan. 1) │
|
|
99
123
|
│ owned pipeline: .github/workflows/release.yml │
|
|
100
124
|
│ scripts/auto-changeset.sh │
|
|
125
|
+
│ owned assets: docs/assets/doikayt-logo.* │
|
|
101
126
|
│ CONTRIBUTING.md ─cites URL─► RELEASE-PROCESS.md│
|
|
102
127
|
└─────────────────────────────────────────────────┘
|
|
103
128
|
```
|
|
@@ -116,6 +141,10 @@ _states_ it:
|
|
|
116
141
|
- **Owned pipeline** — the release workflow and scripts, copied on install. "Owned" by
|
|
117
142
|
the **consumer repo**: it may edit its copies, upstream never overwrites them, and
|
|
118
143
|
postinstall prints a diff warning when a copy drifts from the canonical template.
|
|
144
|
+
- **Assets** — brand logos seeded once into `docs/assets/` by the postinstall script.
|
|
145
|
+
Same channel-2 treatment as the pipeline: copied if absent, skipped if identical,
|
|
146
|
+
warning (without a text diff) if diverged. Consumer owns the copy; it will not be
|
|
147
|
+
silently overwritten.
|
|
119
148
|
- **Policy** — the release process itself, stated once in
|
|
120
149
|
[docs/RELEASE-PROCESS.md](docs/RELEASE-PROCESS.md). Consumers reference it by URL from
|
|
121
150
|
their own contributor docs (as the consumer box shows) — never copied, so it cannot
|
|
Binary file
|