Skip to content

Commit 4cc7899

Browse files
chore: wip
1 parent c17fe79 commit 4cc7899

File tree

10 files changed

+61
-47
lines changed

10 files changed

+61
-47
lines changed

storage/framework/core/actions/src/orm/generate-model.ts

Lines changed: 25 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { log } from '@stacksjs/logging'
22
import { modelTableName } from '@stacksjs/orm'
33
import { path } from '@stacksjs/path'
44
import { fs, glob } from '@stacksjs/storage'
5-
import { pascalCase } from '@stacksjs/strings'
5+
import { camelCase, pascalCase } from '@stacksjs/strings'
66
import type { Model, RelationConfig } from '@stacksjs/types'
77
import { isString } from '@stacksjs/validation'
88

@@ -29,29 +29,30 @@ async function generateApiRoutes(modelFiles: string[]) {
2929

3030
for (const modelFile of modelFiles) {
3131
log.debug(`Processing model file: ${modelFile}`)
32-
32+
let middlewareString = ''
3333
const model = (await import(modelFile)).default as Model
3434

3535
if (model.traits?.useApi) {
3636
const apiRoutes = model.traits?.useApi?.routes
3737
const middlewares = model.traits.useApi?.middleware
38-
let middlewareString = `.middleware([`
39-
40-
if (middlewares.length) {
41-
for (let i = 0; i < middlewares.length; i++) {
42-
middlewareString += `'${middlewares[i]}'`
43-
44-
if (i < middlewares.length - 1) {
45-
middlewareString += ','
38+
if (middlewares) {
39+
middlewareString = `.middleware([`
40+
if (middlewares.length) {
41+
for (let i = 0; i < middlewares.length; i++) {
42+
middlewareString += `'${middlewares[i]}'`
43+
44+
if (i < middlewares.length - 1) {
45+
middlewareString += ','
46+
}
4647
}
4748
}
48-
}
4949

50-
middlewareString += `])`
50+
middlewareString += `])`
51+
}
5152

5253
if (apiRoutes?.length) {
5354
for (const apiRoute of apiRoutes) {
54-
await writeOrmActions(apiRoute, model)
55+
await writeOrmActions(apiRoute as string, model)
5556

5657
if (apiRoute === 'index')
5758
routeString += `await route.get('${model.table}', 'Actions/${model.name}IndexOrmAction')${middlewareString}\n\n`
@@ -109,19 +110,25 @@ async function writeModelRequests() {
109110
const modeFileElement = modelFiles[i] as string
110111

111112
const model = (await import(modeFileElement)).default as Model
113+
const modelName = model.name as string
112114

113-
const requestFile = Bun.file(path.projectStoragePath(`framework/requests/${model.name}Request.ts`))
115+
const modelLowerCase = camelCase(modelName)
114116

115-
fileString += `export interface ${model.name}RequestType extends RequestInstance{
117+
const requestFile = Bun.file(path.projectStoragePath(`framework/requests/${modelName}Request.ts`))
118+
119+
fileString += `export interface ${modelName}RequestType extends RequestInstance{
116120
validate(params: any): void
117121
}\n\n`
118122

119-
fileString += `export class ${model.name}Request extends Request implements ${model.name}RequestType {
123+
fileString += `export class ${modelName}Request extends Request implements ${modelName}RequestType {
120124
121125
public validate(params: any): void {
122-
validateField('${model.name}', this.all())
126+
validateField('${modelName}', this.all())
123127
}
124-
}`
128+
}
129+
130+
export const ${modelLowerCase}Request = new ${modelName}Request()
131+
`
125132

126133
const writer = requestFile.writer()
127134

@@ -208,27 +215,6 @@ async function writeOrmActions(apiRoute: string, model: Model): Promise<void> {
208215
writer.write(actionString)
209216
}
210217

211-
async function writeApiRoutes(apiRoute: string, model: Model): Promise<string> {
212-
let routeString = ``
213-
const tableName = await modelTableName(model)
214-
const modelName = model.name
215-
216-
if (apiRoute === 'index') routeString += `await route.get('${tableName}', 'Actions/${modelName}IndexOrmAction')\n\n`
217-
218-
if (apiRoute === 'store') routeString += `await route.post('${tableName}', 'Actions/${modelName}StoreOrmAction')\n\n`
219-
220-
if (apiRoute === 'update')
221-
routeString += `await route.patch('${tableName}/{id}', 'Actions/${modelName}UpdateOrmAction')\n\n`
222-
223-
if (apiRoute === 'show')
224-
routeString += `await route.get('${tableName}/{id}', 'Actions/${modelName}ShowOrmAction')\n\n`
225-
226-
if (apiRoute === 'destroy')
227-
routeString += `await route.delete('${tableName}/{id}', 'Actions/${modelName}DestroyOrmAction')\n\n`
228-
229-
return routeString
230-
}
231-
232218
async function initiateModelGeneration(): Promise<void> {
233219
await deleteExistingModels()
234220
await deleteExistingOrmActions()

storage/framework/core/strings/src/case.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ export function capitalize(str: string): string {
1010
return str[0] ? str[0].toUpperCase() + str.slice(1).toLowerCase() : ''
1111
}
1212

13+
export function lowercase(str: string): string {
14+
return str.toLowerCase()
15+
}
16+
1317
export {
1418
camelCase,
1519
capitalCase,

storage/framework/requests/AccessTokenRequest.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ export class AccessTokenRequest extends Request implements AccessTokenRequestTyp
1111
public validate(params: any): void {
1212
validateField('AccessToken', this.all())
1313
}
14-
}
14+
}
15+
16+
export const accessTokenRequest = new AccessTokenRequest()
17+

storage/framework/requests/DeploymentRequest.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ export class DeploymentRequest extends Request implements DeploymentRequestType
1111
public validate(params: any): void {
1212
validateField('Deployment', this.all())
1313
}
14-
}
14+
}
15+
16+
export const deploymentRequest = new DeploymentRequest()
17+

storage/framework/requests/PostRequest.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ export class PostRequest extends Request implements PostRequestType {
1111
public validate(params: any): void {
1212
validateField('Post', this.all())
1313
}
14-
}
14+
}
15+
16+
export const postRequest = new PostRequest()
17+

storage/framework/requests/ProjectRequest.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ export class ProjectRequest extends Request implements ProjectRequestType {
1111
public validate(params: any): void {
1212
validateField('Project', this.all())
1313
}
14-
}
14+
}
15+
16+
export const projectRequest = new ProjectRequest()
17+

storage/framework/requests/SubscriberEmailRequest.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ export class SubscriberEmailRequest extends Request implements SubscriberEmailRe
1111
public validate(params: any): void {
1212
validateField('SubscriberEmail', this.all())
1313
}
14-
}
14+
}
15+
16+
export const subscriberEmailRequest = new SubscriberEmailRequest()
17+

storage/framework/requests/SubscriberRequest.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ export class SubscriberRequest extends Request implements SubscriberRequestType
1111
public validate(params: any): void {
1212
validateField('Subscriber', this.all())
1313
}
14-
}
14+
}
15+
16+
export const subscriberRequest = new SubscriberRequest()
17+

storage/framework/requests/TeamRequest.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ export class TeamRequest extends Request implements TeamRequestType {
1111
public validate(params: any): void {
1212
validateField('Team', this.all())
1313
}
14-
}
14+
}
15+
16+
export const teamRequest = new TeamRequest()
17+

storage/framework/requests/UserRequest.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ export class UserRequest extends Request implements UserRequestType {
1111
public validate(params: any): void {
1212
validateField('User', this.all())
1313
}
14-
}
14+
}
15+
16+
export const userRequest = new UserRequest()
17+

0 commit comments

Comments
 (0)