core-nails 1.0.4 → 1.0.6

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.
@@ -20,6 +20,7 @@ import { ${modelName}Schema } from "@schema";
20
20
  const ${modelName} = Nails.InitializeModel({
21
21
  collection: "${collectionName}",
22
22
  schema: ${modelName}Schema,
23
+ FirebaseAdmin,
23
24
  });
24
25
 
25
26
  export default ${modelName};
@@ -33,15 +34,8 @@ export default ${modelName};
33
34
  fs.mkdirSync(dbDir, { recursive: true });
34
35
  const schemaFilePath = path.join(dbDir, "schema.ts");
35
36
  const schemaBaseContent = `import FirebaseAdmin from "@lib/FirebaseAdmin";
36
- import { z } from "zod";
37
-
38
- // Helper Function
39
- const FirebaseTimestamp = z.union([
40
- z.instanceof(FirebaseAdmin.firestore.Timestamp),
41
- z.date(),
42
- z.custom((val) => val === FirebaseAdmin.firestore.FieldValue.serverTimestamp(), { message: "Expected serverTimestamp()" }),
43
- ]);
44
- `;
37
+ import Nails from "core-nails";
38
+ import { z } from "zod";`;
45
39
  // Ensure schema file exists
46
40
  if (!fs.existsSync(schemaFilePath)) {
47
41
  fs.writeFileSync(schemaFilePath, schemaBaseContent);
@@ -53,8 +47,8 @@ const FirebaseTimestamp = z.union([
53
47
  const schemaStub = `
54
48
  // ${modelName} Schema
55
49
  export const ${modelName}Schema = z.object({
56
- createdAt: FirebaseTimestamp.optional(),
57
- updatedAt: FirebaseTimestamp.optional(),
50
+ createdAt: Nails.FirebaseTimestampType(FirebaseAdmin).optional(),
51
+ updatedAt: Nails.FirebaseTimestampType(FirebaseAdmin).optional(),
58
52
  });
59
53
  export type ${modelName}Type = z.infer<typeof ${modelName}Schema>;
60
54
  `;
@@ -0,0 +1,3 @@
1
+ import { z } from "zod";
2
+ declare function FirebaseTimestampType(FirebaseAdmin: any): z.ZodUnion<readonly [z.ZodCustom<any, any>, z.ZodDate, z.ZodCustom<unknown, unknown>]>;
3
+ export default FirebaseTimestampType;
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+ function FirebaseTimestampType(FirebaseAdmin) {
3
+ return z.union([
4
+ z.instanceof(FirebaseAdmin.firestore.Timestamp),
5
+ z.date(),
6
+ z.custom((val) => val === FirebaseAdmin.firestore.FieldValue.serverTimestamp(), { message: "Expected serverTimestamp()" }),
7
+ ]);
8
+ }
9
+ export default FirebaseTimestampType;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import InitializeModel from "./helpers/InitializeModel.js";
2
+ import FirebaseTimestampType from "./helpers/FirebaseTimestampType.js";
2
3
  declare const _default: {
3
4
  InitializeModel: typeof InitializeModel;
5
+ FirebaseTimestampType: typeof FirebaseTimestampType;
4
6
  };
5
7
  export default _default;
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  import InitializeModel from "./helpers/InitializeModel.js";
2
- export default { InitializeModel };
2
+ import FirebaseTimestampType from "./helpers/FirebaseTimestampType.js";
3
+ export default { InitializeModel, FirebaseTimestampType };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "core-nails",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "scripts": {
5
5
  "build": "tsc"
6
6
  },
@@ -26,6 +26,7 @@ import { ${modelName}Schema } from "@schema";
26
26
  const ${modelName} = Nails.InitializeModel({
27
27
  collection: "${collectionName}",
28
28
  schema: ${modelName}Schema,
29
+ FirebaseAdmin,
29
30
  });
30
31
 
31
32
  export default ${modelName};
@@ -43,15 +44,8 @@ export default ${modelName};
43
44
  const schemaFilePath = path.join(dbDir, "schema.ts");
44
45
 
45
46
  const schemaBaseContent = `import FirebaseAdmin from "@lib/FirebaseAdmin";
46
- import { z } from "zod";
47
-
48
- // Helper Function
49
- const FirebaseTimestamp = z.union([
50
- z.instanceof(FirebaseAdmin.firestore.Timestamp),
51
- z.date(),
52
- z.custom((val) => val === FirebaseAdmin.firestore.FieldValue.serverTimestamp(), { message: "Expected serverTimestamp()" }),
53
- ]);
54
- `;
47
+ import Nails from "core-nails";
48
+ import { z } from "zod";`;
55
49
 
56
50
  // Ensure schema file exists
57
51
  if (!fs.existsSync(schemaFilePath)) {
@@ -64,8 +58,8 @@ const FirebaseTimestamp = z.union([
64
58
  const schemaStub = `
65
59
  // ${modelName} Schema
66
60
  export const ${modelName}Schema = z.object({
67
- createdAt: FirebaseTimestamp.optional(),
68
- updatedAt: FirebaseTimestamp.optional(),
61
+ createdAt: Nails.FirebaseTimestampType(FirebaseAdmin).optional(),
62
+ updatedAt: Nails.FirebaseTimestampType(FirebaseAdmin).optional(),
69
63
  });
70
64
  export type ${modelName}Type = z.infer<typeof ${modelName}Schema>;
71
65
  `;
@@ -0,0 +1,11 @@
1
+ import { z } from "zod";
2
+
3
+ function FirebaseTimestampType(FirebaseAdmin: any) {
4
+ return z.union([
5
+ z.instanceof(FirebaseAdmin.firestore.Timestamp),
6
+ z.date(),
7
+ z.custom((val) => val === FirebaseAdmin.firestore.FieldValue.serverTimestamp(), { message: "Expected serverTimestamp()" }),
8
+ ]);
9
+ }
10
+
11
+ export default FirebaseTimestampType;
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import InitializeModel from "./helpers/InitializeModel.js";
2
+ import FirebaseTimestampType from "./helpers/FirebaseTimestampType.js";
2
3
 
3
- export default { InitializeModel };
4
+ export default { InitializeModel, FirebaseTimestampType };