You've already forked pocketbase
mirror of
https://github.com/pocketbase/pocketbase.git
synced 2025-12-07 10:39:05 +02:00
added jsvm typings and docs generation
This commit is contained in:
294
plugins/jsvm/internal/docs/docs.go
Normal file
294
plugins/jsvm/internal/docs/docs.go
Normal file
@@ -0,0 +1,294 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
"reflect"
|
||||
|
||||
"github.com/pocketbase/pocketbase/plugins/jsvm"
|
||||
"github.com/pocketbase/tygoja"
|
||||
)
|
||||
|
||||
const heading = `
|
||||
// -------------------------------------------------------------------
|
||||
// baseBinds
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
declare var $app: core.App
|
||||
|
||||
interface Record extends models.Record{} // merge
|
||||
declare class Record implements models.Record {
|
||||
constructor(collection?: models.Collection, data?: { [key:string]: any })
|
||||
}
|
||||
|
||||
interface Collection extends models.Collection{} // merge
|
||||
declare class Collection implements models.Collection {
|
||||
constructor(data?: Partial<models.Collection>)
|
||||
}
|
||||
|
||||
interface Admin extends models.Admin{} // merge
|
||||
declare class Admin implements models.Admin {
|
||||
constructor(data?: Partial<models.Admin>)
|
||||
}
|
||||
|
||||
interface Schema extends schema.Schema{} // merge
|
||||
declare class Schema implements schema.Schema {
|
||||
constructor(data?: Partial<schema.Schema>)
|
||||
}
|
||||
|
||||
interface SchemaField extends schema.SchemaField{} // merge
|
||||
declare class SchemaField implements schema.SchemaField {
|
||||
constructor(data?: Partial<schema.SchemaField>)
|
||||
}
|
||||
|
||||
interface Mail extends mailer.Message{} // merge
|
||||
declare class Mail implements mailer.Message {
|
||||
constructor(message?: Partial<mailer.Message>)
|
||||
}
|
||||
|
||||
interface ValidationError extends ozzo_validation.Error{} // merge
|
||||
declare class ValidationError implements ozzo_validation.Error {
|
||||
constructor(code?: number, message?: string)
|
||||
}
|
||||
|
||||
interface Dao extends daos.Dao{} // merge
|
||||
declare class Dao implements daos.Dao {
|
||||
constructor(concurrentDB?: dbx.Builder, nonconcurrentDB?: dbx.Builder)
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// dbxBinds
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
declare namespace $dbx {
|
||||
/**
|
||||
* {@inheritDoc dbx.HashExp}
|
||||
*/
|
||||
export function hashExp(pairs: { [key:string]: any }): dbx.Expression
|
||||
|
||||
let _in: dbx._in
|
||||
export { _in as in }
|
||||
|
||||
export let exp: dbx.newExp
|
||||
export let not: dbx.not
|
||||
export let and: dbx.and
|
||||
export let or: dbx.or
|
||||
export let notIn: dbx.notIn
|
||||
export let like: dbx.like
|
||||
export let orLike: dbx.orLike
|
||||
export let notLike: dbx.notLike
|
||||
export let orNotLike: dbx.orNotLike
|
||||
export let exists: dbx.exists
|
||||
export let notExists: dbx.notExists
|
||||
export let between: dbx.between
|
||||
export let notBetween: dbx.notBetween
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// tokensBinds
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
declare namespace $tokens {
|
||||
let adminAuthToken: tokens.newAdminAuthToken
|
||||
let adminResetPasswordToken: tokens.newAdminResetPasswordToken
|
||||
let adminFileToken: tokens.newAdminFileToken
|
||||
let recordAuthToken: tokens.newRecordAuthToken
|
||||
let recordVerifyToken: tokens.newRecordVerifyToken
|
||||
let recordResetPasswordToken: tokens.newRecordResetPasswordToken
|
||||
let recordChangeEmailToken: tokens.newRecordChangeEmailToken
|
||||
let recordFileToken: tokens.newRecordFileToken
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// securityBinds
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
declare namespace $security {
|
||||
let randomString: security.randomString
|
||||
let randomStringWithAlphabet: security.randomStringWithAlphabet
|
||||
let pseudorandomString: security.pseudorandomString
|
||||
let pseudorandomStringWithAlphabet: security.pseudorandomStringWithAlphabet
|
||||
let parseUnverifiedToken: security.parseUnverifiedJWT
|
||||
let parseToken: security.parseJWT
|
||||
let createToken: security.newToken
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// filesystemBinds
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
declare namespace $filesystem {
|
||||
let fileFromPath: filesystem.newFileFromPath
|
||||
let fileFromBytes: filesystem.newFileFromBytes
|
||||
let fileFromMultipart: filesystem.newFileFromMultipart
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// formsBinds
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
interface AdminLoginForm extends forms.AdminLogin{} // merge
|
||||
declare class AdminLoginForm implements forms.AdminLogin {
|
||||
constructor(app: core.App)
|
||||
}
|
||||
|
||||
interface AdminPasswordResetConfirmForm extends forms.AdminPasswordResetConfirm{} // merge
|
||||
declare class AdminPasswordResetConfirmForm implements forms.AdminPasswordResetConfirm {
|
||||
constructor(app: core.App)
|
||||
}
|
||||
|
||||
interface AdminPasswordResetRequestForm extends forms.AdminPasswordResetRequest{} // merge
|
||||
declare class AdminPasswordResetRequestForm implements forms.AdminPasswordResetRequest {
|
||||
constructor(app: core.App)
|
||||
}
|
||||
|
||||
interface AdminUpsertForm extends forms.AdminUpsert{} // merge
|
||||
declare class AdminUpsertForm implements forms.AdminUpsert {
|
||||
constructor(app: core.App, admin: models.Admin)
|
||||
}
|
||||
|
||||
interface AppleClientSecretCreateForm extends forms.AppleClientSecretCreate{} // merge
|
||||
declare class AppleClientSecretCreateForm implements forms.AppleClientSecretCreate {
|
||||
constructor(app: core.App)
|
||||
}
|
||||
|
||||
interface CollectionUpsertForm extends forms.CollectionUpsert{} // merge
|
||||
declare class CollectionUpsertForm implements forms.CollectionUpsert {
|
||||
constructor(app: core.App, collection: models.Collection)
|
||||
}
|
||||
|
||||
interface CollectionsImportForm extends forms.CollectionsImport{} // merge
|
||||
declare class CollectionsImportForm implements forms.CollectionsImport {
|
||||
constructor(app: core.App)
|
||||
}
|
||||
|
||||
interface RealtimeSubscribeForm extends forms.RealtimeSubscribe{} // merge
|
||||
declare class RealtimeSubscribeForm implements forms.RealtimeSubscribe {}
|
||||
|
||||
interface RecordEmailChangeConfirmForm extends forms.RecordEmailChangeConfirm{} // merge
|
||||
declare class RecordEmailChangeConfirmForm implements forms.RecordEmailChangeConfirm {
|
||||
constructor(app: core.App, collection: models.Collection)
|
||||
}
|
||||
|
||||
interface RecordEmailChangeRequestForm extends forms.RecordEmailChangeRequest{} // merge
|
||||
declare class RecordEmailChangeRequestForm implements forms.RecordEmailChangeRequest {
|
||||
constructor(app: core.App, record: models.Record)
|
||||
}
|
||||
|
||||
interface RecordOAuth2LoginForm extends forms.RecordOAuth2Login{} // merge
|
||||
declare class RecordOAuth2LoginForm implements forms.RecordOAuth2Login {
|
||||
constructor(app: core.App, collection: models.Collection, optAuthRecord?: models.Record)
|
||||
}
|
||||
|
||||
interface RecordPasswordLoginForm extends forms.RecordPasswordLogin{} // merge
|
||||
declare class RecordPasswordLoginForm implements forms.RecordPasswordLogin {
|
||||
constructor(app: core.App, collection: models.Collection)
|
||||
}
|
||||
|
||||
interface RecordPasswordResetConfirmForm extends forms.RecordPasswordResetConfirm{} // merge
|
||||
declare class RecordPasswordResetConfirmForm implements forms.RecordPasswordResetConfirm {
|
||||
constructor(app: core.App, collection: models.Collection)
|
||||
}
|
||||
|
||||
interface RecordPasswordResetRequestForm extends forms.RecordPasswordResetRequest{} // merge
|
||||
declare class RecordPasswordResetRequestForm implements forms.RecordPasswordResetRequest {
|
||||
constructor(app: core.App, collection: models.Collection)
|
||||
}
|
||||
|
||||
interface RecordUpsertForm extends forms.RecordUpsert{} // merge
|
||||
declare class RecordUpsertForm implements forms.RecordUpsert {
|
||||
constructor(app: core.App, record: models.Record)
|
||||
}
|
||||
|
||||
interface RecordVerificationConfirmForm extends forms.RecordVerificationConfirm{} // merge
|
||||
declare class RecordVerificationConfirmForm implements forms.RecordVerificationConfirm {
|
||||
constructor(app: core.App, collection: models.Collection)
|
||||
}
|
||||
|
||||
interface RecordVerificationRequestForm extends forms.RecordVerificationRequest{} // merge
|
||||
declare class RecordVerificationRequestForm implements forms.RecordVerificationRequest {
|
||||
constructor(app: core.App, collection: models.Collection)
|
||||
}
|
||||
|
||||
interface SettingsUpsertForm extends forms.SettingsUpsert{} // merge
|
||||
declare class SettingsUpsertForm implements forms.SettingsUpsert {
|
||||
constructor(app: core.App)
|
||||
}
|
||||
|
||||
interface TestEmailSendForm extends forms.TestEmailSend{} // merge
|
||||
declare class TestEmailSendForm implements forms.TestEmailSend {
|
||||
constructor(app: core.App)
|
||||
}
|
||||
|
||||
interface TestS3FilesystemForm extends forms.TestS3Filesystem{} // merge
|
||||
declare class TestS3FilesystemForm implements forms.TestS3Filesystem {
|
||||
constructor(app: core.App)
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// apisBinds
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
interface Route extends echo.Route{} // merge
|
||||
declare class Route implements echo.Route {
|
||||
constructor(data?: Partial<echo.Route>)
|
||||
}
|
||||
|
||||
interface ApiError extends apis.ApiError{} // merge
|
||||
declare class ApiError implements apis.ApiError {
|
||||
constructor(status?: number, message?: string, data?: any)
|
||||
}
|
||||
|
||||
declare namespace $apis {
|
||||
let requireRecordAuth: apis.requireRecordAuth
|
||||
let requireSameContextRecordAuth: apis.requireSameContextRecordAuth
|
||||
let requireAdminAuth: apis.requireAdminAuth
|
||||
let requireAdminAuthOnlyIfAny: apis.requireAdminAuthOnlyIfAny
|
||||
let requireAdminOrRecordAuth: apis.requireAdminOrRecordAuth
|
||||
let requireAdminOrOwnerAuth: apis.requireAdminOrOwnerAuth
|
||||
let activityLogger: apis.activityLogger
|
||||
let requestData: apis.requestData
|
||||
let recordAuthResponse: apis.recordAuthResponse
|
||||
let enrichRecord: apis.enrichRecord
|
||||
let enrichRecords: apis.enrichRecords
|
||||
let notFoundError: apis.newNotFoundError
|
||||
let badRequestError: apis.newBadRequestError
|
||||
let forbiddenError: apis.newForbiddenError
|
||||
let unauthorizedError: apis.newUnauthorizedError
|
||||
}
|
||||
`
|
||||
|
||||
func main() {
|
||||
mapper := &jsvm.FieldMapper{}
|
||||
|
||||
gen := tygoja.New(tygoja.Config{
|
||||
Packages: map[string][]string{
|
||||
"github.com/go-ozzo/ozzo-validation/v4": {"Error"},
|
||||
"github.com/pocketbase/dbx": {"*"},
|
||||
"github.com/pocketbase/pocketbase/tools/security": {"*"},
|
||||
"github.com/pocketbase/pocketbase/tools/filesystem": {"*"},
|
||||
"github.com/pocketbase/pocketbase/tokens": {"*"},
|
||||
"github.com/pocketbase/pocketbase/apis": {"*"},
|
||||
"github.com/pocketbase/pocketbase/forms": {"*"},
|
||||
"github.com/pocketbase/pocketbase/core": {"*"},
|
||||
},
|
||||
FieldNameFormatter: func(s string) string {
|
||||
return mapper.FieldName(nil, reflect.StructField{Name: s})
|
||||
},
|
||||
MethodNameFormatter: func(s string) string {
|
||||
return mapper.MethodName(nil, reflect.Method{Name: s})
|
||||
},
|
||||
Indent: " ", // use only a single space to reduce slight the size
|
||||
WithPackageFunctions: true,
|
||||
Heading: heading,
|
||||
})
|
||||
|
||||
result, err := gen.Generate()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
if err := os.WriteFile("./generated/types.d.ts", []byte(result), 0644); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
6
plugins/jsvm/internal/docs/generated/embed.go
Normal file
6
plugins/jsvm/internal/docs/generated/embed.go
Normal file
@@ -0,0 +1,6 @@
|
||||
package generated
|
||||
|
||||
import "embed"
|
||||
|
||||
//go:embed types.d.ts
|
||||
var Types embed.FS
|
||||
19932
plugins/jsvm/internal/docs/generated/types.d.ts
vendored
Normal file
19932
plugins/jsvm/internal/docs/generated/types.d.ts
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user