create-nkvs-mongoose-hono 1.0.1 → 1.0.3

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.
Files changed (31) hide show
  1. package/README.md +167 -1
  2. package/data/_modules/hono/main.dev.js +1 -1
  3. package/data/_modules/mongoose/crud.js +16 -3
  4. package/data/_modules/packages/validator.js +1 -1
  5. package/data/src/models/Apple.js +7 -1
  6. package/data/src/routers/apples.js +3 -3
  7. package/data/static/compass/assets/config-DiQ0KSRC.js +1 -0
  8. package/data/static/compass/assets/global-middleware-D_iAyTrE.js +1 -0
  9. package/data/static/{assets/home-C8wFEWSp.js → compass/assets/home--bVFpcXR.js} +1 -1
  10. package/data/static/{assets/how-to-import-dev-middleware-Dkjtz_TK.js → compass/assets/how-to-import-dev-middleware-BKbmlczn.js} +1 -1
  11. package/data/static/{assets/how-to-import-dev-router-C_FL_6YO.js → compass/assets/how-to-import-dev-router-Chu2o0sm.js} +1 -1
  12. package/data/static/{assets/how-to-import-middleware-pnpQzveJ.js → compass/assets/how-to-import-middleware-BWMQNy7n.js} +1 -1
  13. package/data/static/{assets/how-to-import-model-7YtG50D5.js → compass/assets/how-to-import-model-BvwXzDVv.js} +1 -1
  14. package/data/static/compass/assets/index-Cu-UoRpJ.css +1 -0
  15. package/data/static/{assets/index-DkMBvkWC.js → compass/assets/index-D6H45Mb0.js} +2 -2
  16. package/data/static/compass/assets/middleware-CiRXg1kd.js +1 -0
  17. package/data/static/{assets/middleware-example-CqXnnA18.js → compass/assets/middleware-example-CjbC5awT.js} +1 -1
  18. package/data/static/compass/assets/models-BNO9a_uW.js +1 -0
  19. package/data/static/compass/assets/requests-CrVIycm3.js +1 -0
  20. package/data/static/compass/assets/routers-BrLbEkdM.js +1 -0
  21. package/data/static/compass/index.html +14 -0
  22. package/data/static/compass/vite.svg +1 -0
  23. package/data/static/doc.json +4 -3
  24. package/package.json +1 -1
  25. package/data/static/assets/config-DuGTvsaZ.js +0 -1
  26. package/data/static/assets/global-middleware-BVVqmyNN.js +0 -1
  27. package/data/static/assets/index-DNQIE9Ws.css +0 -1
  28. package/data/static/assets/middleware-CiGF19ia.js +0 -1
  29. package/data/static/assets/models-2cm6KrTp.js +0 -1
  30. package/data/static/assets/routers-BVTEq3Lk.js +0 -1
  31. package/data/static/index.html +0 -14
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Package
2
2
 
3
- The logic of this package is not yet perfect, but you can try using it.
3
+ The logic of this package is not yet perfect, but you can try to use it.
4
+
5
+ Once you start the project, you can open http://localhost:3000/static/compass (default port is 3000).
4
6
 
5
7
  ## Usage
6
8
 
@@ -13,3 +15,167 @@ The logic of this package is not yet perfect, but you can try using it.
13
15
  - npm run dev
14
16
  - npm run build
15
17
  - npm run start
