@prisma-next/target-sqlite 0.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/README.md +69 -0
- package/package.json +47 -0
- package/src/core/control-target.ts +18 -0
- package/src/core/descriptor-meta.ts +8 -0
- package/src/core/runtime-target.ts +23 -0
- package/src/exports/control.ts +1 -0
- package/src/exports/pack.ts +9 -0
- package/src/exports/runtime.ts +2 -0
package/README.md
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# @prisma-next/target-sqlite
|
|
2
|
+
|
|
3
|
+
SQLite target pack for Prisma Next.
|
|
4
|
+
|
|
5
|
+
## Package Classification
|
|
6
|
+
|
|
7
|
+
- **Domain**: targets
|
|
8
|
+
- **Layer**: targets
|
|
9
|
+
- **Plane**: multi-plane (runtime, authoring)
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
Provides the SQLite target descriptor for runtime use and pack refs for contract authoring. The control-plane entry point (migration planner/runner) is not yet implemented.
|
|
14
|
+
|
|
15
|
+
## Responsibilities
|
|
16
|
+
|
|
17
|
+
- **Runtime Target Descriptor**: Exports `SqlRuntimeTargetDescriptor<'sqlite'>` with codec registry and factory
|
|
18
|
+
- **Pack Ref Export**: Exports `TargetPackRef<'sql', 'sqlite'>` for `defineContract().target(sqlitePack)` contract authoring
|
|
19
|
+
- **Descriptor Metadata**: Defines target identity (`familyId: 'sql'`, `targetId: 'sqlite'`, `id: 'sqlite'`) and version
|
|
20
|
+
|
|
21
|
+
**Non-goals:**
|
|
22
|
+
- Migration planner/runner (future milestone)
|
|
23
|
+
- Schema introspection (future milestone)
|
|
24
|
+
- Control-plane target descriptor (future milestone)
|
|
25
|
+
|
|
26
|
+
This package spans multiple planes:
|
|
27
|
+
- **Runtime plane** (`src/exports/runtime.ts`): Runtime entry point for target-specific runtime code
|
|
28
|
+
- **Authoring pack ref** (`src/exports/pack.ts`): Pure data surface for contract builder workflows
|
|
29
|
+
|
|
30
|
+
## Usage
|
|
31
|
+
|
|
32
|
+
### Pack refs for TypeScript contract authoring
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
import sqlitePack from '@prisma-next/target-sqlite/pack';
|
|
36
|
+
import { defineContract } from '@prisma-next/sql-contract-ts/contract-builder';
|
|
37
|
+
|
|
38
|
+
export const contract = defineContract()
|
|
39
|
+
.target(sqlitePack)
|
|
40
|
+
.build();
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Pack refs are pure JSON-friendly objects that make TypeScript contract authoring work in both emit and no-emit workflows without requiring separate manifest files.
|
|
44
|
+
|
|
45
|
+
## Architecture
|
|
46
|
+
|
|
47
|
+
This package provides a runtime entry point for the SQLite target. All declarative fields (version, capabilities) are defined directly on the descriptor. The `./pack` entry point provides a pure pack ref for contract authoring.
|
|
48
|
+
|
|
49
|
+
## Dependencies
|
|
50
|
+
|
|
51
|
+
- **`@prisma-next/framework-components`**: Descriptor types (`RuntimeTargetInstance`)
|
|
52
|
+
- **`@prisma-next/sql-relational-core`**: Codec registry factory
|
|
53
|
+
- **`@prisma-next/sql-runtime`**: `SqlRuntimeTargetDescriptor` type
|
|
54
|
+
- **`@prisma-next/sql-contract`**: Pack ref types (`TargetPackRef`)
|
|
55
|
+
- **`@prisma-next/adapter-sqlite`** *(dev)*: Codec types for pack ref `__codecTypes`
|
|
56
|
+
|
|
57
|
+
## Related Subsystems
|
|
58
|
+
|
|
59
|
+
- **[Adapters & Targets](../../../../docs/architecture%20docs/subsystems/5.%20Adapters%20&%20Targets.md)**: Target specification
|
|
60
|
+
|
|
61
|
+
## Related ADRs
|
|
62
|
+
|
|
63
|
+
- [ADR 005 -- Thin Core Fat Targets](../../../../docs/architecture%20docs/adrs/ADR%20005%20-%20Thin%20Core%20Fat%20Targets.md)
|
|
64
|
+
- [ADR 112 -- Target Extension Packs](../../../../docs/architecture%20docs/adrs/ADR%20112%20-%20Target%20Extension%20Packs.md)
|
|
65
|
+
|
|
66
|
+
## Exports
|
|
67
|
+
|
|
68
|
+
- `./runtime`: Runtime entry point for `SqlRuntimeTargetDescriptor<'sqlite'>`
|
|
69
|
+
- `./pack`: Pure pack ref for `defineContract().target(sqlitePack)`
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@prisma-next/target-sqlite",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"sideEffects": false,
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "tsdown",
|
|
8
|
+
"test": "vitest run --passWithNoTests",
|
|
9
|
+
"test:coverage": "vitest run --coverage --passWithNoTests",
|
|
10
|
+
"typecheck": "tsc --project tsconfig.json --noEmit",
|
|
11
|
+
"lint": "biome check . --error-on-warnings",
|
|
12
|
+
"lint:fix": "biome check --write .",
|
|
13
|
+
"lint:fix:unsafe": "biome check --write --unsafe .",
|
|
14
|
+
"clean": "rm -rf dist dist-tsc dist-tsc-prod coverage .tmp-output"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@prisma-next/contract": "workspace:*",
|
|
18
|
+
"@prisma-next/framework-components": "workspace:*",
|
|
19
|
+
"@prisma-next/sql-contract": "workspace:*",
|
|
20
|
+
"@prisma-next/sql-relational-core": "workspace:*",
|
|
21
|
+
"@prisma-next/sql-runtime": "workspace:*"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@prisma-next/adapter-sqlite": "workspace:*",
|
|
25
|
+
"@prisma-next/test-utils": "workspace:*",
|
|
26
|
+
"@prisma-next/tsconfig": "workspace:*",
|
|
27
|
+
"@prisma-next/tsdown": "workspace:*",
|
|
28
|
+
"tsdown": "catalog:",
|
|
29
|
+
"typescript": "catalog:",
|
|
30
|
+
"vitest": "catalog:"
|
|
31
|
+
},
|
|
32
|
+
"files": [
|
|
33
|
+
"dist",
|
|
34
|
+
"src"
|
|
35
|
+
],
|
|
36
|
+
"exports": {
|
|
37
|
+
"./control": "./dist/control.mjs",
|
|
38
|
+
"./pack": "./dist/pack.mjs",
|
|
39
|
+
"./runtime": "./dist/runtime.mjs",
|
|
40
|
+
"./package.json": "./package.json"
|
|
41
|
+
},
|
|
42
|
+
"repository": {
|
|
43
|
+
"type": "git",
|
|
44
|
+
"url": "https://github.com/prisma/prisma-next.git",
|
|
45
|
+
"directory": "packages/3-targets/3-targets/sqlite"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ControlTargetDescriptor,
|
|
3
|
+
ControlTargetInstance,
|
|
4
|
+
} from '@prisma-next/framework-components/control';
|
|
5
|
+
import { sqliteTargetDescriptorMeta } from './descriptor-meta';
|
|
6
|
+
|
|
7
|
+
const sqliteControlTargetDescriptor: ControlTargetDescriptor<
|
|
8
|
+
'sql',
|
|
9
|
+
'sqlite',
|
|
10
|
+
ControlTargetInstance<'sql', 'sqlite'>
|
|
11
|
+
> = {
|
|
12
|
+
...sqliteTargetDescriptorMeta,
|
|
13
|
+
create(): ControlTargetInstance<'sql', 'sqlite'> {
|
|
14
|
+
return { familyId: 'sql', targetId: 'sqlite' };
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export default sqliteControlTargetDescriptor;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { RuntimeTargetInstance } from '@prisma-next/framework-components/execution';
|
|
2
|
+
import { createCodecRegistry } from '@prisma-next/sql-relational-core/ast';
|
|
3
|
+
import type { SqlRuntimeTargetDescriptor } from '@prisma-next/sql-runtime';
|
|
4
|
+
import { sqliteTargetDescriptorMeta } from './descriptor-meta';
|
|
5
|
+
|
|
6
|
+
export interface SqliteRuntimeTargetInstance extends RuntimeTargetInstance<'sql', 'sqlite'> {}
|
|
7
|
+
|
|
8
|
+
const sqliteRuntimeTargetDescriptor: SqlRuntimeTargetDescriptor<
|
|
9
|
+
'sqlite',
|
|
10
|
+
SqliteRuntimeTargetInstance
|
|
11
|
+
> = {
|
|
12
|
+
...sqliteTargetDescriptorMeta,
|
|
13
|
+
codecs: () => createCodecRegistry(),
|
|
14
|
+
parameterizedCodecs: () => [],
|
|
15
|
+
create(): SqliteRuntimeTargetInstance {
|
|
16
|
+
return {
|
|
17
|
+
familyId: 'sql',
|
|
18
|
+
targetId: 'sqlite',
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export default sqliteRuntimeTargetDescriptor;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '../core/control-target';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CodecTypes } from '@prisma-next/adapter-sqlite/codec-types';
|
|
2
|
+
import type { TargetPackRef } from '@prisma-next/framework-components/components';
|
|
3
|
+
import { sqliteTargetDescriptorMeta } from '../core/descriptor-meta';
|
|
4
|
+
|
|
5
|
+
const sqlitePack = sqliteTargetDescriptorMeta;
|
|
6
|
+
|
|
7
|
+
export default sqlitePack as TargetPackRef<'sql', 'sqlite'> & {
|
|
8
|
+
readonly __codecTypes?: CodecTypes;
|
|
9
|
+
};
|