ocean-brain 0.3.3 → 0.4.0
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/mcp.js +151 -37
- package/package.json +5 -5
- package/scripts/postinstall-prisma.mjs +3 -2
- package/server/client/dist/assets/Calendar-CSXEuWmQ.js +25 -0
- package/server/client/dist/assets/Callout-Ap1OcxWN.js +1 -0
- package/server/client/dist/assets/Graph-C0Ax9qjI.js +1 -0
- package/server/client/dist/assets/{Image-ZxF459sC.js → Image-CSbcG-5a.js} +1 -1
- package/server/client/dist/assets/{Image.es-CFTbON7k.js → Image.es-Fbe7aDDo.js} +1 -1
- package/server/client/dist/assets/{ModalActionRow-Hg6MY61u.js → ModalActionRow-DjI5b4bl.js} +1 -1
- package/server/client/dist/assets/Note-BY6WgYLq.js +1 -0
- package/server/client/dist/assets/Note-W4f6H9K0.css +1 -0
- package/server/client/dist/assets/Reminders-vRksvSQE.js +1 -0
- package/server/client/dist/assets/Search-Cq4tuiJO.js +1 -0
- package/server/client/dist/assets/{SurfaceCard-BV6y4bCo.js → SurfaceCard-Br6TjX5W.js} +1 -1
- package/server/client/dist/assets/Tag-ARDLA-Pb.js +1 -0
- package/server/client/dist/assets/TagNotes-CDGVrCJU.js +1 -0
- package/server/client/dist/assets/{Trash.es-CPtRLE0y.js → Trash.es-BfCEiL3-.js} +1 -1
- package/server/client/dist/assets/ViewNotes-ZBOQ1adH.js +1 -0
- package/server/client/dist/assets/Views-DQHPfdwM.js +1 -0
- package/server/client/dist/assets/{image.api-Dsrx9S-G.js → image.api-DGXlQ_Ca.js} +1 -1
- package/server/client/dist/assets/index-B28TO4FC.js +1 -0
- package/server/client/dist/assets/{index-CD2bFEqK.css → index-Bm9l_L20.css} +1 -1
- package/server/client/dist/assets/index-Bsx4P7EA.js +210 -0
- package/server/client/dist/assets/manage-image-Dg297A_h.js +1 -0
- package/server/client/dist/assets/manage-image-detail-hk6jWyiB.js +1 -0
- package/server/client/dist/assets/mcp-CSjmBjFR.js +1 -0
- package/server/client/dist/assets/{note-core-BCgMq5QA.js → note-core-GgFcksAF.js} +1 -1
- package/server/client/dist/assets/{note-vendor-BofYbzmZ.js → note-vendor-5N5mRkIT.js} +3 -3
- package/server/client/dist/assets/{placeholder-MNsco0AT.js → placeholder-Bmiowo28.js} +4 -4
- package/server/client/dist/assets/trash-CM7SbVtW.js +1 -0
- package/server/client/dist/assets/{useReminderMutate-yJak8FzP.js → useReminderMutate-DsIvVpCQ.js} +2 -2
- package/server/client/dist/assets/view-dashboard-CP8nhfxQ.js +90 -0
- package/server/client/dist/index.html +4 -4
- package/server/dist/app.js +8 -84
- package/server/dist/app.js.map +1 -1
- package/server/dist/features/auth/http/api.js +43 -0
- package/server/dist/features/auth/http/api.js.map +1 -0
- package/server/dist/features/auth/http/login-page.js +28 -0
- package/server/dist/features/auth/http/login-page.js.map +1 -0
- package/server/dist/features/auth/http/pages.js +50 -0
- package/server/dist/features/auth/http/pages.js.map +1 -0
- package/server/dist/features/auth/service.js +94 -0
- package/server/dist/features/auth/service.js.map +1 -0
- package/server/dist/features/cache/graphql/cache.field.resolver.js +5 -0
- package/server/dist/features/cache/graphql/cache.field.resolver.js.map +1 -0
- package/server/dist/features/cache/graphql/cache.mutation.resolver.js +49 -0
- package/server/dist/features/cache/graphql/cache.mutation.resolver.js.map +1 -0
- package/server/dist/features/cache/graphql/cache.query.resolver.js +21 -0
- package/server/dist/features/cache/graphql/cache.query.resolver.js.map +1 -0
- package/server/dist/features/cache/graphql/cache.resolver.js +12 -0
- package/server/dist/features/cache/graphql/cache.resolver.js.map +1 -0
- package/server/dist/features/cache/graphql/cache.type-defs.js +32 -0
- package/server/dist/features/cache/graphql/cache.type-defs.js.map +1 -0
- package/server/dist/features/cache/graphql/index.js +21 -0
- package/server/dist/features/cache/graphql/index.js.map +1 -0
- package/server/dist/features/image/graphql/image.field.resolver.js +14 -0
- package/server/dist/features/image/graphql/image.field.resolver.js.map +1 -0
- package/server/dist/features/image/graphql/image.mutation.resolver.js +21 -0
- package/server/dist/features/image/graphql/image.mutation.resolver.js.map +1 -0
- package/server/dist/features/image/graphql/image.query.resolver.js +40 -0
- package/server/dist/features/image/graphql/image.query.resolver.js.map +1 -0
- package/server/dist/features/image/graphql/image.resolver.js +12 -0
- package/server/dist/features/image/graphql/image.resolver.js.map +1 -0
- package/server/dist/features/image/graphql/image.type-defs.js +31 -0
- package/server/dist/features/image/graphql/image.type-defs.js.map +1 -0
- package/server/dist/features/image/graphql/index.js +16 -0
- package/server/dist/features/image/graphql/index.js.map +1 -0
- package/server/dist/features/image/http/upload.js +48 -0
- package/server/dist/features/image/http/upload.js.map +1 -0
- package/server/dist/features/image/services/delete.js +52 -0
- package/server/dist/features/image/services/delete.js.map +1 -0
- package/server/dist/{modules/remote-image.js → features/image/services/remote-fetch.js} +1 -1
- package/server/dist/features/image/services/remote-fetch.js.map +1 -0
- package/server/dist/{modules/image-upload.js → features/image/services/upload.js} +4 -8
- package/server/dist/features/image/services/upload.js.map +1 -0
- package/server/dist/{views/mcp-admin.js → features/mcp-admin/http/handlers.js} +3 -3
- package/server/dist/features/mcp-admin/http/handlers.js.map +1 -0
- package/server/dist/{modules/mcp-admin.js → features/mcp-admin/service.js} +3 -3
- package/server/dist/features/mcp-admin/service.js.map +1 -0
- package/server/dist/features/note/graphql/index.js +8 -0
- package/server/dist/features/note/graphql/index.js.map +1 -0
- package/server/dist/features/note/graphql/note.field.resolver.js +12 -0
- package/server/dist/features/note/graphql/note.field.resolver.js.map +1 -0
- package/server/dist/features/note/graphql/note.graphql.shared.js +23 -0
- package/server/dist/features/note/graphql/note.graphql.shared.js.map +1 -0
- package/server/dist/features/note/graphql/note.mutation.resolver.js +140 -0
- package/server/dist/features/note/graphql/note.mutation.resolver.js.map +1 -0
- package/server/dist/features/note/graphql/note.query.resolver.js +382 -0
- package/server/dist/features/note/graphql/note.query.resolver.js.map +1 -0
- package/server/dist/features/note/graphql/note.resolver.js +14 -0
- package/server/dist/features/note/graphql/note.resolver.js.map +1 -0
- package/server/dist/features/note/graphql/note.type-defs.js +184 -0
- package/server/dist/features/note/graphql/note.type-defs.js.map +1 -0
- package/server/dist/{views/note.js → features/note/http/mcp.js} +27 -15
- package/server/dist/features/note/http/mcp.js.map +1 -0
- package/server/dist/{modules/note-authoring.js → features/note/services/authoring.js} +25 -7
- package/server/dist/features/note/services/authoring.js.map +1 -0
- package/server/dist/{modules/note-cleanup.js → features/note/services/cleanup.js} +14 -23
- package/server/dist/features/note/services/cleanup.js.map +1 -0
- package/server/dist/features/note/services/search-backfill.js +84 -0
- package/server/dist/features/note/services/search-backfill.js.map +1 -0
- package/server/dist/features/note/services/search.js +197 -0
- package/server/dist/features/note/services/search.js.map +1 -0
- package/server/dist/{modules/note-snapshot.js → features/note/services/snapshot.js} +51 -49
- package/server/dist/features/note/services/snapshot.js.map +1 -0
- package/server/dist/features/note/services/tag-filter.js +18 -0
- package/server/dist/features/note/services/tag-filter.js.map +1 -0
- package/server/dist/{modules/note-trash.js → features/note/services/trash.js} +28 -23
- package/server/dist/features/note/services/trash.js.map +1 -0
- package/server/dist/features/placeholder/graphql/index.js +27 -0
- package/server/dist/features/placeholder/graphql/index.js.map +1 -0
- package/server/dist/features/placeholder/graphql/placeholder.field.resolver.js +5 -0
- package/server/dist/features/placeholder/graphql/placeholder.field.resolver.js.map +1 -0
- package/server/dist/features/placeholder/graphql/placeholder.mutation.resolver.js +72 -0
- package/server/dist/features/placeholder/graphql/placeholder.mutation.resolver.js.map +1 -0
- package/server/dist/features/placeholder/graphql/placeholder.query.resolver.js +36 -0
- package/server/dist/features/placeholder/graphql/placeholder.query.resolver.js.map +1 -0
- package/server/dist/features/placeholder/graphql/placeholder.resolver.js +12 -0
- package/server/dist/features/placeholder/graphql/placeholder.resolver.js.map +1 -0
- package/server/dist/features/placeholder/graphql/placeholder.type-defs.js +50 -0
- package/server/dist/features/placeholder/graphql/placeholder.type-defs.js.map +1 -0
- package/server/dist/features/reminder/graphql/index.js +27 -0
- package/server/dist/features/reminder/graphql/index.js.map +1 -0
- package/server/dist/features/reminder/graphql/reminder.field.resolver.js +10 -0
- package/server/dist/features/reminder/graphql/reminder.field.resolver.js.map +1 -0
- package/server/dist/features/reminder/graphql/reminder.mutation.resolver.js +59 -0
- package/server/dist/features/reminder/graphql/reminder.mutation.resolver.js.map +1 -0
- package/server/dist/features/reminder/graphql/reminder.query.resolver.js +79 -0
- package/server/dist/features/reminder/graphql/reminder.query.resolver.js.map +1 -0
- package/server/dist/features/reminder/graphql/reminder.resolver.js +12 -0
- package/server/dist/features/reminder/graphql/reminder.resolver.js.map +1 -0
- package/server/dist/features/reminder/graphql/reminder.type-defs.js +51 -0
- package/server/dist/features/reminder/graphql/reminder.type-defs.js.map +1 -0
- package/server/dist/features/tag/graphql/index.js +14 -0
- package/server/dist/features/tag/graphql/index.js.map +1 -0
- package/server/dist/features/tag/graphql/tag.field.resolver.js +10 -0
- package/server/dist/features/tag/graphql/tag.field.resolver.js.map +1 -0
- package/server/dist/features/tag/graphql/tag.mutation.resolver.js +15 -0
- package/server/dist/features/tag/graphql/tag.mutation.resolver.js.map +1 -0
- package/server/dist/features/tag/graphql/tag.query.resolver.js +26 -0
- package/server/dist/features/tag/graphql/tag.query.resolver.js.map +1 -0
- package/server/dist/features/tag/graphql/tag.resolver.js +12 -0
- package/server/dist/features/tag/graphql/tag.resolver.js.map +1 -0
- package/server/dist/features/tag/graphql/tag.type-defs.js +46 -0
- package/server/dist/features/tag/graphql/tag.type-defs.js.map +1 -0
- package/server/dist/{views/tag.js → features/tag/http/mcp.js} +3 -3
- package/server/dist/features/tag/http/mcp.js.map +1 -0
- package/server/dist/{modules/tag-organization.js → features/tag/services/organization.js} +38 -8
- package/server/dist/features/tag/services/organization.js.map +1 -0
- package/server/dist/features/view/graphql/index.js +11 -0
- package/server/dist/features/view/graphql/index.js.map +1 -0
- package/server/dist/features/view/graphql/view.mutation.resolver.js +53 -0
- package/server/dist/features/view/graphql/view.mutation.resolver.js.map +1 -0
- package/server/dist/features/view/graphql/view.query.resolver.js +29 -0
- package/server/dist/features/view/graphql/view.query.resolver.js.map +1 -0
- package/server/dist/features/view/graphql/view.resolver.js +10 -0
- package/server/dist/features/view/graphql/view.resolver.js.map +1 -0
- package/server/dist/features/view/graphql/view.type-defs.js +63 -0
- package/server/dist/features/view/graphql/view.type-defs.js.map +1 -0
- package/server/dist/features/view/services/workspace.js +432 -0
- package/server/dist/features/view/services/workspace.js.map +1 -0
- package/server/dist/main.js +14 -0
- package/server/dist/main.js.map +1 -1
- package/server/dist/modules/auth-guard.js +10 -9
- package/server/dist/modules/auth-guard.js.map +1 -1
- package/server/dist/modules/auth-mode.js +1 -3
- package/server/dist/modules/auth-mode.js.map +1 -1
- package/server/dist/modules/blocknote.js +96 -33
- package/server/dist/modules/blocknote.js.map +1 -1
- package/server/dist/modules/data-maintenance.js +75 -0
- package/server/dist/modules/data-maintenance.js.map +1 -0
- package/server/dist/modules/error-handler.js.map +1 -1
- package/server/dist/modules/logger.js +5 -23
- package/server/dist/modules/logger.js.map +1 -1
- package/server/dist/modules/mcp-auth.js +4 -5
- package/server/dist/modules/mcp-auth.js.map +1 -1
- package/server/dist/modules/mcp-token.js.map +1 -1
- package/server/dist/modules/prisma-runtime.js +2 -7
- package/server/dist/modules/prisma-runtime.js.map +1 -1
- package/server/dist/modules/recovery-retention.js +1 -1
- package/server/dist/modules/recovery-retention.js.map +1 -1
- package/server/dist/modules/server-events-handler.js +34 -0
- package/server/dist/modules/server-events-handler.js.map +1 -0
- package/server/dist/modules/server-events.js +32 -0
- package/server/dist/modules/server-events.js.map +1 -0
- package/server/dist/modules/use-async.js.map +1 -1
- package/server/dist/paths.js.map +1 -1
- package/server/dist/routes/api.js +34 -0
- package/server/dist/routes/api.js.map +1 -0
- package/server/dist/routes/auth-pages.js +11 -0
- package/server/dist/routes/auth-pages.js.map +1 -0
- package/server/dist/routes/client.js +27 -0
- package/server/dist/routes/client.js.map +1 -0
- package/server/dist/routes/graphql.js +33 -0
- package/server/dist/routes/graphql.js.map +1 -0
- package/server/dist/routes/index.js +11 -0
- package/server/dist/routes/index.js.map +1 -0
- package/server/dist/routes/mcp.js +30 -0
- package/server/dist/routes/mcp.js.map +1 -0
- package/server/dist/schema/index.js +11 -8
- package/server/dist/schema/index.js.map +1 -1
- package/server/dist/types/index.js.map +1 -1
- package/server/prisma/migrations/20260413143000_0014_tag_name_unique/migration.sql +32 -0
- package/server/prisma/migrations/20260414143000_0015_note_searchable_text/migration.sql +5 -0
- package/server/prisma/migrations/20260416090000_0016_view_workspace/migration.sql +50 -0
- package/server/prisma/schema.prisma +66 -12
- package/server/client/dist/assets/Calendar-DyXzs5M3.js +0 -25
- package/server/client/dist/assets/Graph-C8K4PJOn.js +0 -1
- package/server/client/dist/assets/Note-BbgZvrC3.js +0 -1
- package/server/client/dist/assets/Note-PEevDKBh.css +0 -1
- package/server/client/dist/assets/Reminders-jFhljND4.js +0 -1
- package/server/client/dist/assets/Search-X6QIR_m2.js +0 -1
- package/server/client/dist/assets/Tag-Ba2Dw4gH.js +0 -1
- package/server/client/dist/assets/TagNotes-BRJv6sDI.js +0 -1
- package/server/client/dist/assets/index-BglnLSet.js +0 -205
- package/server/client/dist/assets/index-DpqKngJz.js +0 -1
- package/server/client/dist/assets/manage-image-C6Y_0M5H.js +0 -1
- package/server/client/dist/assets/manage-image-detail-Dv3xofpe.js +0 -1
- package/server/client/dist/assets/mcp-BijQkpfY.js +0 -1
- package/server/client/dist/assets/trash-CiFJm_PK.js +0 -1
- package/server/dist/modules/auth.js +0 -25
- package/server/dist/modules/auth.js.map +0 -1
- package/server/dist/modules/image-upload.js.map +0 -1
- package/server/dist/modules/mcp-admin.js.map +0 -1
- package/server/dist/modules/note-authoring.js.map +0 -1
- package/server/dist/modules/note-cleanup.js.map +0 -1
- package/server/dist/modules/note-snapshot.js.map +0 -1
- package/server/dist/modules/note-trash.js.map +0 -1
- package/server/dist/modules/remote-image.js.map +0 -1
- package/server/dist/modules/tag-organization.js.map +0 -1
- package/server/dist/schema/cache/index.js +0 -58
- package/server/dist/schema/cache/index.js.map +0 -1
- package/server/dist/schema/image/index.js +0 -88
- package/server/dist/schema/image/index.js.map +0 -1
- package/server/dist/schema/note/index.js +0 -551
- package/server/dist/schema/note/index.js.map +0 -1
- package/server/dist/schema/placeholder/index.js +0 -105
- package/server/dist/schema/placeholder/index.js.map +0 -1
- package/server/dist/schema/reminder/index.js +0 -161
- package/server/dist/schema/reminder/index.js.map +0 -1
- package/server/dist/schema/tag/index.js +0 -81
- package/server/dist/schema/tag/index.js.map +0 -1
- package/server/dist/urls.js +0 -9
- package/server/dist/urls.js.map +0 -1
- package/server/dist/views/auth.js +0 -305
- package/server/dist/views/auth.js.map +0 -1
- package/server/dist/views/image.js +0 -44
- package/server/dist/views/image.js.map +0 -1
- package/server/dist/views/index.js +0 -6
- package/server/dist/views/index.js.map +0 -1
- package/server/dist/views/mcp-admin.js.map +0 -1
- package/server/dist/views/note.js.map +0 -1
- package/server/dist/views/tag.js.map +0 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { placeholderFieldResolvers } from "./placeholder.field.resolver.js";
|
|
2
|
+
import {
|
|
3
|
+
createCreatePlaceholderMutationResolver,
|
|
4
|
+
createDeletePlaceholderMutationResolver,
|
|
5
|
+
createUpdatePlaceholderMutationResolver,
|
|
6
|
+
placeholderMutationResolvers
|
|
7
|
+
} from "./placeholder.mutation.resolver.js";
|
|
8
|
+
import {
|
|
9
|
+
createAllPlaceholdersQueryResolver,
|
|
10
|
+
createPlaceholderQueryResolver,
|
|
11
|
+
placeholderQueryResolvers
|
|
12
|
+
} from "./placeholder.query.resolver.js";
|
|
13
|
+
import { placeholderResolvers } from "./placeholder.resolver.js";
|
|
14
|
+
import { placeholderTypeDefs } from "./placeholder.type-defs.js";
|
|
15
|
+
export {
|
|
16
|
+
createAllPlaceholdersQueryResolver,
|
|
17
|
+
createCreatePlaceholderMutationResolver,
|
|
18
|
+
createDeletePlaceholderMutationResolver,
|
|
19
|
+
createPlaceholderQueryResolver,
|
|
20
|
+
createUpdatePlaceholderMutationResolver,
|
|
21
|
+
placeholderFieldResolvers,
|
|
22
|
+
placeholderMutationResolvers,
|
|
23
|
+
placeholderQueryResolvers,
|
|
24
|
+
placeholderResolvers,
|
|
25
|
+
placeholderTypeDefs
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/placeholder/graphql/index.ts"],"sourcesContent":["export { placeholderFieldResolvers } from './placeholder.field.resolver.js';\nexport {\n createCreatePlaceholderMutationResolver,\n createDeletePlaceholderMutationResolver,\n createUpdatePlaceholderMutationResolver,\n placeholderMutationResolvers,\n} from './placeholder.mutation.resolver.js';\nexport {\n createAllPlaceholdersQueryResolver,\n createPlaceholderQueryResolver,\n placeholderQueryResolvers,\n} from './placeholder.query.resolver.js';\nexport { placeholderResolvers } from './placeholder.resolver.js';\nexport { placeholderTypeDefs } from './placeholder.type-defs.js';\n"],"mappings":"AAAA,SAAS,iCAAiC;AAC1C;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,4BAA4B;AACrC,SAAS,2BAA2B;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/placeholder/graphql/placeholder.field.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\n\ntype PlaceholderFieldResolvers = NonNullable<IResolvers['Placeholder']>;\n\nexport const placeholderFieldResolvers: PlaceholderFieldResolvers = {};\n"],"mappings":"AAIO,MAAM,4BAAuD,CAAC;","names":[]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import models from "../../../models.js";
|
|
2
|
+
const createCreatePlaceholderMutationResolver = (deps = {
|
|
3
|
+
createPlaceholder: async (input) => models.placeholder.create({
|
|
4
|
+
data: {
|
|
5
|
+
name: input.name,
|
|
6
|
+
template: input.template,
|
|
7
|
+
replacement: input.replacement
|
|
8
|
+
}
|
|
9
|
+
})
|
|
10
|
+
}) => {
|
|
11
|
+
return async (_, { name, template, replacement }) => {
|
|
12
|
+
return deps.createPlaceholder({
|
|
13
|
+
name,
|
|
14
|
+
template,
|
|
15
|
+
replacement
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
const createUpdatePlaceholderMutationResolver = (deps = {
|
|
20
|
+
findPlaceholderById: async (id) => models.placeholder.findFirst({ where: { id } }),
|
|
21
|
+
updatePlaceholder: async (input) => {
|
|
22
|
+
await models.placeholder.update({
|
|
23
|
+
where: { id: input.id },
|
|
24
|
+
data: {
|
|
25
|
+
name: input.name,
|
|
26
|
+
template: input.template,
|
|
27
|
+
replacement: input.replacement
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}) => {
|
|
32
|
+
return async (_, { id, name, template, replacement }) => {
|
|
33
|
+
const placeholder = await deps.findPlaceholderById(Number(id));
|
|
34
|
+
if (!placeholder) {
|
|
35
|
+
throw new Error("Placeholder not found");
|
|
36
|
+
}
|
|
37
|
+
await deps.updatePlaceholder({
|
|
38
|
+
id: Number(id),
|
|
39
|
+
name,
|
|
40
|
+
template,
|
|
41
|
+
replacement
|
|
42
|
+
});
|
|
43
|
+
return placeholder;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
const createDeletePlaceholderMutationResolver = (deps = {
|
|
47
|
+
findPlaceholderById: async (id) => models.placeholder.findFirst({ where: { id } }),
|
|
48
|
+
deletePlaceholder: async (id) => {
|
|
49
|
+
await models.placeholder.delete({ where: { id } });
|
|
50
|
+
}
|
|
51
|
+
}) => {
|
|
52
|
+
return async (_, { id }) => {
|
|
53
|
+
const placeholder = await deps.findPlaceholderById(Number(id));
|
|
54
|
+
if (!placeholder) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
await deps.deletePlaceholder(Number(id));
|
|
58
|
+
return true;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
const placeholderMutationResolvers = {
|
|
62
|
+
createPlaceholder: createCreatePlaceholderMutationResolver(),
|
|
63
|
+
updatePlaceholder: createUpdatePlaceholderMutationResolver(),
|
|
64
|
+
deletePlaceholder: createDeletePlaceholderMutationResolver()
|
|
65
|
+
};
|
|
66
|
+
export {
|
|
67
|
+
createCreatePlaceholderMutationResolver,
|
|
68
|
+
createDeletePlaceholderMutationResolver,
|
|
69
|
+
createUpdatePlaceholderMutationResolver,
|
|
70
|
+
placeholderMutationResolvers
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=placeholder.mutation.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/placeholder/graphql/placeholder.mutation.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport models from '~/models.js';\n\ntype PlaceholderMutationResolvers = NonNullable<IResolvers['Mutation']>;\ntype PlaceholderRecord = Awaited<ReturnType<typeof models.placeholder.findFirst>>;\n\ninterface CreatePlaceholderArgs {\n name: string;\n template: string;\n replacement?: string;\n}\n\ninterface UpdatePlaceholderArgs {\n id: string | number;\n name?: string;\n template?: string;\n replacement?: string;\n}\n\ninterface PlaceholderMutationDeps {\n createPlaceholder: (input: CreatePlaceholderArgs) => Promise<unknown>;\n deletePlaceholder: (id: number) => Promise<void>;\n findPlaceholderById: (id: number) => Promise<PlaceholderRecord>;\n updatePlaceholder: (input: { id: number; name?: string; template?: string; replacement?: string }) => Promise<void>;\n}\n\nexport const createCreatePlaceholderMutationResolver = (\n deps: Pick<PlaceholderMutationDeps, 'createPlaceholder'> = {\n createPlaceholder: async (input) =>\n models.placeholder.create({\n data: {\n name: input.name,\n template: input.template,\n replacement: input.replacement as string,\n },\n }),\n },\n) => {\n return async (_: unknown, { name, template, replacement }: CreatePlaceholderArgs) => {\n return deps.createPlaceholder({\n name,\n template,\n replacement,\n });\n };\n};\n\nexport const createUpdatePlaceholderMutationResolver = (\n deps: Pick<PlaceholderMutationDeps, 'findPlaceholderById' | 'updatePlaceholder'> = {\n findPlaceholderById: async (id) => models.placeholder.findFirst({ where: { id } }),\n updatePlaceholder: async (input) => {\n await models.placeholder.update({\n where: { id: input.id },\n data: {\n name: input.name,\n template: input.template,\n replacement: input.replacement,\n },\n });\n },\n },\n) => {\n return async (_: unknown, { id, name, template, replacement }: UpdatePlaceholderArgs) => {\n const placeholder = await deps.findPlaceholderById(Number(id));\n\n if (!placeholder) {\n throw new Error('Placeholder not found');\n }\n\n await deps.updatePlaceholder({\n id: Number(id),\n name,\n template,\n replacement,\n });\n\n return placeholder;\n };\n};\n\nexport const createDeletePlaceholderMutationResolver = (\n deps: Pick<PlaceholderMutationDeps, 'findPlaceholderById' | 'deletePlaceholder'> = {\n findPlaceholderById: async (id) => models.placeholder.findFirst({ where: { id } }),\n deletePlaceholder: async (id) => {\n await models.placeholder.delete({ where: { id } });\n },\n },\n) => {\n return async (_: unknown, { id }: { id: string | number }) => {\n const placeholder = await deps.findPlaceholderById(Number(id));\n\n if (!placeholder) {\n return false;\n }\n\n await deps.deletePlaceholder(Number(id));\n return true;\n };\n};\n\nexport const placeholderMutationResolvers: PlaceholderMutationResolvers = {\n createPlaceholder: createCreatePlaceholderMutationResolver(),\n updatePlaceholder: createUpdatePlaceholderMutationResolver(),\n deletePlaceholder: createDeletePlaceholderMutationResolver(),\n};\n"],"mappings":"AACA,OAAO,YAAY;AAyBZ,MAAM,0CAA0C,CACnD,OAA2D;AAAA,EACvD,mBAAmB,OAAO,UACtB,OAAO,YAAY,OAAO;AAAA,IACtB,MAAM;AAAA,MACF,MAAM,MAAM;AAAA,MACZ,UAAU,MAAM;AAAA,MAChB,aAAa,MAAM;AAAA,IACvB;AAAA,EACJ,CAAC;AACT,MACC;AACD,SAAO,OAAO,GAAY,EAAE,MAAM,UAAU,YAAY,MAA6B;AACjF,WAAO,KAAK,kBAAkB;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AAEO,MAAM,0CAA0C,CACnD,OAAmF;AAAA,EAC/E,qBAAqB,OAAO,OAAO,OAAO,YAAY,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAAA,EACjF,mBAAmB,OAAO,UAAU;AAChC,UAAM,OAAO,YAAY,OAAO;AAAA,MAC5B,OAAO,EAAE,IAAI,MAAM,GAAG;AAAA,MACtB,MAAM;AAAA,QACF,MAAM,MAAM;AAAA,QACZ,UAAU,MAAM;AAAA,QAChB,aAAa,MAAM;AAAA,MACvB;AAAA,IACJ,CAAC;AAAA,EACL;AACJ,MACC;AACD,SAAO,OAAO,GAAY,EAAE,IAAI,MAAM,UAAU,YAAY,MAA6B;AACrF,UAAM,cAAc,MAAM,KAAK,oBAAoB,OAAO,EAAE,CAAC;AAE7D,QAAI,CAAC,aAAa;AACd,YAAM,IAAI,MAAM,uBAAuB;AAAA,IAC3C;AAEA,UAAM,KAAK,kBAAkB;AAAA,MACzB,IAAI,OAAO,EAAE;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAED,WAAO;AAAA,EACX;AACJ;AAEO,MAAM,0CAA0C,CACnD,OAAmF;AAAA,EAC/E,qBAAqB,OAAO,OAAO,OAAO,YAAY,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAAA,EACjF,mBAAmB,OAAO,OAAO;AAC7B,UAAM,OAAO,YAAY,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAAA,EACrD;AACJ,MACC;AACD,SAAO,OAAO,GAAY,EAAE,GAAG,MAA+B;AAC1D,UAAM,cAAc,MAAM,KAAK,oBAAoB,OAAO,EAAE,CAAC;AAE7D,QAAI,CAAC,aAAa;AACd,aAAO;AAAA,IACX;AAEA,UAAM,KAAK,kBAAkB,OAAO,EAAE,CAAC;AACvC,WAAO;AAAA,EACX;AACJ;AAEO,MAAM,+BAA6D;AAAA,EACtE,mBAAmB,wCAAwC;AAAA,EAC3D,mBAAmB,wCAAwC;AAAA,EAC3D,mBAAmB,wCAAwC;AAC/D;","names":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import models from "../../../models.js";
|
|
2
|
+
const createAllPlaceholdersQueryResolver = (deps = {
|
|
3
|
+
countPlaceholders: async () => models.placeholder.count(),
|
|
4
|
+
findPlaceholderById: async (id) => models.placeholder.findFirst({ where: { id } }),
|
|
5
|
+
findPlaceholders: async (input) => models.placeholder.findMany(input)
|
|
6
|
+
}) => {
|
|
7
|
+
return async (_, { searchFilter, pagination }) => {
|
|
8
|
+
const placeholders = await deps.findPlaceholders({
|
|
9
|
+
where: searchFilter?.query ? { name: { contains: searchFilter.query } } : void 0,
|
|
10
|
+
take: pagination?.limit,
|
|
11
|
+
skip: pagination?.offset
|
|
12
|
+
});
|
|
13
|
+
const totalCount = await deps.countPlaceholders();
|
|
14
|
+
return {
|
|
15
|
+
totalCount,
|
|
16
|
+
placeholders
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
const createPlaceholderQueryResolver = (deps = {
|
|
21
|
+
findPlaceholderById: async (id) => models.placeholder.findFirst({ where: { id } })
|
|
22
|
+
}) => {
|
|
23
|
+
return async (_, { id }) => {
|
|
24
|
+
return deps.findPlaceholderById(Number(id));
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
const placeholderQueryResolvers = {
|
|
28
|
+
allPlaceholders: createAllPlaceholdersQueryResolver(),
|
|
29
|
+
placeholder: createPlaceholderQueryResolver()
|
|
30
|
+
};
|
|
31
|
+
export {
|
|
32
|
+
createAllPlaceholdersQueryResolver,
|
|
33
|
+
createPlaceholderQueryResolver,
|
|
34
|
+
placeholderQueryResolvers
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=placeholder.query.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/placeholder/graphql/placeholder.query.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport models from '~/models.js';\nimport type { Pagination, SearchFilter } from '~/types/index.js';\n\ntype PlaceholderQueryResolvers = NonNullable<IResolvers['Query']>;\n\ninterface PlaceholderQueryDeps {\n countPlaceholders: () => Promise<number>;\n findPlaceholderById: (id: number) => Promise<unknown>;\n findPlaceholders: (input: {\n where?: { name: { contains: string } };\n take?: number;\n skip?: number;\n }) => Promise<unknown[]>;\n}\n\nexport const createAllPlaceholdersQueryResolver = (\n deps: PlaceholderQueryDeps = {\n countPlaceholders: async () => models.placeholder.count(),\n findPlaceholderById: async (id) => models.placeholder.findFirst({ where: { id } }),\n findPlaceholders: async (input) => models.placeholder.findMany(input),\n },\n) => {\n return async (\n _: unknown,\n { searchFilter, pagination }: { searchFilter?: SearchFilter; pagination?: Pagination },\n ) => {\n const placeholders = await deps.findPlaceholders({\n where: searchFilter?.query ? { name: { contains: searchFilter.query } } : undefined,\n take: pagination?.limit,\n skip: pagination?.offset,\n });\n\n const totalCount = await deps.countPlaceholders();\n\n return {\n totalCount,\n placeholders,\n };\n };\n};\n\nexport const createPlaceholderQueryResolver = (\n deps: Pick<PlaceholderQueryDeps, 'findPlaceholderById'> = {\n findPlaceholderById: async (id) => models.placeholder.findFirst({ where: { id } }),\n },\n) => {\n return async (_: unknown, { id }: { id: string | number }) => {\n return deps.findPlaceholderById(Number(id));\n };\n};\n\nexport const placeholderQueryResolvers: PlaceholderQueryResolvers = {\n allPlaceholders: createAllPlaceholdersQueryResolver(),\n placeholder: createPlaceholderQueryResolver(),\n};\n"],"mappings":"AACA,OAAO,YAAY;AAeZ,MAAM,qCAAqC,CAC9C,OAA6B;AAAA,EACzB,mBAAmB,YAAY,OAAO,YAAY,MAAM;AAAA,EACxD,qBAAqB,OAAO,OAAO,OAAO,YAAY,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAAA,EACjF,kBAAkB,OAAO,UAAU,OAAO,YAAY,SAAS,KAAK;AACxE,MACC;AACD,SAAO,OACH,GACA,EAAE,cAAc,WAAW,MAC1B;AACD,UAAM,eAAe,MAAM,KAAK,iBAAiB;AAAA,MAC7C,OAAO,cAAc,QAAQ,EAAE,MAAM,EAAE,UAAU,aAAa,MAAM,EAAE,IAAI;AAAA,MAC1E,MAAM,YAAY;AAAA,MAClB,MAAM,YAAY;AAAA,IACtB,CAAC;AAED,UAAM,aAAa,MAAM,KAAK,kBAAkB;AAEhD,WAAO;AAAA,MACH;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACJ;AAEO,MAAM,iCAAiC,CAC1C,OAA0D;AAAA,EACtD,qBAAqB,OAAO,OAAO,OAAO,YAAY,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACrF,MACC;AACD,SAAO,OAAO,GAAY,EAAE,GAAG,MAA+B;AAC1D,WAAO,KAAK,oBAAoB,OAAO,EAAE,CAAC;AAAA,EAC9C;AACJ;AAEO,MAAM,4BAAuD;AAAA,EAChE,iBAAiB,mCAAmC;AAAA,EACpD,aAAa,+BAA+B;AAChD;","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { placeholderFieldResolvers } from "./placeholder.field.resolver.js";
|
|
2
|
+
import { placeholderMutationResolvers } from "./placeholder.mutation.resolver.js";
|
|
3
|
+
import { placeholderQueryResolvers } from "./placeholder.query.resolver.js";
|
|
4
|
+
const placeholderResolvers = {
|
|
5
|
+
Query: placeholderQueryResolvers,
|
|
6
|
+
Mutation: placeholderMutationResolvers,
|
|
7
|
+
Placeholder: placeholderFieldResolvers
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
placeholderResolvers
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=placeholder.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/placeholder/graphql/placeholder.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport { placeholderFieldResolvers } from './placeholder.field.resolver.js';\nimport { placeholderMutationResolvers } from './placeholder.mutation.resolver.js';\nimport { placeholderQueryResolvers } from './placeholder.query.resolver.js';\n\nexport const placeholderResolvers: IResolvers = {\n Query: placeholderQueryResolvers,\n Mutation: placeholderMutationResolvers,\n Placeholder: placeholderFieldResolvers,\n};\n"],"mappings":"AACA,SAAS,iCAAiC;AAC1C,SAAS,oCAAoC;AAC7C,SAAS,iCAAiC;AAEnC,MAAM,uBAAmC;AAAA,EAC5C,OAAO;AAAA,EACP,UAAU;AAAA,EACV,aAAa;AACjB;","names":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { gql } from "../../../modules/graphql.js";
|
|
2
|
+
const placeholderType = gql`
|
|
3
|
+
input PaginationInput {
|
|
4
|
+
limit: Int!
|
|
5
|
+
offset: Int!
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
input SearchFilterInput {
|
|
9
|
+
query: String!
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
type Placeholder {
|
|
13
|
+
id: ID!
|
|
14
|
+
name: String!
|
|
15
|
+
template: String!
|
|
16
|
+
replacement: String!
|
|
17
|
+
createdAt: String!
|
|
18
|
+
updatedAt: String!
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
type Placeholders {
|
|
22
|
+
totalCount: Int!
|
|
23
|
+
placeholders: [Placeholder!]!
|
|
24
|
+
}
|
|
25
|
+
`;
|
|
26
|
+
const placeholderQuery = gql`
|
|
27
|
+
type Query {
|
|
28
|
+
allPlaceholders(searchFilter: SearchFilterInput, pagination: PaginationInput): Placeholders!
|
|
29
|
+
placeholder(id: ID!): Placeholder
|
|
30
|
+
}
|
|
31
|
+
`;
|
|
32
|
+
const placeholderMutation = gql`
|
|
33
|
+
type Mutation {
|
|
34
|
+
createPlaceholder(name: String!, template: String!, replacement: String): Placeholder!
|
|
35
|
+
updatePlaceholder(id: ID!, name: String, template: String, replacement: String): Placeholder!
|
|
36
|
+
deletePlaceholder(id: ID!): Boolean!
|
|
37
|
+
}
|
|
38
|
+
`;
|
|
39
|
+
const placeholderTypeDefs = `
|
|
40
|
+
${placeholderType}
|
|
41
|
+
${placeholderQuery}
|
|
42
|
+
${placeholderMutation}
|
|
43
|
+
`;
|
|
44
|
+
export {
|
|
45
|
+
placeholderMutation,
|
|
46
|
+
placeholderQuery,
|
|
47
|
+
placeholderType,
|
|
48
|
+
placeholderTypeDefs
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=placeholder.type-defs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/placeholder/graphql/placeholder.type-defs.ts"],"sourcesContent":["import { gql } from '~/modules/graphql.js';\n\nexport const placeholderType = gql`\n input PaginationInput {\n limit: Int!\n offset: Int!\n }\n\n input SearchFilterInput {\n query: String!\n }\n\n type Placeholder {\n id: ID!\n name: String!\n template: String!\n replacement: String!\n createdAt: String!\n updatedAt: String!\n }\n\n type Placeholders {\n totalCount: Int!\n placeholders: [Placeholder!]!\n }\n`;\n\nexport const placeholderQuery = gql`\n type Query {\n allPlaceholders(searchFilter: SearchFilterInput, pagination: PaginationInput): Placeholders!\n placeholder(id: ID!): Placeholder\n }\n`;\n\nexport const placeholderMutation = gql`\n type Mutation {\n createPlaceholder(name: String!, template: String!, replacement: String): Placeholder!\n updatePlaceholder(id: ID!, name: String, template: String, replacement: String): Placeholder!\n deletePlaceholder(id: ID!): Boolean!\n }\n`;\n\nexport const placeholderTypeDefs = `\n ${placeholderType}\n ${placeholderQuery}\n ${placeholderMutation}\n`;\n"],"mappings":"AAAA,SAAS,WAAW;AAEb,MAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBxB,MAAM,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAOzB,MAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQ5B,MAAM,sBAAsB;AAAA,MAC7B,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,mBAAmB;AAAA;","names":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { reminderFieldResolvers } from "./reminder.field.resolver.js";
|
|
2
|
+
import {
|
|
3
|
+
createCreateReminderMutationResolver,
|
|
4
|
+
createDeleteReminderMutationResolver,
|
|
5
|
+
createUpdateReminderMutationResolver,
|
|
6
|
+
reminderMutationResolvers
|
|
7
|
+
} from "./reminder.mutation.resolver.js";
|
|
8
|
+
import {
|
|
9
|
+
createNoteRemindersQueryResolver,
|
|
10
|
+
createUpcomingRemindersQueryResolver,
|
|
11
|
+
reminderQueryResolvers
|
|
12
|
+
} from "./reminder.query.resolver.js";
|
|
13
|
+
import { reminderResolvers } from "./reminder.resolver.js";
|
|
14
|
+
import { reminderTypeDefs } from "./reminder.type-defs.js";
|
|
15
|
+
export {
|
|
16
|
+
createCreateReminderMutationResolver,
|
|
17
|
+
createDeleteReminderMutationResolver,
|
|
18
|
+
createNoteRemindersQueryResolver,
|
|
19
|
+
createUpcomingRemindersQueryResolver,
|
|
20
|
+
createUpdateReminderMutationResolver,
|
|
21
|
+
reminderFieldResolvers,
|
|
22
|
+
reminderMutationResolvers,
|
|
23
|
+
reminderQueryResolvers,
|
|
24
|
+
reminderResolvers,
|
|
25
|
+
reminderTypeDefs
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/reminder/graphql/index.ts"],"sourcesContent":["export { reminderFieldResolvers } from './reminder.field.resolver.js';\nexport {\n createCreateReminderMutationResolver,\n createDeleteReminderMutationResolver,\n createUpdateReminderMutationResolver,\n reminderMutationResolvers,\n} from './reminder.mutation.resolver.js';\nexport {\n createNoteRemindersQueryResolver,\n createUpcomingRemindersQueryResolver,\n reminderQueryResolvers,\n} from './reminder.query.resolver.js';\nexport { reminderResolvers } from './reminder.resolver.js';\nexport { reminderTypeDefs } from './reminder.type-defs.js';\n"],"mappings":"AAAA,SAAS,8BAA8B;AACvC;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import models from "../../../models.js";
|
|
2
|
+
const reminderFieldResolvers = {
|
|
3
|
+
note: async (reminder) => {
|
|
4
|
+
return models.note.findUnique({ where: { id: reminder.noteId } });
|
|
5
|
+
}
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
reminderFieldResolvers
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=reminder.field.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/reminder/graphql/reminder.field.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport models from '~/models.js';\n\ntype ReminderFieldResolvers = NonNullable<IResolvers['Reminder']>;\n\nexport const reminderFieldResolvers: ReminderFieldResolvers = {\n note: async (reminder: { noteId: number }) => {\n return models.note.findUnique({ where: { id: reminder.noteId } });\n },\n};\n"],"mappings":"AACA,OAAO,YAAY;AAIZ,MAAM,yBAAiD;AAAA,EAC1D,MAAM,OAAO,aAAiC;AAC1C,WAAO,OAAO,KAAK,WAAW,EAAE,OAAO,EAAE,IAAI,SAAS,OAAO,EAAE,CAAC;AAAA,EACpE;AACJ;","names":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import models from "../../../models.js";
|
|
2
|
+
const createCreateReminderMutationResolver = (deps = {
|
|
3
|
+
createReminder: async (data) => models.reminder.create({ data })
|
|
4
|
+
}) => {
|
|
5
|
+
return async (_, input) => {
|
|
6
|
+
return deps.createReminder({
|
|
7
|
+
noteId: Number(input.noteId),
|
|
8
|
+
reminderDate: new Date(input.reminderDate),
|
|
9
|
+
completed: false,
|
|
10
|
+
priority: input.priority || "medium",
|
|
11
|
+
content: input.content
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
const createUpdateReminderMutationResolver = (deps = {
|
|
16
|
+
updateReminder: async (id, data) => models.reminder.update({
|
|
17
|
+
where: { id },
|
|
18
|
+
data
|
|
19
|
+
})
|
|
20
|
+
}) => {
|
|
21
|
+
return async (_, input) => {
|
|
22
|
+
const data = {};
|
|
23
|
+
if (input.reminderDate) {
|
|
24
|
+
data.reminderDate = new Date(input.reminderDate);
|
|
25
|
+
}
|
|
26
|
+
if (input.completed !== void 0) {
|
|
27
|
+
data.completed = input.completed;
|
|
28
|
+
}
|
|
29
|
+
if (input.priority) {
|
|
30
|
+
data.priority = input.priority;
|
|
31
|
+
}
|
|
32
|
+
if (input.content !== void 0) {
|
|
33
|
+
data.content = input.content;
|
|
34
|
+
}
|
|
35
|
+
return deps.updateReminder(Number(input.id), data);
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
const createDeleteReminderMutationResolver = (deps = {
|
|
39
|
+
deleteReminder: async (id) => {
|
|
40
|
+
await models.reminder.delete({ where: { id } });
|
|
41
|
+
}
|
|
42
|
+
}) => {
|
|
43
|
+
return async (_, { id }) => {
|
|
44
|
+
await deps.deleteReminder(Number(id));
|
|
45
|
+
return true;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
const reminderMutationResolvers = {
|
|
49
|
+
createReminder: createCreateReminderMutationResolver(),
|
|
50
|
+
updateReminder: createUpdateReminderMutationResolver(),
|
|
51
|
+
deleteReminder: createDeleteReminderMutationResolver()
|
|
52
|
+
};
|
|
53
|
+
export {
|
|
54
|
+
createCreateReminderMutationResolver,
|
|
55
|
+
createDeleteReminderMutationResolver,
|
|
56
|
+
createUpdateReminderMutationResolver,
|
|
57
|
+
reminderMutationResolvers
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=reminder.mutation.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/reminder/graphql/reminder.mutation.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport type { Reminder } from '~/models.js';\nimport models from '~/models.js';\n\ntype ReminderPriority = 'low' | 'medium' | 'high';\n\ninterface ReminderCreateInput {\n noteId: string;\n reminderDate: string;\n priority?: ReminderPriority;\n content?: string;\n}\n\ninterface ReminderUpdateInput {\n id: string;\n reminderDate?: string;\n completed?: boolean;\n priority?: ReminderPriority;\n content?: string;\n}\n\ninterface ReminderMutationDeps {\n createReminder: (data: {\n noteId: number;\n reminderDate: Date;\n completed: boolean;\n priority: ReminderPriority;\n content?: string;\n }) => Promise<unknown>;\n updateReminder: (id: number, data: Partial<Reminder>) => Promise<unknown>;\n deleteReminder: (id: number) => Promise<void>;\n}\n\nexport const createCreateReminderMutationResolver = (\n deps: Pick<ReminderMutationDeps, 'createReminder'> = {\n createReminder: async (data) => models.reminder.create({ data }),\n },\n) => {\n return async (_: unknown, input: ReminderCreateInput) => {\n return deps.createReminder({\n noteId: Number(input.noteId),\n reminderDate: new Date(input.reminderDate),\n completed: false,\n priority: input.priority || 'medium',\n content: input.content,\n });\n };\n};\n\nexport const createUpdateReminderMutationResolver = (\n deps: Pick<ReminderMutationDeps, 'updateReminder'> = {\n updateReminder: async (id, data) =>\n models.reminder.update({\n where: { id },\n data,\n }),\n },\n) => {\n return async (_: unknown, input: ReminderUpdateInput) => {\n const data: Partial<Reminder> = {};\n\n if (input.reminderDate) {\n data.reminderDate = new Date(input.reminderDate);\n }\n\n if (input.completed !== undefined) {\n data.completed = input.completed;\n }\n\n if (input.priority) {\n data.priority = input.priority;\n }\n\n if (input.content !== undefined) {\n data.content = input.content;\n }\n\n return deps.updateReminder(Number(input.id), data);\n };\n};\n\nexport const createDeleteReminderMutationResolver = (\n deps: Pick<ReminderMutationDeps, 'deleteReminder'> = {\n deleteReminder: async (id) => {\n await models.reminder.delete({ where: { id } });\n },\n },\n) => {\n return async (_: unknown, { id }: { id: string }) => {\n await deps.deleteReminder(Number(id));\n return true;\n };\n};\n\ntype ReminderMutationResolvers = NonNullable<IResolvers['Mutation']>;\n\nexport const reminderMutationResolvers: ReminderMutationResolvers = {\n createReminder: createCreateReminderMutationResolver(),\n updateReminder: createUpdateReminderMutationResolver(),\n deleteReminder: createDeleteReminderMutationResolver(),\n};\n"],"mappings":"AAEA,OAAO,YAAY;AA+BZ,MAAM,uCAAuC,CAChD,OAAqD;AAAA,EACjD,gBAAgB,OAAO,SAAS,OAAO,SAAS,OAAO,EAAE,KAAK,CAAC;AACnE,MACC;AACD,SAAO,OAAO,GAAY,UAA+B;AACrD,WAAO,KAAK,eAAe;AAAA,MACvB,QAAQ,OAAO,MAAM,MAAM;AAAA,MAC3B,cAAc,IAAI,KAAK,MAAM,YAAY;AAAA,MACzC,WAAW;AAAA,MACX,UAAU,MAAM,YAAY;AAAA,MAC5B,SAAS,MAAM;AAAA,IACnB,CAAC;AAAA,EACL;AACJ;AAEO,MAAM,uCAAuC,CAChD,OAAqD;AAAA,EACjD,gBAAgB,OAAO,IAAI,SACvB,OAAO,SAAS,OAAO;AAAA,IACnB,OAAO,EAAE,GAAG;AAAA,IACZ;AAAA,EACJ,CAAC;AACT,MACC;AACD,SAAO,OAAO,GAAY,UAA+B;AACrD,UAAM,OAA0B,CAAC;AAEjC,QAAI,MAAM,cAAc;AACpB,WAAK,eAAe,IAAI,KAAK,MAAM,YAAY;AAAA,IACnD;AAEA,QAAI,MAAM,cAAc,QAAW;AAC/B,WAAK,YAAY,MAAM;AAAA,IAC3B;AAEA,QAAI,MAAM,UAAU;AAChB,WAAK,WAAW,MAAM;AAAA,IAC1B;AAEA,QAAI,MAAM,YAAY,QAAW;AAC7B,WAAK,UAAU,MAAM;AAAA,IACzB;AAEA,WAAO,KAAK,eAAe,OAAO,MAAM,EAAE,GAAG,IAAI;AAAA,EACrD;AACJ;AAEO,MAAM,uCAAuC,CAChD,OAAqD;AAAA,EACjD,gBAAgB,OAAO,OAAO;AAC1B,UAAM,OAAO,SAAS,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAAA,EAClD;AACJ,MACC;AACD,SAAO,OAAO,GAAY,EAAE,GAAG,MAAsB;AACjD,UAAM,KAAK,eAAe,OAAO,EAAE,CAAC;AACpC,WAAO;AAAA,EACX;AACJ;AAIO,MAAM,4BAAuD;AAAA,EAChE,gBAAgB,qCAAqC;AAAA,EACrD,gBAAgB,qCAAqC;AAAA,EACrD,gBAAgB,qCAAqC;AACzD;","names":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import models from "../../../models.js";
|
|
2
|
+
const createNoteRemindersQueryResolver = (deps = {
|
|
3
|
+
countReminders: async (where) => models.reminder.count({ where }),
|
|
4
|
+
findReminders: async (args) => models.reminder.findMany(args)
|
|
5
|
+
}) => {
|
|
6
|
+
return async (_, {
|
|
7
|
+
noteId,
|
|
8
|
+
pagination = {
|
|
9
|
+
limit: 10,
|
|
10
|
+
offset: 0
|
|
11
|
+
}
|
|
12
|
+
}) => {
|
|
13
|
+
const where = { noteId: Number(noteId) };
|
|
14
|
+
const [totalCount, reminders] = await Promise.all([
|
|
15
|
+
deps.countReminders(where),
|
|
16
|
+
deps.findReminders({
|
|
17
|
+
where,
|
|
18
|
+
orderBy: { reminderDate: "asc" },
|
|
19
|
+
take: Number(pagination.limit),
|
|
20
|
+
skip: Number(pagination.offset)
|
|
21
|
+
})
|
|
22
|
+
]);
|
|
23
|
+
return {
|
|
24
|
+
totalCount,
|
|
25
|
+
reminders
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
const createUpcomingRemindersQueryResolver = (deps = {
|
|
30
|
+
countReminders: async (where) => models.reminder.count({ where }),
|
|
31
|
+
findReminders: async (args) => models.reminder.findMany(args)
|
|
32
|
+
}) => {
|
|
33
|
+
return async (_, {
|
|
34
|
+
pagination = {
|
|
35
|
+
limit: 10,
|
|
36
|
+
offset: 0
|
|
37
|
+
}
|
|
38
|
+
}) => {
|
|
39
|
+
const where = { completed: false };
|
|
40
|
+
const [totalCount, reminders] = await Promise.all([
|
|
41
|
+
deps.countReminders(where),
|
|
42
|
+
deps.findReminders({
|
|
43
|
+
where,
|
|
44
|
+
orderBy: { reminderDate: "asc" },
|
|
45
|
+
take: Number(pagination.limit),
|
|
46
|
+
skip: Number(pagination.offset),
|
|
47
|
+
include: { note: true }
|
|
48
|
+
})
|
|
49
|
+
]);
|
|
50
|
+
return {
|
|
51
|
+
totalCount,
|
|
52
|
+
reminders
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
const reminderQueryResolvers = {
|
|
57
|
+
noteReminders: createNoteRemindersQueryResolver(),
|
|
58
|
+
upcomingReminders: createUpcomingRemindersQueryResolver(),
|
|
59
|
+
remindersInDateRange: async (_, {
|
|
60
|
+
dateRange
|
|
61
|
+
}) => {
|
|
62
|
+
return models.reminder.findMany({
|
|
63
|
+
where: {
|
|
64
|
+
reminderDate: {
|
|
65
|
+
gte: new Date(dateRange.start),
|
|
66
|
+
lt: new Date(dateRange.end)
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
orderBy: { reminderDate: "asc" },
|
|
70
|
+
include: { note: true }
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
export {
|
|
75
|
+
createNoteRemindersQueryResolver,
|
|
76
|
+
createUpcomingRemindersQueryResolver,
|
|
77
|
+
reminderQueryResolvers
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=reminder.query.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/reminder/graphql/reminder.query.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport models from '~/models.js';\nimport type { Pagination } from '~/types/index.js';\n\ninterface ReminderListDeps {\n countReminders: (where: object) => Promise<number>;\n findReminders: (args: {\n where: object;\n orderBy: { reminderDate: 'asc' };\n take?: number;\n skip?: number;\n include?: { note: true };\n }) => Promise<unknown[]>;\n}\n\ntype NoteRemindersResolverDeps = ReminderListDeps;\ntype UpcomingRemindersResolverDeps = ReminderListDeps;\n\nexport const createNoteRemindersQueryResolver = (\n deps: NoteRemindersResolverDeps = {\n countReminders: async (where) => models.reminder.count({ where }),\n findReminders: async (args) => models.reminder.findMany(args),\n },\n) => {\n return async (\n _: unknown,\n {\n noteId,\n pagination = {\n limit: 10,\n offset: 0,\n },\n }: {\n noteId: string;\n pagination: Pagination;\n },\n ) => {\n const where = { noteId: Number(noteId) };\n const [totalCount, reminders] = await Promise.all([\n deps.countReminders(where),\n deps.findReminders({\n where,\n orderBy: { reminderDate: 'asc' },\n take: Number(pagination.limit),\n skip: Number(pagination.offset),\n }),\n ]);\n\n return {\n totalCount,\n reminders,\n };\n };\n};\n\nexport const createUpcomingRemindersQueryResolver = (\n deps: UpcomingRemindersResolverDeps = {\n countReminders: async (where) => models.reminder.count({ where }),\n findReminders: async (args) => models.reminder.findMany(args),\n },\n) => {\n return async (\n _: unknown,\n {\n pagination = {\n limit: 10,\n offset: 0,\n },\n }: {\n pagination: Pagination;\n },\n ) => {\n const where = { completed: false };\n const [totalCount, reminders] = await Promise.all([\n deps.countReminders(where),\n deps.findReminders({\n where,\n orderBy: { reminderDate: 'asc' },\n take: Number(pagination.limit),\n skip: Number(pagination.offset),\n include: { note: true },\n }),\n ]);\n\n return {\n totalCount,\n reminders,\n };\n };\n};\n\ntype ReminderQueryResolvers = NonNullable<IResolvers['Query']>;\n\nexport const reminderQueryResolvers: ReminderQueryResolvers = {\n noteReminders: createNoteRemindersQueryResolver(),\n upcomingReminders: createUpcomingRemindersQueryResolver(),\n remindersInDateRange: async (\n _,\n {\n dateRange,\n }: {\n dateRange: {\n start: string;\n end: string;\n };\n },\n ) => {\n return models.reminder.findMany({\n where: {\n reminderDate: {\n gte: new Date(dateRange.start),\n lt: new Date(dateRange.end),\n },\n },\n orderBy: { reminderDate: 'asc' },\n include: { note: true },\n });\n },\n};\n"],"mappings":"AACA,OAAO,YAAY;AAiBZ,MAAM,mCAAmC,CAC5C,OAAkC;AAAA,EAC9B,gBAAgB,OAAO,UAAU,OAAO,SAAS,MAAM,EAAE,MAAM,CAAC;AAAA,EAChE,eAAe,OAAO,SAAS,OAAO,SAAS,SAAS,IAAI;AAChE,MACC;AACD,SAAO,OACH,GACA;AAAA,IACI;AAAA,IACA,aAAa;AAAA,MACT,OAAO;AAAA,MACP,QAAQ;AAAA,IACZ;AAAA,EACJ,MAIC;AACD,UAAM,QAAQ,EAAE,QAAQ,OAAO,MAAM,EAAE;AACvC,UAAM,CAAC,YAAY,SAAS,IAAI,MAAM,QAAQ,IAAI;AAAA,MAC9C,KAAK,eAAe,KAAK;AAAA,MACzB,KAAK,cAAc;AAAA,QACf;AAAA,QACA,SAAS,EAAE,cAAc,MAAM;AAAA,QAC/B,MAAM,OAAO,WAAW,KAAK;AAAA,QAC7B,MAAM,OAAO,WAAW,MAAM;AAAA,MAClC,CAAC;AAAA,IACL,CAAC;AAED,WAAO;AAAA,MACH;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACJ;AAEO,MAAM,uCAAuC,CAChD,OAAsC;AAAA,EAClC,gBAAgB,OAAO,UAAU,OAAO,SAAS,MAAM,EAAE,MAAM,CAAC;AAAA,EAChE,eAAe,OAAO,SAAS,OAAO,SAAS,SAAS,IAAI;AAChE,MACC;AACD,SAAO,OACH,GACA;AAAA,IACI,aAAa;AAAA,MACT,OAAO;AAAA,MACP,QAAQ;AAAA,IACZ;AAAA,EACJ,MAGC;AACD,UAAM,QAAQ,EAAE,WAAW,MAAM;AACjC,UAAM,CAAC,YAAY,SAAS,IAAI,MAAM,QAAQ,IAAI;AAAA,MAC9C,KAAK,eAAe,KAAK;AAAA,MACzB,KAAK,cAAc;AAAA,QACf;AAAA,QACA,SAAS,EAAE,cAAc,MAAM;AAAA,QAC/B,MAAM,OAAO,WAAW,KAAK;AAAA,QAC7B,MAAM,OAAO,WAAW,MAAM;AAAA,QAC9B,SAAS,EAAE,MAAM,KAAK;AAAA,MAC1B,CAAC;AAAA,IACL,CAAC;AAED,WAAO;AAAA,MACH;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACJ;AAIO,MAAM,yBAAiD;AAAA,EAC1D,eAAe,iCAAiC;AAAA,EAChD,mBAAmB,qCAAqC;AAAA,EACxD,sBAAsB,OAClB,GACA;AAAA,IACI;AAAA,EACJ,MAMC;AACD,WAAO,OAAO,SAAS,SAAS;AAAA,MAC5B,OAAO;AAAA,QACH,cAAc;AAAA,UACV,KAAK,IAAI,KAAK,UAAU,KAAK;AAAA,UAC7B,IAAI,IAAI,KAAK,UAAU,GAAG;AAAA,QAC9B;AAAA,MACJ;AAAA,MACA,SAAS,EAAE,cAAc,MAAM;AAAA,MAC/B,SAAS,EAAE,MAAM,KAAK;AAAA,IAC1B,CAAC;AAAA,EACL;AACJ;","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { reminderFieldResolvers } from "./reminder.field.resolver.js";
|
|
2
|
+
import { reminderMutationResolvers } from "./reminder.mutation.resolver.js";
|
|
3
|
+
import { reminderQueryResolvers } from "./reminder.query.resolver.js";
|
|
4
|
+
const reminderResolvers = {
|
|
5
|
+
Query: reminderQueryResolvers,
|
|
6
|
+
Mutation: reminderMutationResolvers,
|
|
7
|
+
Reminder: reminderFieldResolvers
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
reminderResolvers
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=reminder.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/reminder/graphql/reminder.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport { reminderFieldResolvers } from './reminder.field.resolver.js';\nimport { reminderMutationResolvers } from './reminder.mutation.resolver.js';\nimport { reminderQueryResolvers } from './reminder.query.resolver.js';\n\nexport const reminderResolvers: IResolvers = {\n Query: reminderQueryResolvers,\n Mutation: reminderMutationResolvers,\n Reminder: reminderFieldResolvers,\n};\n"],"mappings":"AACA,SAAS,8BAA8B;AACvC,SAAS,iCAAiC;AAC1C,SAAS,8BAA8B;AAEhC,MAAM,oBAAgC;AAAA,EACzC,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AACd;","names":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { gql } from "../../../modules/graphql.js";
|
|
2
|
+
const reminderType = gql`
|
|
3
|
+
enum ReminderPriority {
|
|
4
|
+
low
|
|
5
|
+
medium
|
|
6
|
+
high
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
type Reminder {
|
|
10
|
+
id: ID!
|
|
11
|
+
noteId: Int!
|
|
12
|
+
reminderDate: String!
|
|
13
|
+
completed: Boolean!
|
|
14
|
+
priority: ReminderPriority
|
|
15
|
+
content: String
|
|
16
|
+
createdAt: String!
|
|
17
|
+
updatedAt: String!
|
|
18
|
+
note: Note
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
type Reminders {
|
|
22
|
+
totalCount: Int!
|
|
23
|
+
reminders: [Reminder!]!
|
|
24
|
+
}
|
|
25
|
+
`;
|
|
26
|
+
const reminderQuery = gql`
|
|
27
|
+
extend type Query {
|
|
28
|
+
noteReminders(noteId: ID!, pagination: PaginationInput): Reminders!
|
|
29
|
+
upcomingReminders(pagination: PaginationInput): Reminders!
|
|
30
|
+
remindersInDateRange(dateRange: DateRangeInput): [Reminder!]!
|
|
31
|
+
}
|
|
32
|
+
`;
|
|
33
|
+
const reminderMutation = gql`
|
|
34
|
+
extend type Mutation {
|
|
35
|
+
createReminder(noteId: ID!, reminderDate: String!, priority: ReminderPriority, content: String): Reminder!
|
|
36
|
+
updateReminder(id: ID!, reminderDate: String, completed: Boolean, priority: ReminderPriority, content: String): Reminder!
|
|
37
|
+
deleteReminder(id: ID!): Boolean!
|
|
38
|
+
}
|
|
39
|
+
`;
|
|
40
|
+
const reminderTypeDefs = `
|
|
41
|
+
${reminderType}
|
|
42
|
+
${reminderQuery}
|
|
43
|
+
${reminderMutation}
|
|
44
|
+
`;
|
|
45
|
+
export {
|
|
46
|
+
reminderMutation,
|
|
47
|
+
reminderQuery,
|
|
48
|
+
reminderType,
|
|
49
|
+
reminderTypeDefs
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=reminder.type-defs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/reminder/graphql/reminder.type-defs.ts"],"sourcesContent":["import { gql } from '~/modules/graphql.js';\n\nexport const reminderType = gql`\n enum ReminderPriority {\n low\n medium\n high\n }\n\n type Reminder {\n id: ID!\n noteId: Int!\n reminderDate: String!\n completed: Boolean!\n priority: ReminderPriority\n content: String\n createdAt: String!\n updatedAt: String!\n note: Note\n }\n\n type Reminders {\n totalCount: Int!\n reminders: [Reminder!]!\n }\n`;\n\nexport const reminderQuery = gql`\n extend type Query {\n noteReminders(noteId: ID!, pagination: PaginationInput): Reminders!\n upcomingReminders(pagination: PaginationInput): Reminders!\n remindersInDateRange(dateRange: DateRangeInput): [Reminder!]!\n }\n`;\n\nexport const reminderMutation = gql`\n extend type Mutation {\n createReminder(noteId: ID!, reminderDate: String!, priority: ReminderPriority, content: String): Reminder!\n updateReminder(id: ID!, reminderDate: String, completed: Boolean, priority: ReminderPriority, content: String): Reminder!\n deleteReminder(id: ID!): Boolean!\n }\n`;\n\nexport const reminderTypeDefs = `\n ${reminderType}\n ${reminderQuery}\n ${reminderMutation}\n`;\n"],"mappings":"AAAA,SAAS,WAAW;AAEb,MAAM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBrB,MAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQtB,MAAM,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQzB,MAAM,mBAAmB;AAAA,MAC1B,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,gBAAgB;AAAA;","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { tagFieldResolvers } from "./tag.field.resolver.js";
|
|
2
|
+
import { createTagMutationResolver, tagMutationResolvers } from "./tag.mutation.resolver.js";
|
|
3
|
+
import { tagQueryResolvers } from "./tag.query.resolver.js";
|
|
4
|
+
import { tagResolvers } from "./tag.resolver.js";
|
|
5
|
+
import { tagTypeDefs } from "./tag.type-defs.js";
|
|
6
|
+
export {
|
|
7
|
+
createTagMutationResolver,
|
|
8
|
+
tagFieldResolvers,
|
|
9
|
+
tagMutationResolvers,
|
|
10
|
+
tagQueryResolvers,
|
|
11
|
+
tagResolvers,
|
|
12
|
+
tagTypeDefs
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/tag/graphql/index.ts"],"sourcesContent":["export { tagFieldResolvers } from './tag.field.resolver.js';\nexport { createTagMutationResolver, tagMutationResolvers } from './tag.mutation.resolver.js';\nexport { tagQueryResolvers } from './tag.query.resolver.js';\nexport { tagResolvers } from './tag.resolver.js';\nexport { tagTypeDefs } from './tag.type-defs.js';\n"],"mappings":"AAAA,SAAS,yBAAyB;AAClC,SAAS,2BAA2B,4BAA4B;AAChE,SAAS,yBAAyB;AAClC,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import models from "../../../models.js";
|
|
2
|
+
const tagFieldResolvers = {
|
|
3
|
+
referenceCount: async (tag) => {
|
|
4
|
+
return models.note.count({ where: { tags: { some: { id: Number(tag.id) } } } });
|
|
5
|
+
}
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
tagFieldResolvers
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=tag.field.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/tag/graphql/tag.field.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport type { Tag } from '~/models.js';\nimport models from '~/models.js';\n\ntype TagReferenceCountSource =\n | Pick<Tag, 'id'>\n | {\n id: string;\n };\n\ntype TagFieldResolvers = NonNullable<IResolvers['Tag']>;\n\nexport const tagFieldResolvers: TagFieldResolvers = {\n referenceCount: async (tag: TagReferenceCountSource) => {\n return models.note.count({ where: { tags: { some: { id: Number(tag.id) } } } });\n },\n};\n"],"mappings":"AAEA,OAAO,YAAY;AAUZ,MAAM,oBAAuC;AAAA,EAChD,gBAAgB,OAAO,QAAiC;AACpD,WAAO,OAAO,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,OAAO,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAAA,EAClF;AACJ;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ensureTagByName } from "../../../features/tag/services/organization.js";
|
|
2
|
+
const createTagMutationResolver = (ensureTag = ensureTagByName) => {
|
|
3
|
+
return async (_, { name }) => {
|
|
4
|
+
const result = await ensureTag(name);
|
|
5
|
+
return result.tag;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
const tagMutationResolvers = {
|
|
9
|
+
createTag: createTagMutationResolver()
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
createTagMutationResolver,
|
|
13
|
+
tagMutationResolvers
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=tag.mutation.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/tag/graphql/tag.mutation.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport { ensureTagByName } from '~/features/tag/services/organization.js';\n\nexport const createTagMutationResolver = (ensureTag = ensureTagByName) => {\n return async (_: unknown, { name }: { name: string }) => {\n const result = await ensureTag(name);\n\n return result.tag;\n };\n};\n\ntype TagMutationResolvers = NonNullable<IResolvers['Mutation']>;\n\nexport const tagMutationResolvers: TagMutationResolvers = {\n createTag: createTagMutationResolver(),\n};\n"],"mappings":"AACA,SAAS,uBAAuB;AAEzB,MAAM,4BAA4B,CAAC,YAAY,oBAAoB;AACtE,SAAO,OAAO,GAAY,EAAE,KAAK,MAAwB;AACrD,UAAM,SAAS,MAAM,UAAU,IAAI;AAEnC,WAAO,OAAO;AAAA,EAClB;AACJ;AAIO,MAAM,uBAA6C;AAAA,EACtD,WAAW,0BAA0B;AACzC;","names":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import models from "../../../models.js";
|
|
2
|
+
const tagQueryResolvers = {
|
|
3
|
+
allTags: async (_, {
|
|
4
|
+
searchFilter,
|
|
5
|
+
pagination
|
|
6
|
+
}) => {
|
|
7
|
+
const where = {
|
|
8
|
+
name: { contains: searchFilter.query },
|
|
9
|
+
NOT: { notes: { none: {} } }
|
|
10
|
+
};
|
|
11
|
+
const tags = models.tag.findMany({
|
|
12
|
+
skip: pagination.offset,
|
|
13
|
+
take: pagination.limit,
|
|
14
|
+
where,
|
|
15
|
+
orderBy: { notes: { _count: "desc" } }
|
|
16
|
+
});
|
|
17
|
+
return {
|
|
18
|
+
totalCount: await models.tag.count({ where }),
|
|
19
|
+
tags: await tags
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
export {
|
|
24
|
+
tagQueryResolvers
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=tag.query.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/tag/graphql/tag.query.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport type { Prisma } from '~/models.js';\nimport models from '~/models.js';\nimport type { Pagination, SearchFilter } from '~/types/index.js';\n\ntype TagQueryResolvers = NonNullable<IResolvers['Query']>;\n\nexport const tagQueryResolvers: TagQueryResolvers = {\n allTags: async (\n _,\n {\n searchFilter,\n pagination,\n }: {\n searchFilter: SearchFilter;\n pagination: Pagination;\n },\n ) => {\n const where: Prisma.TagWhereInput = {\n name: { contains: searchFilter.query },\n NOT: { notes: { none: {} } },\n };\n const tags = models.tag.findMany({\n skip: pagination.offset,\n take: pagination.limit,\n where,\n orderBy: { notes: { _count: 'desc' } },\n });\n\n return {\n totalCount: await models.tag.count({ where }),\n tags: await tags,\n };\n },\n};\n"],"mappings":"AAEA,OAAO,YAAY;AAKZ,MAAM,oBAAuC;AAAA,EAChD,SAAS,OACL,GACA;AAAA,IACI;AAAA,IACA;AAAA,EACJ,MAIC;AACD,UAAM,QAA8B;AAAA,MAChC,MAAM,EAAE,UAAU,aAAa,MAAM;AAAA,MACrC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE;AAAA,IAC/B;AACA,UAAM,OAAO,OAAO,IAAI,SAAS;AAAA,MAC7B,MAAM,WAAW;AAAA,MACjB,MAAM,WAAW;AAAA,MACjB;AAAA,MACA,SAAS,EAAE,OAAO,EAAE,QAAQ,OAAO,EAAE;AAAA,IACzC,CAAC;AAED,WAAO;AAAA,MACH,YAAY,MAAM,OAAO,IAAI,MAAM,EAAE,MAAM,CAAC;AAAA,MAC5C,MAAM,MAAM;AAAA,IAChB;AAAA,EACJ;AACJ;","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { tagFieldResolvers } from "./tag.field.resolver.js";
|
|
2
|
+
import { tagMutationResolvers } from "./tag.mutation.resolver.js";
|
|
3
|
+
import { tagQueryResolvers } from "./tag.query.resolver.js";
|
|
4
|
+
const tagResolvers = {
|
|
5
|
+
Query: tagQueryResolvers,
|
|
6
|
+
Mutation: tagMutationResolvers,
|
|
7
|
+
Tag: tagFieldResolvers
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
tagResolvers
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=tag.resolver.js.map
|