├── .all-contributorsrc ├── .editorconfig ├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .npmrc ├── .vscode └── settings.json ├── CHANGELOG.md ├── LICENSE ├── README.md ├── eslint.config.mjs ├── package.json ├── playground ├── app.vue ├── components │ └── ExperimentalFeature.vue ├── feature-flags.config.ts ├── nuxt.config.ts ├── package.json ├── pnpm-lock.yaml ├── server │ ├── api │ │ └── dashboard.get.ts │ └── tsconfig.json └── tsconfig.json ├── pnpm-lock.yaml ├── src ├── build.ts ├── module.ts ├── runtime │ ├── app │ │ ├── composables │ │ │ └── feature-flags.ts │ │ └── plugins │ │ │ ├── feature-flag.client.ts │ │ │ └── feature-flag.server.ts │ ├── feature-flags.config.ts │ └── server │ │ ├── api │ │ └── feature-flags.get.ts │ │ ├── handlers │ │ └── feature-flags.ts │ │ ├── tsconfig.json │ │ └── utils │ │ ├── feature-flags.ts │ │ ├── validation.ts │ │ └── variant-assignment.ts ├── types │ ├── feature-flags.ts │ └── index.ts └── utils │ └── logger.ts ├── test ├── mocks │ ├── config.ts │ ├── imports.ts │ └── types.ts └── unit │ ├── build-validation.test.ts │ ├── config-file-integration.test.ts │ ├── config-inline-equivalence.test.ts │ ├── context-evaluation.test.ts │ ├── development-mode-loading.test.ts │ ├── error-message-clarity.test.ts │ ├── feature-flags.composable.test.ts │ ├── feature-flags.server.test.ts │ ├── flag-loading-observability.test.ts │ ├── flag-validation.test.ts │ ├── hmr-reload-cycle.test.ts │ ├── integration.test.ts │ ├── invalid-path-error.test.ts │ ├── is-feature-enabled.test.ts │ ├── module.test.ts │ ├── path-resolution.test.ts │ ├── production-mode-persistence.test.ts │ ├── validation.test.ts │ ├── variant-assignment-new.test.ts │ ├── variant-assignment.test.ts │ └── variant-utils.test.ts ├── tsconfig.json └── vitest.config.ts /.all-contributorsrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/.all-contributorsrc -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/.gitignore -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | shamefully-hoist=true 2 | strict-peer-dependencies=false 3 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint.experimental.useFlatConfig": true 3 | } 4 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/README.md -------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/eslint.config.mjs -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/package.json -------------------------------------------------------------------------------- /playground/app.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/playground/app.vue -------------------------------------------------------------------------------- /playground/components/ExperimentalFeature.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/playground/components/ExperimentalFeature.vue -------------------------------------------------------------------------------- /playground/feature-flags.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/playground/feature-flags.config.ts -------------------------------------------------------------------------------- /playground/nuxt.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/playground/nuxt.config.ts -------------------------------------------------------------------------------- /playground/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/playground/package.json -------------------------------------------------------------------------------- /playground/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/playground/pnpm-lock.yaml -------------------------------------------------------------------------------- /playground/server/api/dashboard.get.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/playground/server/api/dashboard.get.ts -------------------------------------------------------------------------------- /playground/server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../.nuxt/tsconfig.server.json" 3 | } 4 | -------------------------------------------------------------------------------- /playground/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./.nuxt/tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/build.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/src/build.ts -------------------------------------------------------------------------------- /src/module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/src/module.ts -------------------------------------------------------------------------------- /src/runtime/app/composables/feature-flags.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/src/runtime/app/composables/feature-flags.ts -------------------------------------------------------------------------------- /src/runtime/app/plugins/feature-flag.client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/src/runtime/app/plugins/feature-flag.client.ts -------------------------------------------------------------------------------- /src/runtime/app/plugins/feature-flag.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/src/runtime/app/plugins/feature-flag.server.ts -------------------------------------------------------------------------------- /src/runtime/feature-flags.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/src/runtime/feature-flags.config.ts -------------------------------------------------------------------------------- /src/runtime/server/api/feature-flags.get.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/src/runtime/server/api/feature-flags.get.ts -------------------------------------------------------------------------------- /src/runtime/server/handlers/feature-flags.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/src/runtime/server/handlers/feature-flags.ts -------------------------------------------------------------------------------- /src/runtime/server/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/src/runtime/server/tsconfig.json -------------------------------------------------------------------------------- /src/runtime/server/utils/feature-flags.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/src/runtime/server/utils/feature-flags.ts -------------------------------------------------------------------------------- /src/runtime/server/utils/validation.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/src/runtime/server/utils/validation.ts -------------------------------------------------------------------------------- /src/runtime/server/utils/variant-assignment.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/src/runtime/server/utils/variant-assignment.ts -------------------------------------------------------------------------------- /src/types/feature-flags.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/src/types/feature-flags.ts -------------------------------------------------------------------------------- /src/types/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/src/types/index.ts -------------------------------------------------------------------------------- /src/utils/logger.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/src/utils/logger.ts -------------------------------------------------------------------------------- /test/mocks/config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/mocks/config.ts -------------------------------------------------------------------------------- /test/mocks/imports.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/mocks/imports.ts -------------------------------------------------------------------------------- /test/mocks/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/mocks/types.ts -------------------------------------------------------------------------------- /test/unit/build-validation.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/build-validation.test.ts -------------------------------------------------------------------------------- /test/unit/config-file-integration.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/config-file-integration.test.ts -------------------------------------------------------------------------------- /test/unit/config-inline-equivalence.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/config-inline-equivalence.test.ts -------------------------------------------------------------------------------- /test/unit/context-evaluation.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/context-evaluation.test.ts -------------------------------------------------------------------------------- /test/unit/development-mode-loading.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/development-mode-loading.test.ts -------------------------------------------------------------------------------- /test/unit/error-message-clarity.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/error-message-clarity.test.ts -------------------------------------------------------------------------------- /test/unit/feature-flags.composable.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/feature-flags.composable.test.ts -------------------------------------------------------------------------------- /test/unit/feature-flags.server.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/feature-flags.server.test.ts -------------------------------------------------------------------------------- /test/unit/flag-loading-observability.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/flag-loading-observability.test.ts -------------------------------------------------------------------------------- /test/unit/flag-validation.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/flag-validation.test.ts -------------------------------------------------------------------------------- /test/unit/hmr-reload-cycle.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/hmr-reload-cycle.test.ts -------------------------------------------------------------------------------- /test/unit/integration.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/integration.test.ts -------------------------------------------------------------------------------- /test/unit/invalid-path-error.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/invalid-path-error.test.ts -------------------------------------------------------------------------------- /test/unit/is-feature-enabled.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/is-feature-enabled.test.ts -------------------------------------------------------------------------------- /test/unit/module.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/module.test.ts -------------------------------------------------------------------------------- /test/unit/path-resolution.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/path-resolution.test.ts -------------------------------------------------------------------------------- /test/unit/production-mode-persistence.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/production-mode-persistence.test.ts -------------------------------------------------------------------------------- /test/unit/validation.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/validation.test.ts -------------------------------------------------------------------------------- /test/unit/variant-assignment-new.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/variant-assignment-new.test.ts -------------------------------------------------------------------------------- /test/unit/variant-assignment.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/variant-assignment.test.ts -------------------------------------------------------------------------------- /test/unit/variant-utils.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/test/unit/variant-utils.test.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/tsconfig.json -------------------------------------------------------------------------------- /vitest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roberthgnz/nuxt-feature-flags/HEAD/vitest.config.ts --------------------------------------------------------------------------------