Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js 22.x
uses: actions/setup-node@v4
with:
node-version: 22.x
- name: Install
run: npm install
- name: Run typecheck
Expand All @@ -29,12 +33,11 @@ jobs:
matrix:
os: [ubuntu-latest, windows-latest]
node-version:
- 20.10.0
- 21.x
- 22.x
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install
Expand All @@ -46,12 +49,11 @@ jobs:
strategy:
matrix:
node-version:
- 20.10.0
- 21.x
- 22.x
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install
Expand Down
3 changes: 1 addition & 2 deletions commands/make/middleware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { stubsRoot } from '../../stubs/main.js'
import { flags } from '@adonisjs/core/ace'
import MakeMiddleware from '@adonisjs/core/commands/make/middleware'
import stringHelpers from '@adonisjs/core/helpers/string'
import { slash } from '@adonisjs/core/helpers'
import { COMMAND_PREFIX, MODULE_FLAG } from '../../src/constants.js'
import { checkModule } from '../../src/utils.js'

Expand Down Expand Up @@ -62,7 +61,7 @@ export default class MMakeMiddleware extends MakeMiddleware {
* Creative relative path for the middleware file from
* the "./app/middleware" directory
*/
const middlewareRelativePath = slash(
const middlewareRelativePath = stringHelpers.toUnixSlash(
relative(this.app.middlewarePath(), destination).replace(extname(destination), '')
)

Expand Down
4 changes: 2 additions & 2 deletions commands/make/provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import { stubsRoot } from '../../stubs/main.js'
import type { AppEnvironments } from '@adonisjs/core/types/app'
import { flags } from '@adonisjs/core/ace'
import MakeProvider from '@adonisjs/core/commands/make/provider'
import { slash } from '@adonisjs/core/helpers'
import { COMMAND_PREFIX, MODULE_FLAG } from '../../src/constants.js'
import { checkModule } from '../../src/utils.js'
import stringHelpers from '@adonisjs/core/helpers/string'

const ALLOWED_ENVIRONMENTS = ['web', 'console', 'test', 'repl'] satisfies AppEnvironments[]

Expand Down Expand Up @@ -74,7 +74,7 @@ export default class MMakeProvider extends MakeProvider {
* Creative relative path for the provider file from
* the "./start" directory
*/
const providerRelativePath = slash(
const providerRelativePath = stringHelpers.toUnixSlash(
relative(this.app.providersPath(), destination).replace(extname(destination), '')
)

Expand Down
27 changes: 27 additions & 0 deletions commands/make/transformer.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { stubsRoot } from '../../stubs/main.ts'
import MakeTransformer from '@adonisjs/core/commands/make/transformer'
import { flags } from '@adonisjs/core/ace'
import { COMMAND_PREFIX, MODULE_FLAG } from '../../src/constants.ts'
import { checkModule } from '../../src/utils.ts'

export default class MMakeTransformer extends MakeTransformer {
@flags.string(MODULE_FLAG)
declare module: string

override async run() {
if (!this.module) {
return super.run()
}

if (!checkModule(this.app, this.module)) {
this.kernel.exec(`${COMMAND_PREFIX}:module`, [this.module])
}
const codemods = await this.createCodemods()

await codemods.makeUsingStub(stubsRoot, this.stubPath, {
flags: this.parsed.flags,
entity: this.app.generators.createEntity(this.name),
model: this.app.generators.createEntity(this.name),
})
}
}
2 changes: 1 addition & 1 deletion configure.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
|
*/

import ConfigureCommand from '@adonisjs/core/commands/configure'
import type ConfigureCommand from '@adonisjs/core/commands/configure'

export async function configure(command: ConfigureCommand) {
const codemods = await command.createCodemods()
Expand Down
42 changes: 21 additions & 21 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"name": "@adonisjs-community/modules",
"description": "",
"version": "1.1.0",
"version": "1.1.0-next.1",
"engines": {
"node": ">=20.6.0"
"node": ">=22.0.0"
},
"type": "module",
"files": [
Expand Down Expand Up @@ -35,29 +35,29 @@
"author": "",
"license": "MIT",
"devDependencies": {
"@adonisjs/assembler": "^7.8.2",
"@adonisjs/core": "^6.12.0",
"@adonisjs/eslint-config": "2.0.0-beta.7",
"@adonisjs/lucid": "^21.7.0",
"@adonisjs/prettier-config": "^1.4.0",
"@adonisjs/tsconfig": "^1.3.0",
"@japa/assert": "^3.0.0",
"@japa/runner": "^3.1.4",
"@swc/core": "^1.6.3",
"@types/node": "^20.14.5",
"c8": "^10.1.2",
"@adonisjs/assembler": "^8.4.0",
"@adonisjs/core": "^7.3.1",
"@adonisjs/eslint-config": "3.0.0",
"@adonisjs/lucid": "^22.4.2",
"@adonisjs/prettier-config": "^1.4.5",
"@adonisjs/tsconfig": "^2.0.0",
"@japa/assert": "^4.2.0",
"@japa/runner": "^5.3.0",
"@swc/core": "^1.15.26",
"@types/node": "^20.19.39",
"c8": "^10.1.3",
"copyfiles": "^2.4.1",
"del-cli": "^5.1.0",
"eslint": "^9.15.0",
"np": "^10.0.6",
"prettier": "^3.3.2",
"ts-node-maintained": "^10.9.4",
"tsup": "^8.5.0",
"typescript": "^5.4.5",
"release-it": "^19.0.3"
"eslint": "^9.39.4",
"np": "^10.3.0",
"prettier": "^3.8.3",
"release-it": "^19.2.4",
"ts-node-maintained": "^10.9.6",
"tsup": "^8.5.1",
"typescript": "^5.9.3"
},
"peerDependencies": {
"@adonisjs/core": "^6.2.0"
"@adonisjs/core": "^7.0.0-next.23"
},
"publishConfig": {
"access": "public",
Expand Down
2 changes: 1 addition & 1 deletion src/utils.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import path from 'node:path'
import { fileURLToPath } from 'node:url'
import stringHelpers from '@adonisjs/core/helpers/string'
import { ApplicationService } from '@adonisjs/core/types'
import type { ApplicationService } from '@adonisjs/core/types'
import { readFileSync, writeFileSync } from 'node:fs'

export function checkModule(app: ApplicationService, value: string): boolean {
Expand Down
3 changes: 1 addition & 2 deletions stubs/main.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { getDirname } from '@adonisjs/core/helpers'
import path from 'node:path'

/**
* Path to the root directory where the stubs are stored. We use
* this path within commands and the configure hook
*/
export const stubsRoot = path.join(getDirname(import.meta.url), 'stubs')
export const stubsRoot = path.join(import.meta.dirname, 'stubs')
14 changes: 3 additions & 11 deletions stubs/make/model/main.stub
Original file line number Diff line number Diff line change
@@ -1,21 +1,13 @@
{{#var modelName = generators.modelName(entity.name)}}
{{#var modelSchemaName = `${modelName}Schema` }}
{{#var modelFileName = generators.modelFileName(entity.name)}}
{{#var moduleDirectoryName = flags.module}}
{{{
exports({
to: app.makePath('app', moduleDirectoryName, 'models', modelFileName)
})
}}}
import { DateTime } from 'luxon'
import { BaseModel, column } from '@adonisjs/lucid/orm'
import { {{ modelSchemaName }} } from '#database/schema'

export default class {{ modelName }} extends BaseModel {
@column({ isPrimary: true })
declare id: number

@column.dateTime({ autoCreate: true })
declare createdAt: DateTime

@column.dateTime({ autoCreate: true, autoUpdate: true })
declare updatedAt: DateTime
export default class {{ modelName }} extends {{ modelSchemaName }} {
}
18 changes: 18 additions & 0 deletions stubs/make/transformer/main.stub
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{{#var transformerName = generators.transformerName(entity.name)}}
{{#var transformerFileName = generators.transformerFileName(entity.name)}}
{{#var modelName = generators.modelName(model.name)}}
{{#var modelFileName = generators.modelFileName(model.name)}}
{{#var moduleDirectoryName = flags.module}}
{{{
exports({
to: app.makePath('app', moduleDirectoryName, 'transformers', transformerFileName)
})
}}}
import { BaseTransformer } from '@adonisjs/core/transformers'
import {{ modelName }} from '{{ app.makePath('app', moduleDirectoryName, 'models', modelFileName) }}'

export default class {{ transformerName }} extends BaseTransformer<{{modelName}}> {
toObject() {
return this.pick(this.resource, ['id'])
}
}
Loading