not-node 6.3.42 → 6.3.43

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "not-node",
3
- "version": "6.3.42",
3
+ "version": "6.3.43",
4
4
  "description": "node complimentary part for client side notFramework.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1 +1,30 @@
1
- export default async () => {};
1
+ import { resolve } from "node:path";
2
+ const TEMPLATES_DIR = "./module.server/layers";
3
+
4
+ async function renderEntityDataField(createFileContent, SRC, DEST, data) {
5
+ await createFileContent(SRC, DEST, data);
6
+ }
7
+
8
+ export default async (
9
+ module_layer_dir,
10
+ data,
11
+ config,
12
+ createFileContent,
13
+ PATH_TMPL
14
+ ) => {
15
+ const TMPL_FILE_PATH_DATA = resolve(
16
+ PATH_TMPL,
17
+ TEMPLATES_DIR,
18
+ `fields.data.ejs`
19
+ );
20
+ const DEST_FILE_PATH_DATA = resolve(
21
+ module_layer_dir,
22
+ `_${data.modelName}_data.js`
23
+ );
24
+ await renderEntityDataField(
25
+ createFileContent,
26
+ TMPL_FILE_PATH_DATA,
27
+ DEST_FILE_PATH_DATA,
28
+ { ...config, ...data }
29
+ );
30
+ };
@@ -1,10 +1,13 @@
1
1
  import { resolve } from "node:path";
2
+ import { tryFileAsync } from "../../common.js";
2
3
  const TEMPLATES_DIR = "./module.server/layers/forms";
3
4
 
4
5
  async function renderEntityActionForm(createFileContent, SRC, DEST, data) {
5
6
  await createFileContent(SRC, DEST, data);
6
7
  }
7
8
 
