Skip to content

Commit

Permalink
feat(types): add runtimeConfig types nuxt/typescript#368)
Browse files Browse the repository at this point in the history
Co-Authored-By: Kevin Marrec<kevin@marrec.io>
  • Loading branch information
pi0 committed Jun 18, 2020
1 parent 99432d5 commit 40ceb61
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 1 deletion.
3 changes: 3 additions & 0 deletions packages/types/app/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { IncomingMessage } from 'connect'
import Vue, { ComponentOptions } from 'vue'
import VueRouter, { Location, Route } from 'vue-router'
import { Store } from 'vuex'
import { NuxtRuntimeConfig } from '../config/runtime'

// augment typings of Vue.js
import './vue'
Expand All @@ -13,6 +14,8 @@ import './vuex'
type NuxtState = Record<string, any>

export interface Context {
$config: NuxtRuntimeConfig

app: NuxtAppOptions
base: string
/**
Expand Down
4 changes: 3 additions & 1 deletion packages/types/app/vue.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@
* Extends interfaces in Vue.js
*/

import Vue, { ComponentOptions } from 'vue'
import Vue from 'vue'
import { MetaInfo } from 'vue-meta'
import { Route } from 'vue-router'
import { Context, Middleware, Transition, NuxtApp } from './index'
import { NuxtRuntimeConfig } from '../config/runtime'

declare module 'vue/types/options' {
interface ComponentOptions<V extends Vue> {
Expand All @@ -28,6 +29,7 @@ declare module 'vue/types/options' {

declare module 'vue/types/vue' {
interface Vue {
$config: NuxtRuntimeConfig
$nuxt: NuxtApp
$fetch(): void
$fetchState: {
Expand Down
3 changes: 3 additions & 0 deletions packages/types/config/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import { NuxtOptionsModule } from './module'
import { NuxtOptionsPlugin } from './plugin'
import { NuxtOptionsRender } from './render'
import { NuxtOptionsRouter } from './router'
import { NuxtConfigurationRuntimeConfig } from './runtime'
import { NuxtOptionsServer } from './server'
import { NuxtOptionsServerMiddleware } from './server-middleware'
import { NuxtOptionsVueConfiguration } from './vue-configuration'
Expand Down Expand Up @@ -50,6 +51,8 @@ export interface NuxtOptions extends Record<string, any> {
modules: NuxtOptionsModule[]
modulesDir: string[]
plugins: NuxtOptionsPlugin[]
privateRuntimeConfig?: NuxtConfigurationRuntimeConfig
publicRuntimeConfig?: NuxtConfigurationRuntimeConfig
render: NuxtOptionsRender
rootDir: string
router: NuxtOptionsRouter
Expand Down
10 changes: 10 additions & 0 deletions packages/types/config/runtime.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/**
* NuxtConfigurationRuntimeConfig
* NuxtRuntimeConfig interface can be extended by users to enable intellisense on $config
*/

export interface NuxtRuntimeConfig {
[key: string]: any
}

export type NuxtConfigurationRuntimeConfig = NuxtRuntimeConfig | ((env: typeof process.env) => NuxtRuntimeConfig)

0 comments on commit 40ceb61

Please sign in to comment.