nuxt-auto-crud 1.1.0 → 1.2.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/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nuxt-auto-crud",
3
3
  "configKey": "autoCrud",
4
- "version": "1.1.0",
4
+ "version": "1.2.0",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "3.6.1"
package/dist/module.mjs CHANGED
@@ -19,27 +19,27 @@ const module$1 = defineNuxtModule({
19
19
  addServerHandler({
20
20
  route: "/api/:model",
21
21
  method: "get",
22
- handler: resolver.resolve(apiDir, "[model]/index.get.ts")
22
+ handler: resolver.resolve(apiDir, "[model]/index.get")
23
23
  });
24
24
  addServerHandler({
25
25
  route: "/api/:model",
26
26
  method: "post",
27
- handler: resolver.resolve(apiDir, "[model]/index.post.ts")
27
+ handler: resolver.resolve(apiDir, "[model]/index.post")
28
28
  });
29
29
  addServerHandler({
30
30
  route: "/api/:model/:id",
31
31
  method: "get",
32
- handler: resolver.resolve(apiDir, "[model]/[id].get.ts")
32
+ handler: resolver.resolve(apiDir, "[model]/[id].get")
33
33
  });
34
34
  addServerHandler({
35
35
  route: "/api/:model/:id",
36
36
  method: "patch",
37
- handler: resolver.resolve(apiDir, "[model]/[id].patch.ts")
37
+ handler: resolver.resolve(apiDir, "[model]/[id].patch")
38
38
  });
39
39
  addServerHandler({
40
40
  route: "/api/:model/:id",
41
41
  method: "delete",
42
- handler: resolver.resolve(apiDir, "[model]/[id].delete.ts")
42
+ handler: resolver.resolve(apiDir, "[model]/[id].delete")
43
43
  });
44
44
  addServerImportsDir(resolver.resolve("./runtime/server/utils"));
45
45
  console.log("\u{1F680} Auto CRUD module loaded!");
@@ -1,2 +1,4 @@
1
- declare const _default: any;
1
+ declare const _default: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<{
2
+ [x: string]: any;
3
+ }>>;
2
4
  export default _default;
@@ -1,3 +1,6 @@
1
+ import { eventHandler, getRouterParams, createError } from "h3";
2
+ import { eq } from "drizzle-orm";
3
+ import { getTableForModel, getModelSingularName } from "../../utils/modelMapper.js";
1
4
  export default eventHandler(async (event) => {
2
5
  const { model, id } = getRouterParams(event);
3
6
  const table = getTableForModel(model);
@@ -1,2 +1,4 @@
1
- declare const _default: any;
1
+ declare const _default: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<{
2
+ [x: string]: any;
3
+ }>>;
2
4
  export default _default;
@@ -1,3 +1,6 @@
1
+ import { eventHandler, getRouterParams, createError } from "h3";
2
+ import { eq } from "drizzle-orm";
3
+ import { getTableForModel, getModelSingularName } from "../../utils/modelMapper.js";
1
4
  export default eventHandler(async (event) => {
2
5
  const { model, id } = getRouterParams(event);
3
6
  const table = getTableForModel(model);
@@ -1,2 +1,4 @@
1
- declare const _default: any;
1
+ declare const _default: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<{
2
+ [x: string]: any;
3
+ }>>;
2
4
  export default _default;
@@ -1,3 +1,6 @@
1
+ import { eventHandler, getRouterParams, readBody } from "h3";
2
+ import { eq } from "drizzle-orm";
3
+ import { getTableForModel, filterUpdatableFields } from "../../utils/modelMapper.js";
1
4
  export default eventHandler(async (event) => {
2
5
  const { model, id } = getRouterParams(event);
3
6
  const table = getTableForModel(model);
@@ -1,2 +1,4 @@
1
- declare const _default: any;
1
+ declare const _default: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<{
2
+ [x: string]: any;
3
+ }[]>>;
2
4
  export default _default;
@@ -1,3 +1,5 @@
1
+ import { eventHandler, getRouterParams } from "h3";
2
+ import { getTableForModel } from "../../utils/modelMapper.js";
1
3
  export default eventHandler(async (event) => {
2
4
  const { model } = getRouterParams(event);
3
5
  const table = getTableForModel(model);
@@ -1,2 +1,4 @@
1
- declare const _default: any;
1
+ declare const _default: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<{
2
+ [x: string]: any;
3
+ }>>;
2
4
  export default _default;
@@ -1,3 +1,5 @@
1
+ import { eventHandler, getRouterParams, readBody } from "h3";
2
+ import { getTableForModel } from "../../utils/modelMapper.js";
1
3
  export default eventHandler(async (event) => {
2
4
  const { model } = getRouterParams(event);
3
5
  const table = getTableForModel(model);
@@ -0,0 +1,5 @@
1
+ import type { BaseSQLiteDatabase, SQLiteTable, SQLiteColumn } from 'drizzle-orm/sqlite-core';
2
+ export type ModuleDatabase = BaseSQLiteDatabase<'async' | 'sync', unknown, Record<string, unknown>>;
3
+ export type TableWithId = SQLiteTable & {
4
+ id: SQLiteColumn;
5
+ };
File without changes
@@ -1,3 +1,4 @@
1
+ import type { SQLiteTable } from 'drizzle-orm/sqlite-core';
1
2
  /**
2
3
  * Custom updatable fields configuration (optional)
3
4
  * Only define here if you want to override the auto-detection
@@ -19,7 +20,7 @@ export declare const modelTableMap: Record<string, unknown>;
19
20
  * @returns The corresponding database table
20
21
  * @throws Error if model is not found
21
22
  */
22
- export declare function getTableForModel(modelName: string): {};
23
+ export declare function getTableForModel(modelName: string): SQLiteTable;
23
24
  /**
24
25
  * Gets the updatable fields for a model
25
26
  * @param modelName - The name of the model
@@ -44,6 +45,7 @@ export declare function getModelSingularName(modelName: string): string;
44
45
  * Gets the plural name for a model
45
46
  * @param modelName - The model name (singular or plural)
46
47
  * @returns The plural name
48
+ * @return The plural name
47
49
  */
48
50
  export declare function getModelPluralName(modelName: string): string;
49
51
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nuxt-auto-crud",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Exposes RESTful CRUD APIs for your Nuxt app based solely on your database migrations.",
5
5
  "author": "Cliford Pereira",
6
6
  "license": "MIT",
@@ -1,7 +1,16 @@
1
1
  // server/api/[model]/[id].delete.ts
2
+ import { eventHandler, getRouterParams, createError } from 'h3'
3
+ import { eq } from 'drizzle-orm'
4
+ import { getTableForModel, getModelSingularName } from '../../utils/modelMapper'
5
+
6
+ import type { ModuleDatabase, TableWithId } from '../../types'
7
+
8
+ // TODO: Better type for useDrizzle
9
+ declare function useDrizzle(): ModuleDatabase
10
+
2
11
  export default eventHandler(async (event) => {
3
12
  const { model, id } = getRouterParams(event)
4
- const table = getTableForModel(model)
13
+ const table = getTableForModel(model) as TableWithId
5
14
  const singularName = getModelSingularName(model)
6
15
 
7
16
  const deletedRecord = await useDrizzle()
@@ -1,7 +1,16 @@
1
1
  // server/api/[model]/[id].get.ts
2
+ import { eventHandler, getRouterParams, createError } from 'h3'
3
+ import { eq } from 'drizzle-orm'
4
+ import { getTableForModel, getModelSingularName } from '../../utils/modelMapper'
5
+
6
+ import type { ModuleDatabase, TableWithId } from '../../types'
7
+
8
+ // TODO: Better type for useDrizzle
9
+ declare function useDrizzle(): ModuleDatabase
10
+
2
11
  export default eventHandler(async (event) => {
3
12
  const { model, id } = getRouterParams(event)
4
- const table = getTableForModel(model)
13
+ const table = getTableForModel(model) as TableWithId
5
14
  const singularName = getModelSingularName(model)
6
15
 
7
16
  const record = await useDrizzle()
@@ -1,7 +1,16 @@
1
1
  // server/api/[model]/[id].patch.ts
2
+ import { eventHandler, getRouterParams, readBody } from 'h3'
3
+ import { eq } from 'drizzle-orm'
4
+ import { getTableForModel, filterUpdatableFields } from '../../utils/modelMapper'
5
+
6
+ import type { ModuleDatabase, TableWithId } from '../../types'
7
+
8
+ // TODO: Better type for useDrizzle
9
+ declare function useDrizzle(): ModuleDatabase
10
+
2
11
  export default eventHandler(async (event) => {
3
12
  const { model, id } = getRouterParams(event)
4
- const table = getTableForModel(model)
13
+ const table = getTableForModel(model) as TableWithId
5
14
  const body = await readBody(event)
6
15
 
7
16
  // Filter to only allow updatable fields for this model
@@ -1,4 +1,12 @@
1
1
  // server/api/[model]/index.get.ts
2
+ import { eventHandler, getRouterParams } from 'h3'
3
+ import { getTableForModel } from '../../utils/modelMapper'
4
+
5
+ import type { ModuleDatabase } from '../../types'
6
+
7
+ // TODO: Better type for useDrizzle
8
+ declare function useDrizzle(): ModuleDatabase
9
+
2
10
  export default eventHandler(async (event) => {
3
11
  const { model } = getRouterParams(event)
4
12
  const table = getTableForModel(model)
@@ -1,4 +1,12 @@
1
1
  // server/api/[model]/index.post.ts
2
+ import { eventHandler, getRouterParams, readBody } from 'h3'
3
+ import { getTableForModel } from '../../utils/modelMapper'
4
+
5
+ import type { ModuleDatabase } from '../../types'
6
+
7
+ // TODO: Better type for useDrizzle
8
+ declare function useDrizzle(): ModuleDatabase
9
+
2
10
  export default eventHandler(async (event) => {
3
11
  const { model } = getRouterParams(event)
4
12
  const table = getTableForModel(model)
@@ -0,0 +1,5 @@
1
+ import type { BaseSQLiteDatabase, SQLiteTable, SQLiteColumn } from 'drizzle-orm/sqlite-core'
2
+
3
+ export type ModuleDatabase = BaseSQLiteDatabase<'async' | 'sync', unknown, Record<string, unknown>>
4
+
5
+ export type TableWithId = SQLiteTable & { id: SQLiteColumn }
@@ -4,6 +4,7 @@ import * as schema from '#site/schema'
4
4
  import pluralize from 'pluralize'
5
5
  import { pascalCase } from 'scule'
6
6
  import { getTableColumns as getDrizzleTableColumns } from 'drizzle-orm'
7
+ import type { SQLiteTable } from 'drizzle-orm/sqlite-core'
7
8
  import { createError } from 'h3'
8
9
 
9
10
  /**
@@ -63,7 +64,7 @@ export const modelTableMap = buildModelTableMap()
63
64
  * @returns The corresponding database table
64
65
  * @throws Error if model is not found
65
66
  */
66
- export function getTableForModel(modelName: string) {
67
+ export function getTableForModel(modelName: string): SQLiteTable {
67
68
  const table = modelTableMap[modelName]
68
69
 
69
70
  if (!table) {
@@ -74,7 +75,7 @@ export function getTableForModel(modelName: string) {
74
75
  })
75
76
  }
76
77
 
77
- return table
78
+ return table as SQLiteTable
78
79
  }
79
80
 
80
81
  /**
@@ -149,6 +150,7 @@ export function getModelSingularName(modelName: string): string {
149
150
  * Gets the plural name for a model
150
151
  * @param modelName - The model name (singular or plural)
151
152
  * @returns The plural name
153
+ * @return The plural name
152
154
  */
153
155
  export function getModelPluralName(modelName: string): string {
154
156
  return pluralize.plural(modelName)