@effect-app/infra 2.15.0 → 2.15.2
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/CHANGELOG.md +15 -0
- package/_cjs/Model/query/dsl.cjs +3 -13
- package/_cjs/Model/query/dsl.cjs.map +1 -1
- package/dist/Model/query/dsl.d.ts +41 -89
- package/dist/Model/query/dsl.d.ts.map +1 -1
- package/dist/Model/query/dsl.js +4 -14
- package/dist/Model/query/new-kid-interpreter.d.ts +1 -1
- package/dist/OperationsRepo.d.ts +1 -1
- package/dist/RequestContext.d.ts +2 -2
- package/dist/RequestContext.d.ts.map +1 -1
- package/examples/query.ts +2 -4
- package/package.json +11 -11
- package/src/Model/query/dsl.ts +151 -467
- package/src/RequestContext.ts +2 -2
- package/test/dist/query.test.d.ts.map +1 -1
- package/test/query.test.ts +45 -8
- package/tsconfig.examples.json +2 -3
- package/tsconfig.json.bak +0 -3
- package/vitest.config.ts.timestamp-1711656440838-19c636fe320df.mjs +0 -0
- package/vitest.config.ts.timestamp-1711724061890-6ecedb0a07fdd.mjs +0 -0
- package/vitest.config.ts.timestamp-1711743489537-da8d9e5f66c9f.mjs +0 -0
- package/vitest.config.ts.timestamp-1711744615239-dcf257a844e01.mjs +0 -37
package/src/RequestContext.ts
CHANGED
|
@@ -13,7 +13,7 @@ export const LocaleRef = FiberRef.unsafeMake<Locale>("en")
|
|
|
13
13
|
*/
|
|
14
14
|
export class RequestContext extends S.ExtendedClass<
|
|
15
15
|
RequestContext,
|
|
16
|
-
RequestContext.
|
|
16
|
+
RequestContext.Encoded
|
|
17
17
|
>()({
|
|
18
18
|
span: S.Struct({
|
|
19
19
|
traceId: S.String,
|
|
@@ -59,7 +59,7 @@ export const spanAttributes = (ctx: Pick<RequestContext, "locale" | "namespace">
|
|
|
59
59
|
//
|
|
60
60
|
/* eslint-disable */
|
|
61
61
|
export namespace RequestContext {
|
|
62
|
-
export interface
|
|
62
|
+
export interface Encoded extends S.Struct.Encoded<typeof RequestContext["fields"]> {}
|
|
63
63
|
}
|
|
64
64
|
/* eslint-enable */
|
|
65
65
|
//
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.test.d.ts","sourceRoot":"","sources":["../query.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"query.test.d.ts","sourceRoot":"","sources":["../query.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAgB,CAAC,EAAU,MAAM,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAalF,qBAAa,SAAU,SAAQ,cAK7B;CAAG;AACL,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IAEjC,UAAiB,OAAQ,SAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,SAAS,CAAC;KAAG;CACvE;;;;;;;;;;;;;;;;;;;;;;;;;AAGD,qBAAa,WAAY,SAAQ,gBAAgE;CAAG"}
|
package/test/query.test.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-empty-object-type */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
-
import { Context, Effect, Layer, Option, pipe, S, Struct } from "effect-app"
|
|
3
|
+
import { Context, Effect, flow, Layer, Option, pipe, S, Struct } from "effect-app"
|
|
4
4
|
import { inspect } from "util"
|
|
5
5
|
import { expect, expectTypeOf, it } from "vitest"
|
|
6
6
|
import { setupRequestContextFromCurrent } from "../src/api/setupRequest.js"
|
|
@@ -132,6 +132,13 @@ it("works with repo", () =>
|
|
|
132
132
|
)
|
|
133
133
|
)
|
|
134
134
|
|
|
135
|
+
const smtArr = yield* somethingRepo
|
|
136
|
+
.query(
|
|
137
|
+
flow(where("displayName", "Verona"))
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
expectTypeOf(smtArr).toEqualTypeOf<readonly Something[]>()
|
|
141
|
+
|
|
135
142
|
expect(q1).toEqual(items.slice(0, 2).toReversed().map(Struct.pick("id", "displayName")))
|
|
136
143
|
expect(q2).toEqual(items.slice(0, 2).toReversed().map(Struct.pick("displayName")))
|
|
137
144
|
})
|
|
@@ -187,32 +194,32 @@ it("collect", () =>
|
|
|
187
194
|
})
|
|
188
195
|
.pipe(Effect.provide(Layer.mergeAll(SomethingRepo.Test, SomeService.toLayer())), Effect.runPromise))
|
|
189
196
|
|
|
190
|
-
class Person extends S.ExtendedTaggedClass<Person, Person.
|
|
197
|
+
class Person extends S.ExtendedTaggedClass<Person, Person.Encoded>()("person", {
|
|
191
198
|
id: S.String,
|
|
192
199
|
surname: S.String
|
|
193
200
|
}) {}
|
|
194
|
-
class Animal extends S.ExtendedTaggedClass<Animal, Animal.
|
|
201
|
+
class Animal extends S.ExtendedTaggedClass<Animal, Animal.Encoded>()("animal", {
|
|
195
202
|
id: S.String,
|
|
196
203
|
surname: S.String
|
|
197
204
|
}) {}
|
|
198
|
-
class Test extends S.ExtendedTaggedClass<Test, Test.
|
|
205
|
+
class Test extends S.ExtendedTaggedClass<Test, Test.Encoded>()("test", {
|
|
199
206
|
id: S.String
|
|
200
207
|
}) {}
|
|
201
208
|
|
|
202
209
|
namespace Person {
|
|
203
|
-
export interface
|
|
210
|
+
export interface Encoded extends S.Struct.Encoded<typeof Person["fields"]> {}
|
|
204
211
|
}
|
|
205
212
|
namespace Animal {
|
|
206
|
-
export interface
|
|
213
|
+
export interface Encoded extends S.Struct.Encoded<typeof Animal["fields"]> {}
|
|
207
214
|
}
|
|
208
215
|
namespace Test {
|
|
209
|
-
export interface
|
|
216
|
+
export interface Encoded extends S.Struct.Encoded<typeof Test["fields"]> {}
|
|
210
217
|
}
|
|
211
218
|
|
|
212
219
|
const TestUnion = S.Union(Person, Animal, Test)
|
|
213
220
|
type TestUnion = typeof TestUnion.Type
|
|
214
221
|
namespace TestUnion {
|
|
215
|
-
export type
|
|
222
|
+
export type Encoded = typeof TestUnion.Encoded
|
|
216
223
|
}
|
|
217
224
|
|
|
218
225
|
it(
|
|
@@ -435,3 +442,33 @@ it(
|
|
|
435
442
|
})
|
|
436
443
|
.pipe(Effect.provide(MemoryStoreLive), setupRequestContextFromCurrent(), Effect.runPromise)
|
|
437
444
|
)
|
|
445
|
+
|
|
446
|
+
it(
|
|
447
|
+
"doesn't mess when refining fields",
|
|
448
|
+
() =>
|
|
449
|
+
Effect
|
|
450
|
+
.gen(function*() {
|
|
451
|
+
const schema = S.Struct({
|
|
452
|
+
id: S.String,
|
|
453
|
+
literals: S.Literal("a", "b", "c")
|
|
454
|
+
})
|
|
455
|
+
|
|
456
|
+
type Schema = typeof schema.Type
|
|
457
|
+
|
|
458
|
+
const repo = yield* makeRepo(
|
|
459
|
+
"test",
|
|
460
|
+
schema,
|
|
461
|
+
{}
|
|
462
|
+
)
|
|
463
|
+
|
|
464
|
+
const result = yield* repo.query(
|
|
465
|
+
where("id", "123"),
|
|
466
|
+
and("literals", "a")
|
|
467
|
+
)
|
|
468
|
+
|
|
469
|
+
expectTypeOf(result).toEqualTypeOf<readonly Schema[]>()
|
|
470
|
+
|
|
471
|
+
expect(result).toEqual([])
|
|
472
|
+
})
|
|
473
|
+
.pipe(Effect.provide(MemoryStoreLive), setupRequestContextFromCurrent(), Effect.runPromise)
|
|
474
|
+
)
|
package/tsconfig.examples.json
CHANGED
|
@@ -5,12 +5,11 @@
|
|
|
5
5
|
],
|
|
6
6
|
"references": [
|
|
7
7
|
{
|
|
8
|
-
"path": "tsconfig.src.json"
|
|
8
|
+
"path": "./tsconfig.src.json"
|
|
9
9
|
}
|
|
10
10
|
],
|
|
11
11
|
"compilerOptions": {
|
|
12
12
|
"tsBuildInfoFile": ".tsbuildinfo/examples.tsbuildinfo",
|
|
13
|
-
"rootDir": "examples"
|
|
14
|
-
"noEmit": true
|
|
13
|
+
"rootDir": "examples"
|
|
15
14
|
}
|
|
16
15
|
}
|
package/tsconfig.json.bak
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
// packages/infra/vitest.config.ts
|
|
2
|
-
import { defineConfig } from "file:///Users/patrickroza/pj/effect-app/libs/node_modules/.pnpm/vite@5.2.6_@types+node@20.11.30/node_modules/vite/dist/node/index.js";
|
|
3
|
-
|
|
4
|
-
// vite.config.base.ts
|
|
5
|
-
import path from "path";
|
|
6
|
-
import fs from "fs";
|
|
7
|
-
var __vite_injected_original_dirname = "/Users/patrickroza/pj/effect-app/libs";
|
|
8
|
-
function makeConfig(dirName) {
|
|
9
|
-
const prefix = path.resolve(__vite_injected_original_dirname, "packages");
|
|
10
|
-
const packages = fs.readdirSync(prefix).map((f) => prefix + "/" + f).filter((f) => fs.lstatSync(f).isDirectory());
|
|
11
|
-
const cfg = {
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
13
|
-
//plugins: [autoImport],
|
|
14
|
-
test: {
|
|
15
|
-
include: ["./test/**/*.test.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
|
|
16
|
-
reporters: "verbose",
|
|
17
|
-
globals: true
|
|
18
|
-
},
|
|
19
|
-
resolve: {
|
|
20
|
-
alias: packages.reduce((acc, cur) => {
|
|
21
|
-
acc[JSON.parse(fs.readFileSync(cur + "/package.json", "utf-8")).name] = path.resolve(cur, cur.endsWith("core") ? "dist" : "src");
|
|
22
|
-
return acc;
|
|
23
|
-
}, {})
|
|
24
|
-
// "@effect-app/core/Prelude": path.join(__dirname, "packages/core/src/Prelude.code.ts")
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
console.log(cfg);
|
|
28
|
-
return cfg;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// packages/infra/vitest.config.ts
|
|
32
|
-
var __vite_injected_original_dirname2 = "/Users/patrickroza/pj/effect-app/libs/packages/infra";
|
|
33
|
-
var vitest_config_default = defineConfig(makeConfig(__vite_injected_original_dirname2));
|
|
34
|
-
export {
|
|
35
|
-
vitest_config_default as default
|
|
36
|
-
};
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsicGFja2FnZXMvaW5mcmEvdml0ZXN0LmNvbmZpZy50cyIsICJ2aXRlLmNvbmZpZy5iYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy9wYWNrYWdlcy9pbmZyYVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy9wYWNrYWdlcy9pbmZyYS92aXRlc3QuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvaW5mcmEvdml0ZXN0LmNvbmZpZy50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJ2aXRlXCJcbmltcG9ydCBtYWtlQ29uZmlnIGZyb20gXCIuLi8uLi92aXRlLmNvbmZpZy5iYXNlXCJcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKG1ha2VDb25maWcoX19kaXJuYW1lKSlcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlic1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvdml0ZS5jb25maWcuYmFzZS50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBmcyBmcm9tIFwiZnNcIlxuaW1wb3J0IEF1dG9JbXBvcnQgZnJvbSBcInVucGx1Z2luLWF1dG8taW1wb3J0L3ZpdGVcIlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVzdC9jb25maWdcIlxuXG4vLyBjb25zdCBhdXRvSW1wb3J0ID0gQXV0b0ltcG9ydCh7XG4vLyAgIGR0czogXCIuL3Rlc3QvYXV0by1pbXBvcnRzLmQudHNcIixcbi8vICAgLy8gaW5jbHVkZTogW1xuLy8gICAvLyAgIC9cXC50ZXN0XFwuW3RqXXN4PyQvIC8vIC50cywgLnRzeCwgLmpzLCAuanN4XG4vLyAgIC8vIF0sXG4vLyAgIGltcG9ydHM6IFtcbi8vICAgICBcInZpdGVzdFwiXG4vLyAgIF1cbi8vIH0pXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1ha2VDb25maWcoZGlyTmFtZT86IHN0cmluZykge1xuICBjb25zdCBwcmVmaXggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcInBhY2thZ2VzXCIpXG4gIGNvbnN0IHBhY2thZ2VzID0gZnMucmVhZGRpclN5bmMocHJlZml4KS5tYXAoZiA9PiBwcmVmaXggKyBcIi9cIiArIGYpLmZpbHRlcihmID0+IGZzLmxzdGF0U3luYyhmKS5pc0RpcmVjdG9yeSgpIClcbiAgY29uc3QgY2ZnID0ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gICAgLy9wbHVnaW5zOiBbYXV0b0ltcG9ydF0sXG4gICAgdGVzdDoge1xuICAgICAgaW5jbHVkZTogIFtcIi4vdGVzdC8qKi8qLnRlc3Que2pzLG1qcyxjanMsdHMsbXRzLGN0cyxqc3gsdHN4fVwiXSxcbiAgICAgIHJlcG9ydGVyczogXCJ2ZXJib3NlXCIsXG4gICAgICBnbG9iYWxzOiB0cnVlXG4gICAgfSxcbiAgICByZXNvbHZlOiB7XG4gICAgICBhbGlhczogcGFja2FnZXMucmVkdWNlKChhY2MsIGN1cikgPT4geyAvLyB3b3JrYXJvdW5kIGZvciAvUHJlbHVkZSBpc3N1ZVxuICAgICAgYWNjW0pTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGN1ciArIFwiL3BhY2thZ2UuanNvblwiLCBcInV0Zi04XCIpKS5uYW1lXSA9IHBhdGgucmVzb2x2ZShjdXIsIGN1ci5lbmRzV2l0aChcImNvcmVcIikgPyBcImRpc3RcIiA6IFwic3JjXCIpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSwgeyB9KSAvLyBcIkBlZmZlY3QtYXBwL2NvcmUvUHJlbHVkZVwiOiBwYXRoLmpvaW4oX19kaXJuYW1lLCBcInBhY2thZ2VzL2NvcmUvc3JjL1ByZWx1ZGUuY29kZS50c1wiKVxuICB9XG4gIH1cbiAgY29uc29sZS5sb2coY2ZnKVxuICByZXR1cm4gY2ZnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0EsU0FBUyxvQkFBb0I7OztBQ0E3QixPQUFPLFVBQVU7QUFDakIsT0FBTyxRQUFRO0FBRmYsSUFBTSxtQ0FBbUM7QUFnQjFCLFNBQVIsV0FBNEIsU0FBa0I7QUFDbkQsUUFBTSxTQUFTLEtBQUssUUFBUSxrQ0FBVyxVQUFVO0FBQ2pELFFBQU0sV0FBVyxHQUFHLFlBQVksTUFBTSxFQUFFLElBQUksT0FBSyxTQUFTLE1BQU0sQ0FBQyxFQUFFLE9BQU8sT0FBSyxHQUFHLFVBQVUsQ0FBQyxFQUFFLFlBQVksQ0FBRTtBQUM3RyxRQUFNLE1BQU07QUFBQTtBQUFBO0FBQUEsSUFHVixNQUFNO0FBQUEsTUFDSixTQUFVLENBQUMsa0RBQWtEO0FBQUEsTUFDN0QsV0FBVztBQUFBLE1BQ1gsU0FBUztBQUFBLElBQ1g7QUFBQSxJQUNBLFNBQVM7QUFBQSxNQUNQLE9BQU8sU0FBUyxPQUFPLENBQUMsS0FBSyxRQUFRO0FBQ3JDLFlBQUksS0FBSyxNQUFNLEdBQUcsYUFBYSxNQUFNLGlCQUFpQixPQUFPLENBQUMsRUFBRSxJQUFJLElBQUksS0FBSyxRQUFRLEtBQUssSUFBSSxTQUFTLE1BQU0sSUFBSSxTQUFTLEtBQUs7QUFDL0gsZUFBTztBQUFBLE1BQ1QsR0FBRyxDQUFFLENBQUM7QUFBQTtBQUFBLElBQ1I7QUFBQSxFQUNBO0FBQ0EsVUFBUSxJQUFJLEdBQUc7QUFDZixTQUFPO0FBQ1Q7OztBRHBDQSxJQUFNQSxvQ0FBbUM7QUFJekMsSUFBTyx3QkFBUSxhQUFhLFdBQVdDLGlDQUFTLENBQUM7IiwKICAibmFtZXMiOiBbIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIiwgIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIl0KfQo=
|