pipework 0.1.0 → 0.1.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/README.md +59 -31
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +1 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/config/discover.d.ts +3 -0
- package/dist/config/discover.d.ts.map +1 -0
- package/dist/config/discover.js +20 -0
- package/dist/config/discover.js.map +1 -0
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/load.js +1 -1
- package/dist/config/load.js.map +1 -1
- package/dist/config/namespace.d.ts +2 -0
- package/dist/config/namespace.d.ts.map +1 -1
- package/dist/config/namespace.js +3 -0
- package/dist/config/namespace.js.map +1 -1
- package/dist/config/resolve.d.ts +1 -1
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +15 -7
- package/dist/config/resolve.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/test/auto-setup.d.ts +2 -0
- package/dist/test/auto-setup.d.ts.map +1 -0
- package/dist/test/auto-setup.js +29 -0
- package/dist/test/auto-setup.js.map +1 -0
- package/dist/test/vitest.d.ts +2 -0
- package/dist/test/vitest.d.ts.map +1 -1
- package/dist/test/vitest.js +15 -4
- package/dist/test/vitest.js.map +1 -1
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -36,7 +36,7 @@ const instance = createPipework({
|
|
|
36
36
|
const createNote = fitting
|
|
37
37
|
.use('app')
|
|
38
38
|
.auth<{ userId: string; tenantId: string }>()
|
|
39
|
-
.input(schema.object({ title: schema.string(), body: schema.string() }))
|
|
39
|
+
.input(schema.check.object({ title: schema.check.string(), body: schema.check.string() }))
|
|
40
40
|
.route('POST', '/notes')
|
|
41
41
|
.fit(async ({ app, auth, input }) => {
|
|
42
42
|
const [note] = await app
|
|
@@ -63,47 +63,75 @@ pnpm add pipework
|
|
|
63
63
|
|
|
64
64
|
Includes `drizzle-orm`, `postgres`, `zod`, and `fastify` — no additional dependencies needed.
|
|
65
65
|
|
|
66
|
-
Database
|
|
66
|
+
Database schema definitions, SQL operations, and validation are accessed through Pipework's namespaces:
|
|
67
67
|
|
|
68
68
|
```typescript
|
|
69
|
-
import {
|
|
69
|
+
import { schema, pipe } from 'pipework'
|
|
70
70
|
|
|
71
|
-
// Database: table definitions,
|
|
72
|
-
const users =
|
|
73
|
-
id:
|
|
74
|
-
name:
|
|
71
|
+
// Database schema: table definitions, column types
|
|
72
|
+
const users = schema.table('users', {
|
|
73
|
+
id: schema.col.uuid('id').primaryKey().defaultRandom(),
|
|
74
|
+
name: schema.col.text('name').notNull(),
|
|
75
75
|
})
|
|
76
76
|
|
|
77
77
|
// Validation
|
|
78
|
-
const input = schema.object({ name: schema.string().min(1) })
|
|
78
|
+
const input = schema.check.object({ name: schema.check.string().min(1) })
|
|
79
|
+
|
|
80
|
+
// SQL
|
|
81
|
+
const rows = await db.execute(pipe.sql`SELECT * FROM users`)
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Testing
|
|
85
|
+
|
|
86
|
+
Add one line to your vitest config. Pipework discovers `pipework.config.ts`, connects to the test database, and wraps every test in a transaction that rolls back automatically.
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
// vitest.config.ts
|
|
90
|
+
test: { setupFiles: ['pipework/test/setup'] }
|
|
79
91
|
```
|
|
80
92
|
|
|
93
|
+
```typescript
|
|
94
|
+
// tests/notes.test.ts
|
|
95
|
+
import { useTestDb, withFlow } from 'pipework/test'
|
|
96
|
+
import { pipe } from 'pipework'
|
|
97
|
+
|
|
98
|
+
it('creates a note', async () => {
|
|
99
|
+
const db = useTestDb()
|
|
100
|
+
await withFlow(async () => {
|
|
101
|
+
await db.execute(pipe.sql`INSERT INTO notes (title) VALUES ('Test')`)
|
|
102
|
+
const rows = await db.execute(pipe.sql`SELECT * FROM notes`)
|
|
103
|
+
expect(rows).toHaveLength(1)
|
|
104
|
+
})
|
|
105
|
+
})
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
No setup functions, no config passing, no teardown.
|
|
109
|
+
|
|
81
110
|
## Documentation
|
|
82
111
|
|
|
83
|
-
- **[Getting Started](docs/getting-started.md)** — zero to running server
|
|
112
|
+
- **[Getting Started](https://github.com/theconstructory/pipework/blob/main/docs/getting-started.md)** — zero to running server
|
|
84
113
|
- **Guides**
|
|
85
|
-
- [Configuration](docs/guides/configuration.md)
|
|
86
|
-
- [
|
|
87
|
-
- [
|
|
88
|
-
- [Background Jobs](docs/guides/jobs.md)
|
|
89
|
-
- [
|
|
90
|
-
- [
|
|
91
|
-
- [
|
|
92
|
-
- [
|
|
93
|
-
- [
|
|
94
|
-
- [
|
|
95
|
-
- [
|
|
96
|
-
- [
|
|
97
|
-
- [
|
|
98
|
-
- [
|
|
99
|
-
- [
|
|
100
|
-
- [
|
|
101
|
-
- [
|
|
102
|
-
|
|
103
|
-
-
|
|
104
|
-
- [
|
|
105
|
-
- [
|
|
106
|
-
- [Assertion Provenance](docs/recipes/assertion-provenance.md) — sourced claims, conflict detection, audit
|
|
114
|
+
- [Configuration](https://github.com/theconstructory/pipework/blob/main/docs/guides/configuration.md)
|
|
115
|
+
- [Handlers](https://github.com/theconstructory/pipework/blob/main/docs/guides/handlers.md)
|
|
116
|
+
- [Auth & Tenants](https://github.com/theconstructory/pipework/blob/main/docs/guides/auth-and-tenants.md)
|
|
117
|
+
- [Background Jobs](https://github.com/theconstructory/pipework/blob/main/docs/guides/jobs.md)
|
|
118
|
+
- [Temporal Records](https://github.com/theconstructory/pipework/blob/main/docs/guides/temporal.md)
|
|
119
|
+
- [Resource CRUD](https://github.com/theconstructory/pipework/blob/main/docs/guides/resources.md)
|
|
120
|
+
- [Caching](https://github.com/theconstructory/pipework/blob/main/docs/guides/caching.md)
|
|
121
|
+
- [State Machines](https://github.com/theconstructory/pipework/blob/main/docs/guides/state-machines.md)
|
|
122
|
+
- [Pipelines](https://github.com/theconstructory/pipework/blob/main/docs/guides/pipelines.md)
|
|
123
|
+
- [pgvector & Search](https://github.com/theconstructory/pipework/blob/main/docs/guides/vector.md)
|
|
124
|
+
- [RBAC](https://github.com/theconstructory/pipework/blob/main/docs/guides/rbac.md)
|
|
125
|
+
- [Audit Trail](https://github.com/theconstructory/pipework/blob/main/docs/guides/audit.md)
|
|
126
|
+
- [HTTP Security](https://github.com/theconstructory/pipework/blob/main/docs/guides/security.md)
|
|
127
|
+
- [Logging](https://github.com/theconstructory/pipework/blob/main/docs/guides/logging.md)
|
|
128
|
+
- [OpenAPI](https://github.com/theconstructory/pipework/blob/main/docs/guides/openapi.md)
|
|
129
|
+
- [Testing](https://github.com/theconstructory/pipework/blob/main/docs/guides/testing.md)
|
|
130
|
+
- [Error Handling](https://github.com/theconstructory/pipework/blob/main/docs/guides/errors.md)
|
|
131
|
+
- **Recipes**
|
|
132
|
+
- [Content Pipeline](https://github.com/theconstructory/pipework/blob/main/docs/recipes/content-pipeline.md)
|
|
133
|
+
- [Flexible Entities](https://github.com/theconstructory/pipework/blob/main/docs/recipes/flexible-entities.md)
|
|
134
|
+
- [Assertion Provenance](https://github.com/theconstructory/pipework/blob/main/docs/recipes/assertion-provenance.md)
|
|
107
135
|
|
|
108
136
|
## Design principles
|
|
109
137
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAiBA,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAiBtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,eAAe,GAAG
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,eAAe,GAAG;;;;;;;;;;;CAWvB,CAAA;AAED,MAAM,UAAU,IAAI,CAAC,GAAW;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAA;IAClD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC,CAAA;IAErD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,8CAA8C,CAAC,CAAA;IACtD,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;QACnD,OAAO,CAAC,4BAA4B,CAAC,CAAA;IACvC,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9C,OAAO,CAAC,WAAW,cAAc,EAAE,CAAC,CAAA;IACtC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,cAAc,4BAA4B,CAAC,CAAA;IACrD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/config/discover.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAK5C,wBAAsB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAuBrE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { resolve } from 'node:path';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import { pathToFileURL } from 'node:url';
|
|
4
|
+
import { ConfigError } from './resolve.js';
|
|
5
|
+
const CONFIG_FILENAME = 'pipework.config.ts';
|
|
6
|
+
export async function discoverConfig(cwd) {
|
|
7
|
+
const root = cwd ?? process.cwd();
|
|
8
|
+
const configPath = resolve(root, CONFIG_FILENAME);
|
|
9
|
+
if (!existsSync(configPath)) {
|
|
10
|
+
throw new ConfigError(`No ${CONFIG_FILENAME} found in ${root}.`, `Create one with \`pipework init\`, or pass a config object directly.`);
|
|
11
|
+
}
|
|
12
|
+
const configUrl = pathToFileURL(configPath).href;
|
|
13
|
+
const mod = await import(configUrl);
|
|
14
|
+
const raw = mod['default'] ?? mod;
|
|
15
|
+
if (typeof raw !== 'object' || raw === null) {
|
|
16
|
+
throw new ConfigError(`${CONFIG_FILENAME} must export a config object as its default export.`, `Export your config with: export default { databases: { ... } }`);
|
|
17
|
+
}
|
|
18
|
+
return raw;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=discover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/config/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,MAAM,eAAe,GAAG,oBAAoB,CAAA;AAE5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAY;IAC/C,MAAM,IAAI,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACjC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;IAEjD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,WAAW,CACnB,MAAM,eAAe,aAAa,IAAI,GAAG,EACzC,sEAAsE,CACvE,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAA;IAChD,MAAM,GAAG,GAA4B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAA;IAC5D,MAAM,GAAG,GAAY,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAA;IAE1C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,IAAI,WAAW,CACnB,GAAG,eAAe,qDAAqD,EACvE,gEAAgE,CACjE,CAAA;IACH,CAAC;IAED,OAAO,GAAgB,CAAA;AACzB,CAAC"}
|
package/dist/config/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { trunkConfigSchema, type Blueprint, type DatabaseConfig, type TestConfig, type Environment, type IsolationStrategy } from './schema.js';
|
|
2
2
|
export { loadConfig, type ResolvedConfig, type ResolvedDatabase } from './load.js';
|
|
3
3
|
export { resolveEnvironment, ConfigError } from './resolve.js';
|
|
4
|
+
export { discoverConfig } from './discover.js';
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/I,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/I,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/config/index.js
CHANGED
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAkG,MAAM,aAAa,CAAA;AAC/I,OAAO,EAAE,UAAU,EAA8C,MAAM,WAAW,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAkG,MAAM,aAAa,CAAA;AAC/I,OAAO,EAAE,UAAU,EAA8C,MAAM,WAAW,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/config/load.js
CHANGED
|
@@ -13,7 +13,7 @@ export function loadConfig(raw) {
|
|
|
13
13
|
function buildResolved(config, environment) {
|
|
14
14
|
const dbMap = new Map();
|
|
15
15
|
for (const [name, dbConfig] of Object.entries(config.databases)) {
|
|
16
|
-
const url = resolveDbUrl(dbConfig.url, dbConfig.testUrl, environment);
|
|
16
|
+
const url = resolveDbUrl(dbConfig.url, dbConfig.testUrl, environment, name);
|
|
17
17
|
dbMap.set(name, resolveDatabase(name, dbConfig, url));
|
|
18
18
|
}
|
|
19
19
|
const declaredNames = [...dbMap.keys()];
|
package/dist/config/load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiF,MAAM,aAAa,CAAA;AAC9H,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAqB5E,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAC/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/F,MAAM,IAAI,WAAW,CACnB,gCAAgC,MAAM,EAAE,EACxC,4DAA4D,CAC7D,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAA;IAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,kBAAkB,EAAE,CAAA;IAC9D,OAAO,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;AAC3C,CAAC;AAED,SAAS,aAAa,CAAC,MAAiB,EAAE,WAAwB;IAChE,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAA;IAEjD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAChE,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { loadConfig, ConfigError } from './index.js';
|
|
2
|
+
import type { Blueprint } from './schema.js';
|
|
3
|
+
export declare function defineConfig(config: Blueprint): Blueprint;
|
|
2
4
|
export declare const config: {
|
|
3
5
|
load: typeof loadConfig;
|
|
4
6
|
configSchema: import("zod/v4").ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/config/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,WAAW,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/config/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,WAAW,EAAE,MAAM,YAAY,CAAA;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAEzD;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIlB,CAAA"}
|
package/dist/config/namespace.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/config/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/config/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGvE,MAAM,UAAU,YAAY,CAAC,MAAiB;IAC5C,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,UAAU;IAChB,YAAY,EAAE,iBAAiB;IAC/B,WAAW;CACZ,CAAA"}
|
package/dist/config/resolve.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Environment } from './schema.js';
|
|
2
2
|
export declare function resolveEnvironment(): Environment;
|
|
3
|
-
export declare function resolveDbUrl(envVarName: string, testEnvVarName: string | undefined, environment: Environment): string;
|
|
3
|
+
export declare function resolveDbUrl(envVarName: string, testEnvVarName: string | undefined, environment: Environment, dbName?: string): string;
|
|
4
4
|
export declare class ConfigError extends Error {
|
|
5
5
|
readonly hint: string;
|
|
6
6
|
constructor(message: string, hint: string);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,wBAAgB,kBAAkB,IAAI,WAAW,CAWhD;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,wBAAgB,kBAAkB,IAAI,WAAW,CAWhD;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAgCtI;AAED,qBAAa,WAAY,SAAQ,KAAK;IACpC,SAAgB,IAAI,EAAE,MAAM,CAAA;gBAEhB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAK1C"}
|
package/dist/config/resolve.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export function resolveEnvironment() {
|
|
2
|
-
const explicit = process.env['
|
|
2
|
+
const explicit = process.env['PIPEWORK_ENV'];
|
|
3
3
|
if (explicit === 'test' || explicit === 'development' || explicit === 'production') {
|
|
4
4
|
return explicit;
|
|
5
5
|
}
|
|
@@ -10,14 +10,22 @@ export function resolveEnvironment() {
|
|
|
10
10
|
return 'production';
|
|
11
11
|
return 'development';
|
|
12
12
|
}
|
|
13
|
-
export function resolveDbUrl(envVarName, testEnvVarName, environment) {
|
|
13
|
+
export function resolveDbUrl(envVarName, testEnvVarName, environment, dbName) {
|
|
14
14
|
if (environment === 'test') {
|
|
15
|
-
if (testEnvVarName
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
if (testEnvVarName === undefined) {
|
|
16
|
+
throw new ConfigError(`Database "${dbName ?? envVarName}" has no testUrl configured, but environment is "test".`, `Add testUrl to your database config:\n\n` +
|
|
17
|
+
` databases: {\n` +
|
|
18
|
+
` ${dbName ?? 'app'}: {\n` +
|
|
19
|
+
` url: '${envVarName}',\n` +
|
|
20
|
+
` testUrl: '${envVarName}_TEST', // <-- add this\n` +
|
|
21
|
+
` },\n` +
|
|
22
|
+
` }\n\n` +
|
|
23
|
+
`Then set ${envVarName}_TEST in your environment.`);
|
|
20
24
|
}
|
|
25
|
+
const value = process.env[testEnvVarName];
|
|
26
|
+
if (value !== undefined && value !== '')
|
|
27
|
+
return value;
|
|
28
|
+
throw new ConfigError(`Missing test database URL: environment variable "${testEnvVarName}" is not set.`, `Set ${testEnvVarName} in your .env file or environment.`);
|
|
21
29
|
}
|
|
22
30
|
const value = process.env[envVarName];
|
|
23
31
|
if (value !== undefined && value !== '')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB;IAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB;IAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IAC5C,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QACnF,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACvC,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,MAAM,CAAA;IACrC,IAAI,OAAO,KAAK,YAAY;QAAE,OAAO,YAAY,CAAA;IAEjD,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,UAAkB,EAAE,cAAkC,EAAE,WAAwB,EAAE,MAAe;IAC5H,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAC3B,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,WAAW,CACnB,aAAa,MAAM,IAAI,UAAU,yDAAyD,EAC1F,0CAA0C;gBAC1C,kBAAkB;gBAClB,OAAO,MAAM,IAAI,KAAK,OAAO;gBAC7B,eAAe,UAAU,MAAM;gBAC/B,mBAAmB,UAAU,4BAA4B;gBACzD,UAAU;gBACV,SAAS;gBACT,YAAY,UAAU,4BAA4B,CACnD,CAAA;QACH,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QACzC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;YAAE,OAAO,KAAK,CAAA;QAErD,MAAM,IAAI,WAAW,CACnB,oDAAoD,cAAc,eAAe,EACjF,OAAO,cAAc,oCAAoC,CAC1D,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACrC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,KAAK,CAAA;IAErD,MAAM,IAAI,WAAW,CACnB,+CAA+C,UAAU,eAAe,EACxE,OAAO,UAAU,oCAAoC,CACtD,CAAA;AACH,CAAC;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpB,IAAI,CAAQ;IAE5B,YAAY,OAAe,EAAE,IAAY;QACvC,KAAK,CAAC,cAAc,OAAO,eAAe,IAAI,IAAI,CAAC,CAAA;QACnD,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -47,7 +47,7 @@ export { lifecycle } from './lifecycle/namespace.js';
|
|
|
47
47
|
export type { LifecycleConfig, StartupHook, ShutdownHook, HealthCheck, HealthCheckResult, HealthStatus, StartupOptions } from './lifecycle/index.js';
|
|
48
48
|
export { errors } from './errors/namespace.js';
|
|
49
49
|
export { PipeworkError, NotFoundError, UnauthorizedError, ForbiddenError, ValidationError, ConflictError } from './errors/index.js';
|
|
50
|
-
export { config } from './config/namespace.js';
|
|
50
|
+
export { config, defineConfig } from './config/namespace.js';
|
|
51
51
|
export type { ResolvedConfig, ResolvedDatabase, Blueprint, DatabaseConfig, TestConfig, Environment, IsolationStrategy } from './config/index.js';
|
|
52
52
|
export { ConfigError } from './config/index.js';
|
|
53
53
|
export { log } from './log/namespace.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAE3F,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAChD,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACtH,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EACrE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACxF,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEhE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1E,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACpF,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAC3G,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAChE,mBAAmB,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAEhH,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,gBAAgB,EACnD,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAElF,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE5F,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,kBAAkB,EAAE,KAAK,EACtE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE/F,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAE5E,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EACpF,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAC/E,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAC/E,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EACpF,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,sBAAsB,EACvE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAErE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEzG,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EACzE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEzE,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACpD,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAClF,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,YAAY,EAAE,cAAc,EAAE,uBAAuB,EAAE,qBAAqB,EAC1E,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEtE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EACnE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EACtE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAC5D,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EACvE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AACxC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -20,7 +20,7 @@ export { openapi } from './openapi/namespace.js';
|
|
|
20
20
|
export { lifecycle } from './lifecycle/namespace.js';
|
|
21
21
|
export { errors } from './errors/namespace.js';
|
|
22
22
|
export { PipeworkError, NotFoundError, UnauthorizedError, ForbiddenError, ValidationError, ConflictError } from './errors/index.js';
|
|
23
|
-
export { config } from './config/namespace.js';
|
|
23
|
+
export { config, defineConfig } from './config/namespace.js';
|
|
24
24
|
export { ConfigError } from './config/index.js';
|
|
25
25
|
export { log } from './log/namespace.js';
|
|
26
26
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAG9C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAI9C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAIhD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAO1C,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAQ1C,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAI1C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAG9C,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAI1C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAG5C,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAK1C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAI5C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAKhD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAIlD,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAIpD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAIlD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAIpD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EACtE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAG9C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAI9C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAIhD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAO1C,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAQ1C,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAI1C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAG9C,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAI1C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAG5C,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAK1C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAI5C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAKhD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAIlD,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAIpD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAIlD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAIpD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EACtE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAG5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-setup.d.ts","sourceRoot":"","sources":["../../src/test/auto-setup.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { beforeAll, afterAll, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { discoverConfig } from '../config/discover.js';
|
|
3
|
+
import { createPipework } from '../pipework.js';
|
|
4
|
+
import { setupTestDatabases, teardownTestDatabases } from './setup.js';
|
|
5
|
+
import { beginTestIsolation, endTestIsolation } from './plugin.js';
|
|
6
|
+
import { _setTestState } from './vitest.js';
|
|
7
|
+
let _testContext = null;
|
|
8
|
+
const config = await discoverConfig();
|
|
9
|
+
const instance = createPipework(config);
|
|
10
|
+
_setTestState(instance);
|
|
11
|
+
beforeAll(async () => {
|
|
12
|
+
await setupTestDatabases(instance);
|
|
13
|
+
});
|
|
14
|
+
afterAll(async () => {
|
|
15
|
+
await instance.pool.closeAll();
|
|
16
|
+
await teardownTestDatabases();
|
|
17
|
+
});
|
|
18
|
+
beforeEach(async () => {
|
|
19
|
+
_testContext = await beginTestIsolation(instance);
|
|
20
|
+
_setTestState(instance, _testContext);
|
|
21
|
+
});
|
|
22
|
+
afterEach(async () => {
|
|
23
|
+
if (_testContext) {
|
|
24
|
+
await endTestIsolation(instance, _testContext);
|
|
25
|
+
_testContext = null;
|
|
26
|
+
_setTestState(instance, null);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=auto-setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-setup.js","sourceRoot":"","sources":["../../src/test/auto-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAoB,MAAM,aAAa,CAAA;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,IAAI,YAAY,GAAuB,IAAI,CAAA;AAE3C,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAA;AACrC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;AAEvC,aAAa,CAAC,QAAQ,CAAC,CAAA;AAEvB,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAA;AACpC,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,KAAK,IAAI,EAAE;IAClB,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;IAC9B,MAAM,qBAAqB,EAAE,CAAA;AAC/B,CAAC,CAAC,CAAA;AAEF,UAAU,CAAC,KAAK,IAAI,EAAE;IACpB,YAAY,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACjD,aAAa,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;AACvC,CAAC,CAAC,CAAA;AAEF,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC9C,YAAY,GAAG,IAAI,CAAA;QACnB,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC/B,CAAC;AACH,CAAC,CAAC,CAAA"}
|
package/dist/test/vitest.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { DB } from '../db/index.js';
|
|
2
2
|
import type { Blueprint } from '../config/index.js';
|
|
3
3
|
import type { Manifold } from '../pipework.js';
|
|
4
|
+
import { type TestContext } from './plugin.js';
|
|
4
5
|
export { type TestContext, type TestDatabaseConnections } from './plugin.js';
|
|
6
|
+
export declare function _setTestState(instance: Manifold, testContext?: TestContext | null): void;
|
|
5
7
|
export declare function setupPipeworkTests(configOrInstance: Blueprint | Manifold): Manifold;
|
|
6
8
|
export declare function useTestDb(name?: string): DB;
|
|
7
9
|
export declare function useTestInstance(): Manifold;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../../src/test/vitest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../../src/test/vitest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAG9C,OAAO,EAAyE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAErH,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAK5E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAKxF;AAED,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAyBnF;AAED,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,EAAE,CAkB3C;AAED,wBAAgB,eAAe,IAAI,QAAQ,CAS1C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAU1C"}
|
package/dist/test/vitest.js
CHANGED
|
@@ -5,6 +5,12 @@ import { beginTestIsolation, endTestIsolation, createTestContext, runInContext }
|
|
|
5
5
|
export {} from './plugin.js';
|
|
6
6
|
let _testContext = null;
|
|
7
7
|
let _instance = null;
|
|
8
|
+
export function _setTestState(instance, testContext) {
|
|
9
|
+
_instance = instance;
|
|
10
|
+
if (testContext !== undefined) {
|
|
11
|
+
_testContext = testContext;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
8
14
|
export function setupPipeworkTests(configOrInstance) {
|
|
9
15
|
const instance = isInstance(configOrInstance) ? configOrInstance : createPipework(configOrInstance);
|
|
10
16
|
_instance = instance;
|
|
@@ -28,8 +34,9 @@ export function setupPipeworkTests(configOrInstance) {
|
|
|
28
34
|
}
|
|
29
35
|
export function useTestDb(name) {
|
|
30
36
|
if (!_testContext || !_instance) {
|
|
31
|
-
throw new Error('[pipework] No test context available
|
|
32
|
-
'
|
|
37
|
+
throw new Error('[pipework] No test context available.\n\n' +
|
|
38
|
+
' Add to your vitest.config.ts:\n' +
|
|
39
|
+
' test: { setupFiles: [\'pipework/test/setup\'] }\n');
|
|
33
40
|
}
|
|
34
41
|
const resolvedName = name ?? _instance.config.defaultDatabaseName();
|
|
35
42
|
const db = _testContext.db[resolvedName];
|
|
@@ -41,13 +48,17 @@ export function useTestDb(name) {
|
|
|
41
48
|
}
|
|
42
49
|
export function useTestInstance() {
|
|
43
50
|
if (!_instance) {
|
|
44
|
-
throw new Error('[pipework] No test instance
|
|
51
|
+
throw new Error('[pipework] No test instance available.\n\n' +
|
|
52
|
+
' Add to your vitest.config.ts:\n' +
|
|
53
|
+
' test: { setupFiles: [\'pipework/test/setup\'] }\n');
|
|
45
54
|
}
|
|
46
55
|
return _instance;
|
|
47
56
|
}
|
|
48
57
|
export function withFlow(fn) {
|
|
49
58
|
if (!_testContext || !_instance) {
|
|
50
|
-
throw new Error('[pipework] No test context
|
|
59
|
+
throw new Error('[pipework] No test context available.\n\n' +
|
|
60
|
+
' Add to your vitest.config.ts:\n' +
|
|
61
|
+
' test: { setupFiles: [\'pipework/test/setup\'] }\n');
|
|
51
62
|
}
|
|
52
63
|
const ctx = createTestContext(_instance, _testContext);
|
|
53
64
|
return runInContext(ctx, fn);
|
package/dist/test/vitest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.js","sourceRoot":"","sources":["../../src/test/vitest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAInE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAoB,MAAM,aAAa,CAAA;AAErH,OAAO,EAAkD,MAAM,aAAa,CAAA;AAE5E,IAAI,YAAY,GAAuB,IAAI,CAAA;AAC3C,IAAI,SAAS,GAAoB,IAAI,CAAA;AAErC,MAAM,UAAU,kBAAkB,CAAC,gBAAsC;IACvE,MAAM,QAAQ,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;IACnG,SAAS,GAAG,QAAQ,CAAA;IAEpB,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC9B,MAAM,qBAAqB,EAAE,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,YAAY,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YAC9C,YAAY,GAAG,IAAI,CAAA;QACrB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,
|
|
1
|
+
{"version":3,"file":"vitest.js","sourceRoot":"","sources":["../../src/test/vitest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAInE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAoB,MAAM,aAAa,CAAA;AAErH,OAAO,EAAkD,MAAM,aAAa,CAAA;AAE5E,IAAI,YAAY,GAAuB,IAAI,CAAA;AAC3C,IAAI,SAAS,GAAoB,IAAI,CAAA;AAErC,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,WAAgC;IAChF,SAAS,GAAG,QAAQ,CAAA;IACpB,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,YAAY,GAAG,WAAW,CAAA;IAC5B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,gBAAsC;IACvE,MAAM,QAAQ,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;IACnG,SAAS,GAAG,QAAQ,CAAA;IAEpB,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC9B,MAAM,qBAAqB,EAAE,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,YAAY,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YAC9C,YAAY,GAAG,IAAI,CAAA;QACrB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,2CAA2C;YAC3C,mCAAmC;YACnC,uDAAuD,CACxD,CAAA;IACH,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAA;IACnE,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAA;IACxC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzD,MAAM,IAAI,KAAK,CACb,gCAAgC,YAAY,iBAAiB,SAAS,EAAE,CACzE,CAAA;IACH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,4CAA4C;YAC5C,mCAAmC;YACnC,uDAAuD,CACxD,CAAA;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAI,EAAW;IACrC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,2CAA2C;YAC3C,mCAAmC;YACnC,uDAAuD,CACxD,CAAA;IACH,CAAC;IACD,MAAM,GAAG,GAAG,iBAAiB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;IACtD,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AAC9B,CAAC;AAED,SAAS,UAAU,CAAC,CAAuB;IACzC,OAAO,MAAM,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAA;AACrC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pipework",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@9.15.4",
|
|
@@ -32,6 +32,10 @@
|
|
|
32
32
|
"./test": {
|
|
33
33
|
"import": "./dist/test/index.js",
|
|
34
34
|
"types": "./dist/test/index.d.ts"
|
|
35
|
+
},
|
|
36
|
+
"./test/setup": {
|
|
37
|
+
"import": "./dist/test/auto-setup.js",
|
|
38
|
+
"types": "./dist/test/auto-setup.d.ts"
|
|
35
39
|
}
|
|
36
40
|
},
|
|
37
41
|
"main": "./dist/index.js",
|