Parameters#
Parameter adalah input yang ditanya ke user saat menjalankan lokio gen. Parameter didefinisikan di lokio/configs.yaml dan bisa dipakai di dalam file .lokio.
Parameter
nameselalu ada secara otomatis — kamu tidak perlu mendefinisikannya.
Tipe Parameter#
1. Text (string)#
Input teks bebas.
parameters:
- name: description
type: string
required: false
prompt: "Deskripsi singkat (opsional):"
default: "No description"Saat lokio gen:
◇ Deskripsi singkat (opsional):
│ Handles user authentication
Di template:
/**
* <%= description %>
*/
export class <%= pascalCase(name) %>Service {}2. Yes / No (boolean)#
Toggle ya/tidak.
parameters:
- name: useAsync
type: boolean
required: true
prompt: "Gunakan async/await?"
default: trueSaat lokio gen:
◇ Gunakan async/await?
│ Yes
Di template:
<% if (useAsync === 'TRUE') { %>
async findAll(): Promise<any[]> {
<% } else { %>
findAll(): any[] {
<% } %>
return [];
}Boolean di template menjadi string
"TRUE"atau"FALSE".
3. Number (number)#
Input angka.
parameters:
- name: port
type: number
required: false
prompt: "Port number:"
default: 3000Di template:
app.listen(<%= port %>);
// Hasil: app.listen(3000);4. Pilihan dari Daftar (options)#
User memilih dari daftar yang sudah ditentukan.
parameters:
- name: type
type: options
required: true
prompt: "Tipe controller:"
options:
- http
- grpc
- queue
default: httpSaat lokio gen:
◇ Tipe controller:
│ ● http
│ ○ grpc
│ ○ queue
Di template:
<% if (type === 'http') { %>
@Controller()
export class <%= pascalCase(name) %>Controller {}
<% } else if (type === 'grpc') { %>
export class <%= pascalCase(name) %>GrpcHandler {}
<% } %>Mendefinisikan Parameter di configs.yaml#
Contoh Lengkap#
# lokio/configs.yaml
templates:
- name: service
description: NestJS service class
path: service.lokio
output: src/services/<%= pascalCase(name) %>Service.ts
parameters:
- name: name
type: string
required: true
prompt: "Nama service:"
- name: useAsync
type: boolean
required: true
prompt: "Gunakan async/await?"
default: true
- name: type
type: options
required: true
prompt: "Tipe service:"
options:
- basic
- repository
- external-api
default: basic
- name: description
type: string
required: false
prompt: "Deskripsi (opsional):"
default: ""Menggunakan Parameter di Template#
Menyisipkan Langsung#
// Parameter: name = "UserOrder"
export class <%= pascalCase(name) %>Service {}
// Hasil: export class UserOrderService {}Dalam Kondisi#
<% if (type === 'repository') { %>
constructor(
@InjectRepository(<%= pascalCase(name) %>)
private repo: Repository<<%= pascalCase(name) %>>
) {}
<% } %>Di Komentar#
/**
* @description <%= description %>
* @generated <%= new Date().getFullYear() %>
*/Menambah Parameter Lewat CLI#
Saat lokio add, pilih "Add extra input variables besides 'name'?"
Atau edit langsung lokio/configs.yaml:
parameters:
- name: layer # nama variabel di template
type: options
required: true
prompt: "Di layer mana?" # pertanyaan yang muncul ke user
options:
- domain
- application
- infrastructureAtau tambahkan lewat lokio edit <nama-template> → pilih Parameters → Add new parameter.
Urutan Prompt#
Parameter required: true selalu ditanya lebih dulu, baru yang opsional. Urutan dalam file configs.yaml menentukan urutan prompt untuk parameter dengan tingkat yang sama.
Tips#
Pre-fill Parameter Pertama#
Parameter pertama bisa langsung diisi dari command line:
lokio g service User
# 'User' otomatis jadi nilai parameter pertama (name)Default Value#
Kalau user tidak mengisi parameter opsional, default dipakai:
- name: description
type: string
required: false
prompt: "Deskripsi:"
default: "Generated by Lokio"User tinggal tekan Enter → nilai default terpakai.