18
+
19
+ ### Global Middleware
20
+
21
+ ```JavaScript
22
+ import { cors } from 'hono/cors'
23
+ import { prettyJSON } from 'hono/pretty-json'
24
+
25
+ const { globalMiddleware } = store.get('app')
26
+ globalMiddleware.push(cors(), prettyJSON())
27
+ ```
28
+
29
+ ### Middleware
30
+
31
+ ```JavaScript
32
+ const { middleware } = store.get('app')
33
+ middleware['test'] = async function (context, next) {
34
+ console.log(1)
35
+ await next()
36
+ }
37
+ ```
38
+
39
+ ### Global Middleware & Middleware / middleware/_import.js
40
+
41
+ ```JavaScript
42
+ import './global.js'
43
+ import './test.js'
44
+ ```
45
+
46
+ ### Global Middleware - Dev
47
+
48
+ ```JavaScript
49
+ const { globalMiddleware } = store.get('_app')
50
+ globalMiddleware['cors'] = 'cors.'
51
+ globalMiddleware['prettyJSON'] = 'pretty JSON.'
52
+ ```
53
+
54
+ ### Middleware - Dev
55
+
56
+ ```JavaScript
57
+ const { middleware } = store.get('_app')
58
+ middleware['test'] = 'console log 1.'
59
+ ```
60
+
61
+ ### Global Middleware - Dev & Middleware - Dev / middleware/_import.dev.js
62
+
63
+ ```JavaScript
64
+ import './global.dev.js'
65
+ import './test.dev.js'
66
+ ```
67
+
68
+ ### Router
69
+
70
+ ```JavaScript
71
+ store.get('app').routers.push({
72
+ path: '/apples',
73
+ crud: {
74
+ model: 'Apple',
75
+ findAll: { count: true, populate: 'color', limit: 5 }
76
+ findOne: { populate: 'color' }
77
+ },
78
+ events: {
79
+ 'GET /test': { middleware: ['test'], async handler({ json }) { return json({}) } }
80
+ }
81
+ )}
82
+ ```
83
+
84
+ ### Router / findAll
85
+
86
+ Boolean or Object
87
+
88
+ | Name | Type | Example |
89
+ | :--------- | :------------------------------- | :----------------------------------------------------------- |
90
+ | middleware | Array-String | ['test'] |
91
+ | filter | Object | { 'age[gte]': 18 } |
92
+ | fields | String | 'name color' ✅, 'name -createdAt' ❌, '-createdAt -upadtedAt' ❌ |
93
+ | sort | String | '-createdAt' |
94
+ | page | Number | 1 |
95
+ | limit | Number or Boolean | false, 10, If number > 300 then number = 300 |
96
+ | populate | String or Object or Array-Object | 'color', { path: 'color', select: 'name', populate: {} }, [{ path: 'color' }] |
97
+ | count | Boolean | true |
98
+
99
+ ### Router / findOne
100
+
101
+ Boolean or Object
102
+
103
+ | Name | Type | Example |
104
+ | :--------- | :------------------------------- | :----------------------------------------------------------- |
105
+ | middleware | Array-String | ['test'] |
106
+ | filter | Object | { 'age[gte]': 18 } |
107
+ | fields | String | 'name color' ✅, 'name -createdAt' ❌, '-createdAt -upadtedAt' ❌ |
108
+ | populate | String or Object or Array-Object | 'color', { path: 'color', select: 'name', populate: {} }, [{ path: 'color' }] |
109
+
110
+ ### Router / create
111
+
112
+ Boolean or Object
113
+
114
+ | Name | Type | Example |
115
+ | :--------- | :----------- | :------- |
116
+ | middleware | Array-String | ['test'] |
117
+
118
+ ### Router / update
119
+
120
+ Boolean or Object
121
+
122
+ | Name | Type | Example |
123
+ | :----------- | :----------- | :------------ |
124
+ | middleware | Array-String | ['test'] |
125
+ | ignoreFields | Array | ['active'] |
126
+ | options | Object | { new: true } |
127
+
128
+ ### Router / remove
129
+
130
+ Boolean or Object
131
+
132
+ | Name | Type | Example |
133
+ | :--------- | :----------- | :------- |
134
+ | middleware | Array-String | ['test'] |
135
+
136
+ ### Router / _import.js
137
+
138
+ ```JavaScript
139
+ import './apples.js'
140
+ ```
141
+
142
+ ### Router - Dev
143
+
144
+ ```JavaScript
145
+ store.get('_app').routers['/apples'] = {
146
+ description: 'Apple',
147
+ events: {
148
+ 'GET /test': { description: 'Apple test interface.' }
149
+ }
150
+ }
151
+ ```
152
+
153
+ ### Router - Dev / _import.dev.js
154
+
155
+ ```JavaScript
156
+ import './apples.dev.js'
157
+ ```
158
+
159
+ ### Model
160
+
161
+ ```JavaScript
162
+ store.get('app').models.Apple = {
163
+ collection: 'apples',
164
+ documentName: 'apple',
165
+ schema: {
166
+ name: { type: 'String', required: true },
167
+ color: { type: 'ObjectId', ref: 'Color' },
168
+ },
169
+ options: { timestamps: true, methods: {}, statics: {} },
170
+ middleware: [{ hook: 'pre', 'method': 'save', async handler(doc) {} }]
171
+ }
172
+ ```
173
+
174
+ ### Model / _import.js
175
+
176
+ ```JavaScript
177
+ import './Apple.js'
178
+ import './Color.js'
179
+ ```
180
+
181
+ For more details: [Mongoose](https://mongoosejs.com/) and [Hono](https://hono.dev/).
@@ -1,3 +1,3 @@
1
1
  import { PORT } from '../config.js'
2
2
 
3
- console.log(`http://localhost:${PORT}/apples/test`)
3
+ console.log(`http://localhost:${PORT}/static/compass`)
@@ -1,7 +1,7 @@
1
1
  import { excludedQueryKeys, defaultSelectFields } from '../config.js'
2
2
 
3
3
  const { models, mongooseModels } = store.get('app')
4
- const { isArray, isEmptyObject, isString, isNumber } = store.get('validator')
4
+ const { isArray, isEmptyObject, isString, isNumber, isObject } = store.get('validator')
5
5
 
6
6
  export function findAll(modelName, { filter, sort, fields, page, limit, populate, count }) {
7
7
  return async function ({ json, req }) {
@@ -10,7 +10,7 @@ export function findAll(modelName, { filter, sort, fields, page, limit, populate
10
10
  const Model = mongooseModels[modelName]
11
11
  const _filter = filterHandler({ query, filter })
12
12
 
13
- let find = Model.find()
13
+ let find = Model.find(_filter)
14
14
 
15
15
  find = sortHandler({ find, query, sort })
16
16
  find = fieldHandler({ find, query, fields })
@@ -56,7 +56,7 @@ export function create(modelName) {
56
56
  return async function ({ json, req }) {
57
57
  const body = await req.json()
58
58
  const Model = mongooseModels[modelName]
59
- const instance = new Model(bdoy)
59
+ const instance = new Model(body)
60
60
 
61
61
  await instance.save()
62
62
 
@@ -93,6 +93,8 @@ export function remove(modelName) {
93
93
  }
94
94
  }
95
95
 
96
+ const operations = ['$gte', '$gt', '$lte', '$lt']
97
+
96
98
  function filterHandler({ query, filter }) {
97
99
  filter = { ...query, ...filter }
98
100
 
@@ -100,6 +102,17 @@ function filterHandler({ query, filter }) {
100
102
 
101
103
  filter = JSON.parse(JSON.stringify(filter).replace(/\b(gte|gt|lte|lt)\b/g, match => `$${match}`))
102
104
 
105
+ for (let i = 0; i < operations.length; i++) {
106
+ const operation = operations[i]
107
+ if (filter['_id[' + operation + ']']) {
108
+ if (!isObject(filter['_id'])) {
109
+ filter['_id'] = {}
110
+ }
111
+ filter['_id'][operation] = filter['_id[' + operation + ']']
112
+ delete filter['_id[' + operation + ']']
113
+ }
114
+ }
115
+
103
116
  return filter
104
117
  }
105
118
 
@@ -36,7 +36,7 @@ export function isEmptyObject(value) {
36
36
  }
37
37
 
38
38
  for (const key in value) {
39
- if (object.hasOwnProperty(key)) {
39
+ if (value.hasOwnProperty(key)) {
40
40
  return false
41
41
  }
42
42
  }
@@ -14,5 +14,11 @@ store.get('app').models.Apple = {
14
14
  options: {
15
15
  timestamps: true
16
16
  },
17
- middleware: [{ hook: 'pre', 'method': 'save', async handler(next) { await next() } }]
17
+ middleware: [
18
+ {
19
+ hook: 'pre',
20
+ method: 'save',
21
+ async handler(doc) {}
22
+ }
23
+ ]
18
24
  }
@@ -4,12 +4,12 @@ store.get('app').routers.push({
4
4
  model: 'Apple',
5
5
  findAll: {
6
6
  count: true,
7
- populate: 'color',
8
- limit: 5
7
+ populate: 'color'
9
8
  },
10
9
  findOne: {
11
10
  populate: 'color'
12
- }
11
+ },
12
+ create: true
13
13
  },
14
14
  events: {
15
15
  'GET /test': {
@@ -0,0 +1 @@
1
+ import{g as f,c as r,a as t,u as s,w as d,v as i,F as m,r as v,o as a,t as u}from"./index-D6H45Mb0.js";const C={class:"flex flex-col gap-4"},R={class:"border border-slate-200 rounded-lg overflow-hidden"},U={class:"flex justify-between"},D={class:"w-full"},L={class:"border-t border-slate-200"},_={class:"border-l border-slate-200 flex items-center focus-within:bg-slate-50 transition"},k={class:"border-t border-slate-200"},E={class:"border-l border-slate-200 flex items-center focus-within:bg-slate-50 transition"},B={class:"border-t border-slate-200"},z={class:"border-l border-slate-200 flex items-center focus-within:bg-slate-50 transition"},S={class:"border-t border-slate-200"},H={class:"border-l border-slate-200 flex items-center transition p-4"},V={class:"border-t border-slate-200"},I={class:"border-l border-slate-200 flex items-center focus-within:bg-slate-50 transition"},F={class:"border border-slate-200 rounded-lg overflow-hidden"},A={class:"w-full"},O={class:"px-4 py-3 w-64"},j={class:"border-l border-slate-200 px-4 py-3"},T={__name:"config",setup(M){const e=f("front-end"),c=f("back-end");function g(l){localStorage.setItem("configURL",l.target.value),alert("Change the DOC URL")}function p(l){localStorage.setItem("configBaseURL",l.target.value),alert("Change the baseURL")}function x(l){localStorage.setItem("configAuthorization",l.target.value),alert("Change the authorization")}function w(l){localStorage.setItem("configBodyRows",l.target.value),alert("Change the bodyRows")}function h(){e.config.showDoc=!0,alert("show doc.")}function y(){e.config.showDoc=!1,alert("hide doc.")}return(l,o)=>(a(),r("div",C,[t("div",R,[t("div",U,[o[5]||(o[5]=t("div",{class:"px-4 py-3 font-bold bg-slate-100 flex-1"},"FrontEnd Config",-1)),t("button",{class:"px-4 py-3 cursor-pointer border-l border-slate-200 hover:bg-slate-50 transition",onClick:o[0]||(o[0]=(...n)=>s(e).methods.refreshData&&s(e).methods.refreshData(...n))},"Refresh Data")]),t("table",D,[t("tbody",null,[t("tr",L,[o[7]||(o[7]=t("td",{class:"px-4 py-3 w-64"},"DOC URL",-1)),t("td",_,[d(t("input",{type:"text","onUpdate:modelValue":o[1]||(o[1]=n=>s(e).config.URL=n),class:"w-full outline-none px-4 py-3",onChange:g},null,544),[[i,s(e).config.URL]]),o[6]||(o[6]=t("div",{class:"text-xs font-bold mr-4"},"Editable",-1))])]),t("tr",k,[o[9]||(o[9]=t("td",{class:"px-4 py-3 w-64"},"baseURL",-1)),t("td",E,[d(t("input",{type:"text","onUpdate:modelValue":o[2]||(o[2]=n=>s(e).config.baseURL=n),class:"w-full outline-none px-4 py-3",onChange:p},null,544),[[i,s(e).config.baseURL]]),o[8]||(o[8]=t("div",{class:"text-xs font-bold mr-4"},"Editable",-1))])]),t("tr",B,[o[11]||(o[11]=t("td",{class:"px-4 py-3 w-64"},"authorization",-1)),t("td",z,[d(t("input",{type:"text","onUpdate:modelValue":o[3]||(o[3]=n=>s(e).config.authorization=n),class:"w-full outline-none px-4 py-3",onChange:x},null,544),[[i,s(e).config.authorization]]),o[10]||(o[10]=t("div",{class:"text-xs font-bold mr-4"},"Editable",-1))])]),t("tr",S,[o[12]||(o[12]=t("td",{class:"px-4 py-3 w-64"},"showDoc",-1)),t("td",H,[s(e).config.showDoc?(a(),r("button",{key:1,class:"px-4 py-3 border border-slate-200 rounded-lg cursor-pointer hover:bg-slate-50",onClick:y},"Hide")):(a(),r("button",{key:0,class:"px-4 py-3 border border-slate-200 rounded-lg cursor-pointer hover:bg-slate-50",onClick:h},"Show"))])]),t("tr",V,[o[14]||(o[14]=t("td",{class:"px-4 py-3 w-64"},"bodyRows",-1)),t("td",I,[d(t("input",{type:"text","onUpdate:modelValue":o[4]||(o[4]=n=>s(e).config.bodyRows=n),class:"w-full outline-none px-4 py-3",onChange:w},null,544),[[i,s(e).config.bodyRows]]),o[13]||(o[13]=t("div",{class:"text-xs font-bold mr-4"},"Editable",-1))])])])])]),t("div",F,[o[15]||(o[15]=t("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"BackEnd Config",-1)),t("table",A,[t("tbody",null,[(a(!0),r(m,null,v(s(c).config,(n,b)=>(a(),r("tr",{key:b,class:"even:bg-slate-100 border-t border-slate-200"},[t("td",O,u(b),1),t("td",j,u(n),1)]))),128))])])])]))}};export{T as default};
@@ -0,0 +1 @@
1
+ import{g as c,c as a,a as e,f as m,u as s,F as p,r as f,d as r,o as l,t as b}from"./index-D6H45Mb0.js";import{G as _,a as u,H as w}from"./how-to-import-dev-middleware-BKbmlczn.js";import{H as g}from"./how-to-import-middleware-BWMQNy7n.js";const h={class:"flex flex-col gap-4"},x={class:"border border-slate-200 rounded-lg overflow-hidden"},v={class:"flex justify-between"},y={class:"w-full"},D={class:"px-4 py-3 w-64"},M={class:"border-l border-slate-200 px-4 py-3"},C={__name:"global-middleware",setup(k){const o=c("front-end"),n=c("back-end");return(E,t)=>(l(),a("div",h,[e("div",x,[e("div",v,[t[1]||(t[1]=e("div",{class:"px-4 py-3 font-bold bg-slate-100 flex-1"},"Global Middleware Compass",-1)),e("button",{class:"px-4 py-3 cursor-pointer border-l border-slate-200 hover:bg-slate-50 transition",onClick:t[0]||(t[0]=(...d)=>s(o).methods.refreshData&&s(o).methods.refreshData(...d))},"Refresh Data")]),e("table",y,[(l(!0),a(p,null,f(s(n).globalMiddleware,(d,i)=>(l(),a("tr",{key:i,class:"even:bg-slate-100 border-t border-slate-200"},[e("td",D,b(i),1),e("td",M,b(d),1)]))),128))])]),s(o).methods.isEmptyObject(s(n).globalMiddleware)||s(o).config.showDoc?(l(),a(p,{key:0},[r(_),r(g),r(u),r(w)],64)):m("",!0)]))}};export{C as default};
@@ -1 +1 @@
1
- import{G as p,a as n,H as i}from"./how-to-import-dev-middleware-Dkjtz_TK.js";import{M as m}from"./middleware-example-CqXnnA18.js";import{_ as c,c as s,a as o,o as d,b as v,d as e,e as t}from"./index-DkMBvkWC.js";import{H as b}from"./how-to-import-middleware-pnpQzveJ.js";import{R as x,a as f,b as u,c as w,d as g,e as _,H as y,f as M,g as h}from"./how-to-import-dev-router-C_FL_6YO.js";import{M as D,H as R}from"./how-to-import-model-7YtG50D5.js";const H={},E={class:"border border-slate-200 rounded-lg overflow-hidden"};function k(l,a){return d(),s("div",E,[...a[0]||(a[0]=[o("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Middleware - Dev",-1),o("div",{class:"px-4 py-3 border-t border-slate-200"},"const { middleware } = store.get('_app')",-1),o("div",{class:"px-4 py-3 border-t border-slate-100"},"middleware['test'] = 'console log 1.'",-1)])])}const T=c(H,[["render",k]]),j={class:"flex flex-col gap-4"},$={__name:"home",setup(l){return(a,r)=>(d(),s("div",j,[r[0]||(r[0]=v('<div class="border border-slate-200 px-4 py-3 font-bold bg-slate-100 rounded-lg flex justify-between"><div>Example</div><a href="https://www.npmjs.com/package/create-nkvs-mongoose-hono" target="_blank">create-nkvs-mongoose-hono</a></div><div class="border border-slate-200 rounded-lg overflow-hidden"><div class="px-4 py-3 bg-slate-100 font-bold">npm create nkvs-mongoose-hono@latest project-name</div><div class="px-4 py-3 border-t border-slate-200">cd project-name</div><div class="px-4 py-3 border-t border-slate-200">npm install</div><div class="px-4 py-3 border-t border-slate-200">npm run dev</div><div class="px-4 py-3 border-t border-slate-200">npm run build</div><div class="px-4 py-3 border-t border-slate-200">npm run start</div></div>',2)),e(p),e(m),e(b),e(n),e(T),e(i),e(x),e(f),e(u),e(w),e(g),e(_),e(y),e(M),e(h),e(D),e(R),r[1]||(r[1]=o("div",{class:"border border-slate-200 px-4 py-3 text-center rounded-lg"},[t("For more details: "),o("a",{href:"https://mongoosejs.com/",class:"font-bold"},"Mongoose"),t(" and "),o("a",{href:"https://hono.dev/",class:"font-bold"},"Hono"),t(".")],-1))]))}};export{$ as default};
1
+ import{G as p,a as n,H as i}from"./how-to-import-dev-middleware-BKbmlczn.js";import{M as m}from"./middleware-example-CjbC5awT.js";import{_ as c,c as s,a as o,o as d,b as v,d as e,e as t}from"./index-D6H45Mb0.js";import{H as b}from"./how-to-import-middleware-BWMQNy7n.js";import{R as x,a as f,b as u,c as w,d as g,e as _,H as y,f as M,g as h}from"./how-to-import-dev-router-Chu2o0sm.js";import{M as D,H as R}from"./how-to-import-model-BvwXzDVv.js";const H={},E={class:"border border-slate-200 rounded-lg overflow-hidden"};function k(l,a){return d(),s("div",E,[...a[0]||(a[0]=[o("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Middleware - Dev",-1),o("div",{class:"px-4 py-3 border-t border-slate-200"},"const { middleware } = store.get('_app')",-1),o("div",{class:"px-4 py-3 border-t border-slate-100"},"middleware['test'] = 'console log 1.'",-1)])])}const T=c(H,[["render",k]]),j={class:"flex flex-col gap-4"},$={__name:"home",setup(l){return(a,r)=>(d(),s("div",j,[r[0]||(r[0]=v('<div class="border border-slate-200 px-4 py-3 font-bold bg-slate-100 rounded-lg flex justify-between"><div>Example</div><a href="https://www.npmjs.com/package/create-nkvs-mongoose-hono" target="_blank">create-nkvs-mongoose-hono</a></div><div class="border border-slate-200 rounded-lg overflow-hidden"><div class="px-4 py-3 bg-slate-100 font-bold">npm create nkvs-mongoose-hono@latest project-name</div><div class="px-4 py-3 border-t border-slate-200">cd project-name</div><div class="px-4 py-3 border-t border-slate-200">npm install</div><div class="px-4 py-3 border-t border-slate-200">npm run dev</div><div class="px-4 py-3 border-t border-slate-200">npm run build</div><div class="px-4 py-3 border-t border-slate-200">npm run start</div></div>',2)),e(p),e(m),e(b),e(n),e(T),e(i),e(x),e(f),e(u),e(w),e(g),e(_),e(y),e(M),e(h),e(D),e(R),r[1]||(r[1]=o("div",{class:"border border-slate-200 px-4 py-3 text-center rounded-lg"},[t("For more details: "),o("a",{href:"https://mongoosejs.com/",class:"font-bold"},"Mongoose"),t(" and "),o("a",{href:"https://hono.dev/",class:"font-bold"},"Hono"),t(".")],-1))]))}};export{$ as default};
@@ -1 +1 @@
1
- import{_ as d,c as o,b as l,o as s,a as r}from"./index-DkMBvkWC.js";const a={},i={class:"border border-slate-200 rounded-lg overflow-hidden"};function p(t,e){return s(),o("div",i,[...e[0]||(e[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Global Middleware</div><div class="px-4 py-3 border-t border-slate-200">import { cors } from &#39;hono/cors&#39;</div><div class="px-4 py-3 border-t border-slate-100">import { prettyJSON } from &#39;hono/pretty-json&#39;</div><div class="px-4 py-3 border-t border-slate-100">const { globalMiddleware } = store.get(&#39;app&#39;)</div><div class="px-4 py-3 border-t border-slate-100">globalMiddleware.push(cors(), prettyJSON())</div>',5)])])}const m=d(a,[["render",p]]),c={},n={class:"border border-slate-200 rounded-lg overflow-hidden"};function b(t,e){return s(),o("div",n,[...e[0]||(e[0]=[r("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Global Middleware - Dev",-1),r("div",{class:"px-4 py-3 border-t border-slate-200"},"const { globalMiddleware } = store.get('_app')",-1),r("div",{class:"px-4 py-3 border-t border-slate-100"},"globalMiddleware['cors'] = 'cors.'",-1),r("div",{class:"px-4 py-3 border-t border-slate-100"},"globalMiddleware['prettyJSON'] = 'pretty JSON.'",-1)])])}const w=d(c,[["render",b]]),v={},_={class:"border border-slate-200 rounded-lg overflow-hidden"};function f(t,e){return s(),o("div",_,[...e[0]||(e[0]=[r("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Global Middleware - Dev & Middleware - Dev / middleware/_import.dev.js",-1),r("div",{class:"px-4 py-3 border-t border-slate-200"},"import './global.dev.js'",-1),r("div",{class:"px-4 py-3 border-t border-slate-100"},"import './test.dev.js'",-1)])])}const y=d(v,[["render",f]]);export{m as G,y as H,w as a};
1
+ import{_ as d,c as o,b as l,o as s,a as r}from"./index-D6H45Mb0.js";const a={},i={class:"border border-slate-200 rounded-lg overflow-hidden"};function p(t,e){return s(),o("div",i,[...e[0]||(e[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Global Middleware</div><div class="px-4 py-3 border-t border-slate-200">import { cors } from &#39;hono/cors&#39;</div><div class="px-4 py-3 border-t border-slate-100">import { prettyJSON } from &#39;hono/pretty-json&#39;</div><div class="px-4 py-3 border-t border-slate-100">const { globalMiddleware } = store.get(&#39;app&#39;)</div><div class="px-4 py-3 border-t border-slate-100">globalMiddleware.push(cors(), prettyJSON())</div>',5)])])}const m=d(a,[["render",p]]),c={},n={class:"border border-slate-200 rounded-lg overflow-hidden"};function b(t,e){return s(),o("div",n,[...e[0]||(e[0]=[r("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Global Middleware - Dev",-1),r("div",{class:"px-4 py-3 border-t border-slate-200"},"const { globalMiddleware } = store.get('_app')",-1),r("div",{class:"px-4 py-3 border-t border-slate-100"},"globalMiddleware['cors'] = 'cors.'",-1),r("div",{class:"px-4 py-3 border-t border-slate-100"},"globalMiddleware['prettyJSON'] = 'pretty JSON.'",-1)])])}const w=d(c,[["render",b]]),v={},_={class:"border border-slate-200 rounded-lg overflow-hidden"};function f(t,e){return s(),o("div",_,[...e[0]||(e[0]=[r("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Global Middleware - Dev & Middleware - Dev / middleware/_import.dev.js",-1),r("div",{class:"px-4 py-3 border-t border-slate-200"},"import './global.dev.js'",-1),r("div",{class:"px-4 py-3 border-t border-slate-100"},"import './test.dev.js'",-1)])])}const y=d(v,[["render",f]]);export{m as G,y as H,w as a};
@@ -1 +1 @@
1
- import{_ as e,c as t,b as l,o as d,a as o}from"./index-DkMBvkWC.js";const a={},p={class:"border border-slate-200 rounded-lg overflow-hidden"};function b(s,r){return d(),t("div",p,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router</div><div class="px-4 py-3 border-t border-slate-200">store.get(&#39;app&#39;).routers.push({</div><div class="px-4 py-3 border-t border-slate-100">  path: &#39;/apples&#39;,</div><div class="px-4 py-3 border-t border-slate-100">  crud: {</div><div class="px-4 py-3 border-t border-slate-100">    model: &#39;Apple&#39;,</div><div class="px-4 py-3 border-t border-slate-100">    findAll: { count: true, populate: &#39;color&#39;, limit: 5 }</div><div class="px-4 py-3 border-t border-slate-100">    findOne: { populate: &#39;color&#39; }</div><div class="px-4 py-3 border-t border-slate-100">  },</div><div class="px-4 py-3 border-t border-slate-100">  events: {</div><div class="px-4 py-3 border-t border-slate-100">    &#39;GET /test&#39;: { middleware: [&#39;test&#39;], async handler({ json }) { return json({}) } }</div><div class="px-4 py-3 border-t border-slate-100">  }</div><div class="px-4 py-3 border-t border-slate-100">)}</div>',12)])])}const H=e(a,[["render",b]]),c={},n={class:"border border-slate-200 rounded-lg overflow-hidden"};function i(s,r){return d(),t("div",n,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router / findAll</div><div class="px-4 py-3 border-t border-slate-200">Boolean or Object</div><table class="w-full"><thead><tr class="border-t border-slate-200"><th class="px-4 py-3 text-left w-32">Name</th><th class="px-4 py-3 border-l border-slate-200 text-left w-96">Type</th><th class="px-4 py-3 border-l border-slate-200 text-left">Example</th></tr></thead><tbody><tr class="border-t border-slate-200"><td class="px-4 py-3">middleware</td><td class="px-4 py-3 border-l border-slate-200">Array-String</td><td class="px-4 py-3 border-l border-slate-200">[&#39;test&#39;]</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">filter</td><td class="px-4 py-3 border-l border-slate-200">Object</td><td class="px-4 py-3 border-l border-slate-200">{ &#39;age[gte]&#39;: 18 }</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">fields</td><td class="px-4 py-3 border-l border-slate-200">String</td><td class="px-4 py-3 border-l border-slate-200">&#39;name color&#39; ✅, &#39;name -createdAt&#39; ❌, &#39;-createdAt -upadtedAt&#39; ❌</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">sort</td><td class="px-4 py-3 border-l border-slate-200">String</td><td class="px-4 py-3 border-l border-slate-200">&#39;-createdAt&#39;</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">page</td><td class="px-4 py-3 border-l border-slate-200">Number</td><td class="px-4 py-3 border-l border-slate-200">1</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">limit</td><td class="px-4 py-3 border-l border-slate-200">Number or Boolean</td><td class="px-4 py-3 border-l border-slate-200">false, 10, If number &gt; 300 then number = 300</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">populate</td><td class="px-4 py-3 border-l border-slate-200">String or Object or Array-Object</td><td class="px-4 py-3 border-l border-slate-200">&#39;color&#39;, { path: &#39;color&#39;, select: &#39;name&#39;, populate: {} }, [{ path: &#39;color&#39; }]</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">count</td><td class="px-4 py-3 border-l border-slate-200">Boolean</td><td class="px-4 py-3 border-l border-slate-200">true</td></tr></tbody></table>',3)])])}const I=e(c,[["render",i]]),x={},y={class:"border border-slate-200 rounded-lg overflow-hidden"};function v(s,r){return d(),t("div",y,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router / findOne</div><div class="px-4 py-3 border-t border-slate-200">Boolean or Object</div><table class="w-full"><thead><tr class="border-t border-slate-200"><th class="px-4 py-3 text-left w-32">Name</th><th class="px-4 py-3 border-l border-slate-200 text-left w-96">Type</th><th class="px-4 py-3 border-l border-slate-200 text-left">Example</th></tr></thead><tbody><tr class="border-t border-slate-200"><td class="px-4 py-3">middleware</td><td class="px-4 py-3 border-l border-slate-200">Array-String</td><td class="px-4 py-3 border-l border-slate-200">[&#39;test&#39;]</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">filter</td><td class="px-4 py-3 border-l border-slate-200">Object</td><td class="px-4 py-3 border-l border-slate-200">{ &#39;age[gte]&#39;: 18 }</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">fields</td><td class="px-4 py-3 border-l border-slate-200">String</td><td class="px-4 py-3 border-l border-slate-200">&#39;name color&#39; ✅, &#39;name -createdAt&#39; ❌, &#39;-createdAt -upadtedAt&#39; ❌</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">populate</td><td class="px-4 py-3 border-l border-slate-200">String or Object or Array-Object</td><td class="px-4 py-3 border-l border-slate-200">&#39;color&#39;, { path: &#39;color&#39;, select: &#39;name&#39;, populate: {} }, [{ path: &#39;color&#39; }]</td></tr></tbody></table>',3)])])}const k=e(x,[["render",v]]),f={},u={class:"border border-slate-200 rounded-lg overflow-hidden"};function _(s,r){return d(),t("div",u,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router / create</div><div class="px-4 py-3 border-t border-slate-200">Boolean or Object</div><table class="w-full"><thead><tr class="border-t border-slate-200"><th class="px-4 py-3 text-left w-32">Name</th><th class="px-4 py-3 border-l border-slate-200 text-left w-96">Type</th><th class="px-4 py-3 border-l border-slate-200 text-left">Example</th></tr></thead><tbody><tr class="border-t border-slate-200"><td class="px-4 py-3">middleware</td><td class="px-4 py-3 border-l border-slate-200">Array-String</td><td class="px-4 py-3 border-l border-slate-200">[&#39;test&#39;]</td></tr></tbody></table>',3)])])}const G=e(f,[["render",_]]),h={},m={class:"border border-slate-200 rounded-lg overflow-hidden"};function g(s,r){return d(),t("div",m,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router / update</div><div class="px-4 py-3 border-t border-slate-200">Boolean or Object</div><table class="w-full"><thead><tr class="border-t border-slate-200"><th class="px-4 py-3 text-left w-32">Name</th><th class="px-4 py-3 border-l border-slate-200 text-left w-96">Type</th><th class="px-4 py-3 border-l border-slate-200 text-left">Example</th></tr></thead><tbody><tr class="border-t border-slate-200"><td class="px-4 py-3">middleware</td><td class="px-4 py-3 border-l border-slate-200">Array-String</td><td class="px-4 py-3 border-l border-slate-200">[&#39;test&#39;]</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">ignoreFields</td><td class="px-4 py-3 border-l border-slate-200">Array</td><td class="px-4 py-3 border-l border-slate-200">[&#39;active&#39;]</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">options</td><td class="px-4 py-3 border-l border-slate-200">Object</td><td class="px-4 py-3 border-l border-slate-200">{ new: true }</td></tr></tbody></table>',3)])])}const V=e(h,[["render",g]]),w={},$={class:"border border-slate-200 rounded-lg overflow-hidden"};function A(s,r){return d(),t("div",$,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router / remove</div><div class="px-4 py-3 border-t border-slate-200">Boolean or Object</div><table class="w-full"><thead><tr class="border-t border-slate-200"><th class="px-4 py-3 text-left w-32">Name</th><th class="px-4 py-3 border-l border-slate-200 text-left w-96">Type</th><th class="px-4 py-3 border-l border-slate-200 text-left">Example</th></tr></thead><tbody><tr class="border-t border-slate-200"><td class="px-4 py-3">middleware</td><td class="px-4 py-3 border-l border-slate-200">Array-String</td><td class="px-4 py-3 border-l border-slate-200">[&#39;test&#39;]</td></tr></tbody></table>',3)])])}const C=e(w,[["render",A]]),R={},j={class:"border border-slate-200 rounded-lg overflow-hidden"};function O(s,r){return d(),t("div",j,[...r[0]||(r[0]=[o("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Router / _import.js",-1),o("div",{class:"px-4 py-3 border-t border-slate-200"},"import './apples.js'",-1)])])}const U=e(R,[["render",O]]),S={},B={class:"border border-slate-200 rounded-lg overflow-hidden"};function E(s,r){return d(),t("div",B,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router - Dev</div><div class="px-4 py-3 border-t border-slate-200">store.get(&#39;_app&#39;).routers[&#39;/apples&#39;] = {</div><div class="px-4 py-3 border-t border-slate-100">  description: &#39;Apple&#39;,</div><div class="px-4 py-3 border-t border-slate-100">  events: {</div><div class="px-4 py-3 border-t border-slate-100">    &#39;GET /test&#39;: { description: &#39;Apple test interface.&#39; }</div><div class="px-4 py-3 border-t border-slate-100">  }</div><div class="px-4 py-3 border-t border-slate-100">}</div>',7)])])}const q=e(S,[["render",E]]),D={},N={class:"border border-slate-200 rounded-lg overflow-hidden"};function T(s,r){return d(),t("div",N,[...r[0]||(r[0]=[o("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Router - Dev / _import.dev.js",-1),o("div",{class:"px-4 py-3 border-t border-slate-200"},"import './apples.dev.js'",-1)])])}const z=e(D,[["render",T]]);export{U as H,H as R,I as a,k as b,G as c,V as d,C as e,q as f,z as g};
1
+ import{_ as e,c as t,b as l,o as d,a as o}from"./index-D6H45Mb0.js";const a={},p={class:"border border-slate-200 rounded-lg overflow-hidden"};function b(s,r){return d(),t("div",p,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router</div><div class="px-4 py-3 border-t border-slate-200">store.get(&#39;app&#39;).routers.push({</div><div class="px-4 py-3 border-t border-slate-100">  path: &#39;/apples&#39;,</div><div class="px-4 py-3 border-t border-slate-100">  crud: {</div><div class="px-4 py-3 border-t border-slate-100">    model: &#39;Apple&#39;,</div><div class="px-4 py-3 border-t border-slate-100">    findAll: { count: true, populate: &#39;color&#39;, limit: 5 }</div><div class="px-4 py-3 border-t border-slate-100">    findOne: { populate: &#39;color&#39; }</div><div class="px-4 py-3 border-t border-slate-100">  },</div><div class="px-4 py-3 border-t border-slate-100">  events: {</div><div class="px-4 py-3 border-t border-slate-100">    &#39;GET /test&#39;: { middleware: [&#39;test&#39;], async handler({ json }) { return json({}) } }</div><div class="px-4 py-3 border-t border-slate-100">  }</div><div class="px-4 py-3 border-t border-slate-100">)}</div>',12)])])}const H=e(a,[["render",b]]),c={},n={class:"border border-slate-200 rounded-lg overflow-hidden"};function i(s,r){return d(),t("div",n,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router / findAll</div><div class="px-4 py-3 border-t border-slate-200">Boolean or Object</div><table class="w-full"><thead><tr class="border-t border-slate-200"><th class="px-4 py-3 text-left w-32">Name</th><th class="px-4 py-3 border-l border-slate-200 text-left w-96">Type</th><th class="px-4 py-3 border-l border-slate-200 text-left">Example</th></tr></thead><tbody><tr class="border-t border-slate-200"><td class="px-4 py-3">middleware</td><td class="px-4 py-3 border-l border-slate-200">Array-String</td><td class="px-4 py-3 border-l border-slate-200">[&#39;test&#39;]</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">filter</td><td class="px-4 py-3 border-l border-slate-200">Object</td><td class="px-4 py-3 border-l border-slate-200">{ &#39;age[gte]&#39;: 18 }</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">fields</td><td class="px-4 py-3 border-l border-slate-200">String</td><td class="px-4 py-3 border-l border-slate-200">&#39;name color&#39; ✅, &#39;name -createdAt&#39; ❌, &#39;-createdAt -upadtedAt&#39; ❌</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">sort</td><td class="px-4 py-3 border-l border-slate-200">String</td><td class="px-4 py-3 border-l border-slate-200">&#39;-createdAt&#39;</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">page</td><td class="px-4 py-3 border-l border-slate-200">Number</td><td class="px-4 py-3 border-l border-slate-200">1</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">limit</td><td class="px-4 py-3 border-l border-slate-200">Number or Boolean</td><td class="px-4 py-3 border-l border-slate-200">false, 10, If number &gt; 300 then number = 300</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">populate</td><td class="px-4 py-3 border-l border-slate-200">String or Object or Array-Object</td><td class="px-4 py-3 border-l border-slate-200">&#39;color&#39;, { path: &#39;color&#39;, select: &#39;name&#39;, populate: {} }, [{ path: &#39;color&#39; }]</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">count</td><td class="px-4 py-3 border-l border-slate-200">Boolean</td><td class="px-4 py-3 border-l border-slate-200">true</td></tr></tbody></table>',3)])])}const I=e(c,[["render",i]]),x={},y={class:"border border-slate-200 rounded-lg overflow-hidden"};function v(s,r){return d(),t("div",y,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router / findOne</div><div class="px-4 py-3 border-t border-slate-200">Boolean or Object</div><table class="w-full"><thead><tr class="border-t border-slate-200"><th class="px-4 py-3 text-left w-32">Name</th><th class="px-4 py-3 border-l border-slate-200 text-left w-96">Type</th><th class="px-4 py-3 border-l border-slate-200 text-left">Example</th></tr></thead><tbody><tr class="border-t border-slate-200"><td class="px-4 py-3">middleware</td><td class="px-4 py-3 border-l border-slate-200">Array-String</td><td class="px-4 py-3 border-l border-slate-200">[&#39;test&#39;]</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">filter</td><td class="px-4 py-3 border-l border-slate-200">Object</td><td class="px-4 py-3 border-l border-slate-200">{ &#39;age[gte]&#39;: 18 }</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">fields</td><td class="px-4 py-3 border-l border-slate-200">String</td><td class="px-4 py-3 border-l border-slate-200">&#39;name color&#39; ✅, &#39;name -createdAt&#39; ❌, &#39;-createdAt -upadtedAt&#39; ❌</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">populate</td><td class="px-4 py-3 border-l border-slate-200">String or Object or Array-Object</td><td class="px-4 py-3 border-l border-slate-200">&#39;color&#39;, { path: &#39;color&#39;, select: &#39;name&#39;, populate: {} }, [{ path: &#39;color&#39; }]</td></tr></tbody></table>',3)])])}const k=e(x,[["render",v]]),f={},u={class:"border border-slate-200 rounded-lg overflow-hidden"};function _(s,r){return d(),t("div",u,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router / create</div><div class="px-4 py-3 border-t border-slate-200">Boolean or Object</div><table class="w-full"><thead><tr class="border-t border-slate-200"><th class="px-4 py-3 text-left w-32">Name</th><th class="px-4 py-3 border-l border-slate-200 text-left w-96">Type</th><th class="px-4 py-3 border-l border-slate-200 text-left">Example</th></tr></thead><tbody><tr class="border-t border-slate-200"><td class="px-4 py-3">middleware</td><td class="px-4 py-3 border-l border-slate-200">Array-String</td><td class="px-4 py-3 border-l border-slate-200">[&#39;test&#39;]</td></tr></tbody></table>',3)])])}const G=e(f,[["render",_]]),h={},m={class:"border border-slate-200 rounded-lg overflow-hidden"};function g(s,r){return d(),t("div",m,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router / update</div><div class="px-4 py-3 border-t border-slate-200">Boolean or Object</div><table class="w-full"><thead><tr class="border-t border-slate-200"><th class="px-4 py-3 text-left w-32">Name</th><th class="px-4 py-3 border-l border-slate-200 text-left w-96">Type</th><th class="px-4 py-3 border-l border-slate-200 text-left">Example</th></tr></thead><tbody><tr class="border-t border-slate-200"><td class="px-4 py-3">middleware</td><td class="px-4 py-3 border-l border-slate-200">Array-String</td><td class="px-4 py-3 border-l border-slate-200">[&#39;test&#39;]</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">ignoreFields</td><td class="px-4 py-3 border-l border-slate-200">Array</td><td class="px-4 py-3 border-l border-slate-200">[&#39;active&#39;]</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">options</td><td class="px-4 py-3 border-l border-slate-200">Object</td><td class="px-4 py-3 border-l border-slate-200">{ new: true }</td></tr></tbody></table>',3)])])}const V=e(h,[["render",g]]),w={},$={class:"border border-slate-200 rounded-lg overflow-hidden"};function A(s,r){return d(),t("div",$,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router / remove</div><div class="px-4 py-3 border-t border-slate-200">Boolean or Object</div><table class="w-full"><thead><tr class="border-t border-slate-200"><th class="px-4 py-3 text-left w-32">Name</th><th class="px-4 py-3 border-l border-slate-200 text-left w-96">Type</th><th class="px-4 py-3 border-l border-slate-200 text-left">Example</th></tr></thead><tbody><tr class="border-t border-slate-200"><td class="px-4 py-3">middleware</td><td class="px-4 py-3 border-l border-slate-200">Array-String</td><td class="px-4 py-3 border-l border-slate-200">[&#39;test&#39;]</td></tr></tbody></table>',3)])])}const C=e(w,[["render",A]]),R={},j={class:"border border-slate-200 rounded-lg overflow-hidden"};function O(s,r){return d(),t("div",j,[...r[0]||(r[0]=[o("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Router / _import.js",-1),o("div",{class:"px-4 py-3 border-t border-slate-200"},"import './apples.js'",-1)])])}const U=e(R,[["render",O]]),S={},B={class:"border border-slate-200 rounded-lg overflow-hidden"};function E(s,r){return d(),t("div",B,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router - Dev</div><div class="px-4 py-3 border-t border-slate-200">store.get(&#39;_app&#39;).routers[&#39;/apples&#39;] = {</div><div class="px-4 py-3 border-t border-slate-100">  description: &#39;Apple&#39;,</div><div class="px-4 py-3 border-t border-slate-100">  events: {</div><div class="px-4 py-3 border-t border-slate-100">    &#39;GET /test&#39;: { description: &#39;Apple test interface.&#39; }</div><div class="px-4 py-3 border-t border-slate-100">  }</div><div class="px-4 py-3 border-t border-slate-100">}</div>',7)])])}const q=e(S,[["render",E]]),D={},N={class:"border border-slate-200 rounded-lg overflow-hidden"};function T(s,r){return d(),t("div",N,[...r[0]||(r[0]=[o("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Router - Dev / _import.dev.js",-1),o("div",{class:"px-4 py-3 border-t border-slate-200"},"import './apples.dev.js'",-1)])])}const z=e(D,[["render",T]]);export{U as H,H as R,I as a,k as b,G as c,V as d,C as e,q as f,z as g};
@@ -1 +1 @@
1
- import{_ as o,c as s,a as e,o as d}from"./index-DkMBvkWC.js";const t={},a={class:"border border-slate-200 rounded-lg overflow-hidden"};function l(i,r){return d(),s("div",a,[...r[0]||(r[0]=[e("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Global Middleware & Middleware / middleware/_import.js",-1),e("div",{class:"px-4 py-3 border-t border-slate-200"},"import './global.js'",-1),e("div",{class:"px-4 py-3 border-t border-slate-100"},"import './test.js'",-1)])])}const n=o(t,[["render",l]]);export{n as H};
1
+ import{_ as o,c as s,a as e,o as d}from"./index-D6H45Mb0.js";const t={},a={class:"border border-slate-200 rounded-lg overflow-hidden"};function l(i,r){return d(),s("div",a,[...r[0]||(r[0]=[e("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Global Middleware & Middleware / middleware/_import.js",-1),e("div",{class:"px-4 py-3 border-t border-slate-200"},"import './global.js'",-1),e("div",{class:"px-4 py-3 border-t border-slate-100"},"import './test.js'",-1)])])}const n=o(t,[["render",l]]);export{n as H};
@@ -1 +1 @@
1
- import{_ as d,c as o,b as a,o as s,a as r}from"./index-DkMBvkWC.js";const l={},p={class:"border border-slate-200 rounded-lg overflow-hidden"};function i(t,e){return s(),o("div",p,[...e[0]||(e[0]=[a('<div class="px-4 py-3 bg-slate-100 font-bold">Model</div><div class="px-4 py-3 border-t border-slate-200">store.get(&#39;app&#39;).models.Apple = {</div><div class="px-4 py-3 border-t border-slate-100">  collection: &#39;apples&#39;,</div><div class="px-4 py-3 border-t border-slate-100">  documentName: &#39;apple&#39;,</div><div class="px-4 py-3 border-t border-slate-100">  schema: {</div><div class="px-4 py-3 border-t border-slate-100">    name: { type: &#39;String&#39;, required: true },</div><div class="px-4 py-3 border-t border-slate-100">    color: { type: &#39;ObjectId&#39;, ref: &#39;Color&#39; },</div><div class="px-4 py-3 border-t border-slate-100">  },</div><div class="px-4 py-3 border-t border-slate-100">  options: { timestamps: true, methods: {}, statics: {} },</div><div class="px-4 py-3 border-t border-slate-100">  middleware: [{ hook: &#39;pre&#39;, &#39;method&#39;: &#39;save&#39;, async handler(next) { await next() } }]</div><div class="px-4 py-3 border-t border-slate-100">}</div>',11)])])}const x=d(l,[["render",i]]),c={},n={class:"border border-slate-200 rounded-lg overflow-hidden"};function b(t,e){return s(),o("div",n,[...e[0]||(e[0]=[r("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Model / _import.js",-1),r("div",{class:"px-4 py-3 border-t border-slate-200"},"import './Apple.js'",-1),r("div",{class:"px-4 py-3 border-t border-slate-100"},"import './Color.js'",-1)])])}const m=d(c,[["render",b]]);export{m as H,x as M};
1
+ import{_ as d,c as o,b as a,o as s,a as r}from"./index-D6H45Mb0.js";const l={},p={class:"border border-slate-200 rounded-lg overflow-hidden"};function i(t,e){return s(),o("div",p,[...e[0]||(e[0]=[a('<div class="px-4 py-3 bg-slate-100 font-bold">Model</div><div class="px-4 py-3 border-t border-slate-200">store.get(&#39;app&#39;).models.Apple = {</div><div class="px-4 py-3 border-t border-slate-100">  collection: &#39;apples&#39;,</div><div class="px-4 py-3 border-t border-slate-100">  documentName: &#39;apple&#39;,</div><div class="px-4 py-3 border-t border-slate-100">  schema: {</div><div class="px-4 py-3 border-t border-slate-100">    name: { type: &#39;String&#39;, required: true },</div><div class="px-4 py-3 border-t border-slate-100">    color: { type: &#39;ObjectId&#39;, ref: &#39;Color&#39; },</div><div class="px-4 py-3 border-t border-slate-100">  },</div><div class="px-4 py-3 border-t border-slate-100">  options: { timestamps: true, methods: {}, statics: {} },</div><div class="px-4 py-3 border-t border-slate-100">  middleware: [{ hook: &#39;pre&#39;, &#39;method&#39;: &#39;save&#39;, async handler(doc) {} }]</div><div class="px-4 py-3 border-t border-slate-100">}</div>',11)])])}const m=d(l,[["render",i]]),c={},b={class:"border border-slate-200 rounded-lg overflow-hidden"};function n(t,e){return s(),o("div",b,[...e[0]||(e[0]=[r("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Model / _import.js",-1),r("div",{class:"px-4 py-3 border-t border-slate-200"},"import './Apple.js'",-1),r("div",{class:"px-4 py-3 border-t border-slate-100"},"import './Color.js'",-1)])])}const x=d(c,[["render",n]]);export{x as H,m as M};
@@ -0,0 +1 @@
1
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-600:oklch(57.7% .245 27.325);--color-green-600:oklch(62.7% .194 149.214);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-white:#fff;--spacing:.25rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--font-weight-bold:700;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.fixed{position:fixed}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.top-4{top:calc(var(--spacing)*4)}.left-0{left:calc(var(--spacing)*0)}.z-50{z-index:50}.m-4{margin:calc(var(--spacing)*4)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing)*1)}.mr-4{margin-right:calc(var(--spacing)*4)}.flex{display:flex}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.h-8{height:calc(var(--spacing)*8)}.w-8{width:calc(var(--spacing)*8)}.w-32{width:calc(var(--spacing)*32)}.w-64{width:calc(var(--spacing)*64)}.w-96{width:calc(var(--spacing)*96)}.w-full{width:100%}.max-w-7xl{max-width:var(--container-7xl)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-b-slate-200{border-bottom-color:var(--color-slate-200)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-white{background-color:var(--color-white)}.bg-white\/75{background-color:#ffffffbf}@supports (color:color-mix(in lab,red,red)){.bg-white\/75{background-color:color-mix(in oklab,var(--color-white)75%,transparent)}}.p-4{padding:calc(var(--spacing)*4)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-1{padding-block:calc(var(--spacing)*1)}.py-3{padding-block:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-4{padding-right:calc(var(--spacing)*4)}.text-center{text-align:center}.text-left{text-align:left}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.text-green-600{color:var(--color-green-600)}.text-red-600{color:var(--color-red-600)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.even\:bg-slate-100:nth-child(2n){background-color:var(--color-slate-100)}.focus-within\:bg-slate-50:focus-within{background-color:var(--color-slate-50)}@media(hover:hover){.hover\:bg-slate-50:hover{background-color:var(--color-slate-50)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}.custom-enter-active,.custom-leave-active{transition:.5s;transform:translateY(0)}.custom-enter-from,.custom-leave-to{opacity:0;transform:translateY(-2rem)}