9
+ const COMMON_FORMS = ["listAll", "listAndCount", "delete", "get", "getRaw"];
10
+
8
11
  export default async (
9
12
  module_layer_dir,
10
13
  data,
@@ -13,21 +16,42 @@ export default async (
13
16
  PATH_TMPL
14
17
  ) => {
15
18
  for (let actionName in data.actions) {
16
- const TMPL_FILE_PATH = resolve(
17
- PATH_TMPL,
18
- TEMPLATES_DIR,
19
- `${actionName}.ejs`
20
- );
21
- const DEST_FILE_PATH = resolve(
22
- module_layer_dir,
23
- `${data.modelName}.${actionName}.js`
24
- );
25
- await renderEntityActionForm(
26
- createFileContent,
27
- TMPL_FILE_PATH,
28
- DEST_FILE_PATH,
29
- { ...config, ...data }
30
- );
19
+ //if template is not depends on ModelName
20
+ if (COMMON_FORMS.includes(actionName)) {
21
+ const DEST_FILE_PATH = resolve(
22
+ module_layer_dir,
23
+ `${actionName}.js`
24
+ );
25
+ if (!(await tryFileAsync(DEST_FILE_PATH))) {
26
+ const TMPL_FILE_PATH = resolve(
27
+ PATH_TMPL,
28
+ TEMPLATES_DIR,
29
+ `${actionName}.ejs`
30
+ );
31
+ await renderEntityActionForm(
32
+ createFileContent,
33
+ TMPL_FILE_PATH,
34
+ DEST_FILE_PATH,
35
+ { ...config, ...data }
36
+ );
37
+ }
38
+ } else {
39
+ const TMPL_FILE_PATH = resolve(
40
+ PATH_TMPL,
41
+ TEMPLATES_DIR,
42
+ `${actionName}.ejs`
43
+ );
44
+ const DEST_FILE_PATH = resolve(
45
+ module_layer_dir,
46
+ `${data.modelName}.${actionName}.js`
47
+ );
48
+ await renderEntityActionForm(
49
+ createFileContent,
50
+ TMPL_FILE_PATH,
51
+ DEST_FILE_PATH,
52
+ { ...config, ...data }
53
+ );
54
+ }
31
55
  }
32
56
  const TMPL_FILE_PATH_DATA = resolve(PATH_TMPL, TEMPLATES_DIR, `_data.ejs`);
33
57
  const DEST_FILE_PATH_DATA = resolve(
package/src/form/form.js CHANGED
@@ -103,12 +103,32 @@ class Form {
103
103
  this.#createRateLimiter(rate);
104
104
  }
105
105
 
106
+ /**
107
+ * Creates model name string used in logging
108
+ * @param {string} MODULE_NAME
109
+ * @param {string|undefined} MODEL_NAME
110
+ * @param {string} actionName
111
+ * @returns {string}
112
+ */
106
113
  static createName(MODULE_NAME, MODEL_NAME, actionName) {
107
- return `${MODULE_NAME}:${MODEL_NAME}:${firstLetterToUpper(
108
- actionName
109
- )}Form`;
114
+ if (MODEL_NAME) {
115
+ return `${MODULE_NAME}:${MODEL_NAME}:${firstLetterToUpper(
116
+ actionName
117
+ )}Form`;
118
+ } else {
119
+ return `${MODULE_NAME}:Common:${firstLetterToUpper(
120
+ actionName
121
+ )}Form`;
122
+ }
110
123
  }
111
124
 
125
+ /**
126
+ * Create path to form in notDomain resources manager. Could be used to find form via notApplication.getForm(formPath)
127
+ * @param {string} MODULE_NAME
128
+ * @param {string|undefined} MODEL_NAME
129
+ * @param {string} actionName
130
+ * @returns {string}
131
+ */
112
132
  static createPath(MODULE_NAME, MODEL_NAME, actionName) {
113
133
  if (MODEL_NAME) {
114
134
  return `${MODULE_NAME}//${firstLetterToLower(
@@ -141,7 +161,7 @@ class Form {
141
161
  *
142
162
  *
143
163
  * @param {import('../types').notNodeExpressRequest} req
144
- * @return {*}
164
+ * @return {string|undefined}
145
165
  * @memberof Form
146
166
  */
147
167
  getModelName(req) {
@@ -83,9 +83,8 @@ class nc<%- ModelName %>Common extends notCRUD {
83
83
  }
84
84
 
85
85
  createDefault() {
86
- let newRecord = this.make[this.getModelName()]({
87
- _id: null,
88
- <% for (let fieldName of fields){ %><%- fieldName %>: null,
86
+ let newRecord = this.getModel({
87
+ <% for (let fieldName of fields){ %><%- fieldName %>: undefined,
89
88
  <% } %>
90
89
  });
91
90
  return newRecord;
@@ -0,0 +1,24 @@
1
+ const notNode = require("not-node");
2
+ const { firstLetterToLower } = notNode.Common;
3
+ const Schema = require("mongoose").Schema;
4
+ const { MODULE_NAME } = require("../const");
5
+ const MODEL_NAME = "<%- ModelName %>";
6
+
7
+ module.exports = {
8
+ model: {
9
+ type: Schema.Types.Mixed,
10
+ required: true,
11
+ validate: [
12
+ {
13
+ validator(val) {
14
+ return notNode.Application.getForm(
15
+ `${MODULE_NAME}//_${firstLetterToLower(
16
+ MODEL_NAME
17
+ )}_data`
18
+ ).run(val);
19
+ },
20
+ message: `${MODULE_NAME}:${firstLetterToLower(MODEL_NAME)}`,
21
+ },
22
+ ],
23
+ },
24
+ };
@@ -1,7 +1,8 @@
1
- const { MODULE_NAME } = require("../const");
2
1
  //DB related validation tools
3
2
  const Form = require("not-node").Form;
4
- //
3
+
4
+ const { MODULE_NAME } = require("../const");
5
+ const MODEL_NAME = '<%- ModelName %>';
5
6
  const actionName = 'create';
6
7
  const FORM_NAME = Form.createName(MODULE_NAME, MODEL_NAME, actionName);
7
8
  //form
@@ -1,6 +1,7 @@
1
- const { MODULE_NAME } = require("../const");
2
1
  const Form = require("not-node").Form;
3
2
 
3
+ const { MODULE_NAME } = require("../const");
4
+ const MODEL_NAME = '<%- ModelName %>';
4
5
  const actionName = 'update';
5
6
  const FORM_NAME = Form.createName(MODULE_NAME, MODEL_NAME, actionName);
6
7