Skip to content
Merged
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
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,12 @@ jobs:

- run: pnpm dev:prepare

- name: πŸ§ͺ Test project
run: pnpm test

- name: πŸ›  Build project
run: pnpm build

- name: πŸ§ͺ Test project
run: pnpm test

- name: πŸ’ͺ Type check
run: pnpm test:types

Expand Down
4 changes: 2 additions & 2 deletions docs/content/4.advanced/1.custom-provider.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The runtime will receive a source, image modifiers and its provider options. It

```ts [providers/my-provider.ts]
import { joinURL } from 'ufo'
import { createOperationsGenerator, defineProvider } from '#image'
import { createOperationsGenerator, defineProvider } from '@nuxt/image/runtime'

const operationsGenerator = createOperationsGenerator()

Expand Down Expand Up @@ -66,7 +66,7 @@ export default defineNuxtConfig({
})
```

There are plenty of useful utilities that can be used to write providers by importing from `#image`. See [src/runtime/providers](https://github.com/nuxt/image/tree/main/src/runtime/providers) for more info.
There are plenty of useful utilities that can be used to write providers by importing from `@nuxt/image/runtime`. See [src/runtime/providers](https://github.com/nuxt/image/tree/main/src/runtime/providers) for more info.

### Usage
Set attribute `provider` as your custom provider name.
Expand Down
16 changes: 15 additions & 1 deletion docs/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
{
"extends": "./.nuxt/tsconfig.json"
"files": [],
"references": [
{
"path": "./.nuxt/tsconfig.app.json"
},
{
"path": "./.nuxt/tsconfig.server.json"
},
{
"path": "./.nuxt/tsconfig.shared.json"
},
{
"path": "./.nuxt/tsconfig.node.json"
}
]
}
2 changes: 1 addition & 1 deletion eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export default createConfigForNuxt({
},
dirs: {
src: [
'./playground',
'./playground/app',
'./docs',
'./example',
],
Expand Down
16 changes: 15 additions & 1 deletion example/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
{
"extends": "./.nuxt/tsconfig.json"
"files": [],
"references": [
{
"path": "./.nuxt/tsconfig.app.json"
},
{
"path": "./.nuxt/tsconfig.server.json"
},
{
"path": "./.nuxt/tsconfig.shared.json"
},
{
"path": "./.nuxt/tsconfig.node.json"
}
]
}
6 changes: 3 additions & 3 deletions knip.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@
},
"playground": {
"entry": [
"providers/custom/index.ts",
"{components,layouts,pages,plugins,server}/**",
"{app,error}.vue",
"app/providers/custom/index.ts",
"app/{components,layouts,pages,plugins,server}/**",
"app/{app,error}.vue",
"layers/**",
"*.ts"
]
Expand Down
7 changes: 6 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,18 @@
"sideEffects": false,
"type": "module",
"exports": {
".": "./dist/module.js"
".": "./dist/module.js",
"./runtime": "./dist/runtime/index.js",
"./runtime/providers/*": "./dist/runtime/providers/*.js"
},
"main": "./dist/module.js",
"typesVersions": {
"*": {
".": [
"./dist/module.d.ts"
],
"./runtime": [
"./dist/runtime/index.d.ts"
]
}
},
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { ImageProviders } from '@nuxt/image'

export interface Provider {
interface Provider {
name: keyof ImageProviders
samples: {
src: string
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import { joinURL } from 'ufo'
import { defineProvider } from '#image'
// this should normally be imported from '@nuxt/image/runtime'
// but we want to run this without building the package,
// which means supporting the stubbed `.ts` extension
import { defineProvider } from '../../../../dist/runtime'

export default defineProvider<{ baseURL?: string }>({
getImage: (src, { modifiers, baseURL = '/' }) => {
Expand Down
16 changes: 15 additions & 1 deletion playground/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
{
"extends": "./.nuxt/tsconfig.json"
"files": [],
"references": [
{
"path": "./.nuxt/tsconfig.app.json"
},
{
"path": "./.nuxt/tsconfig.server.json"
},
{
"path": "./.nuxt/tsconfig.shared.json"
},
{
"path": "./.nuxt/tsconfig.node.json"
}
]
}
26 changes: 3 additions & 23 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 1 addition & 6 deletions src/module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ ${BuiltInProviders.map(p => ` ${JSON.stringify(p)}: ReturnType<typeof
export {}
`
},
}, { nitro: true, nuxt: true })
}, { nitro: true, nuxt: true, node: true, shared: true })

// Run setup
for (const p of providers) {
Expand All @@ -116,11 +116,6 @@ ${BuiltInProviders.map(p => ` ${JSON.stringify(p)}: ReturnType<typeof
}
}

// Transpile and alias runtime
const runtimeDir = resolver.resolve('./runtime')
nuxt.options.alias['#image'] = runtimeDir
nuxt.options.build.transpile.push(runtimeDir)

addImports({
name: 'useImage',
from: resolver.resolve('runtime/composables'),
Expand Down
3 changes: 2 additions & 1 deletion src/runtime/providers/aliyun.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { joinURL, encodePath } from 'ufo'
import { defineProvider, createOperationsGenerator } from '#image'
import { createOperationsGenerator } from '../utils/index'
import { defineProvider } from '../utils/provider'
import { useRuntimeConfig } from '#imports'

const operationsGenerator = createOperationsGenerator({
Expand Down
3 changes: 2 additions & 1 deletion src/runtime/providers/awsAmplify.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { encodeQueryItem, joinURL } from 'ufo'
import { defineProvider, createOperationsGenerator } from '#image'
import { createOperationsGenerator } from '../utils/index'
import { defineProvider } from '../utils/provider'

const operationsGenerator = createOperationsGenerator({
keyMap: {
Expand Down
3 changes: 2 additions & 1 deletion src/runtime/providers/bunny.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { joinURL } from 'ufo'
import { defineProvider, createOperationsGenerator } from '#image'
import { createOperationsGenerator } from '../utils/index'
import { defineProvider } from '../utils/provider'

const operationsGenerator = createOperationsGenerator({
keyMap: {
Expand Down
3 changes: 2 additions & 1 deletion src/runtime/providers/caisy.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { joinURL } from 'ufo'
import { defineProvider, createOperationsGenerator } from '#image'
import { createOperationsGenerator } from '../utils/index'
import { defineProvider } from '../utils/provider'

const operationsGenerator = createOperationsGenerator({
keyMap: {
Expand Down
3 changes: 2 additions & 1 deletion src/runtime/providers/cloudflare.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { encodeQueryItem, joinURL } from 'ufo'
import { defineProvider, createOperationsGenerator } from '#image'
import { createOperationsGenerator } from '../utils/index'
import { defineProvider } from '../utils/provider'

const operationsGenerator = createOperationsGenerator({
keyMap: {
Expand Down
3 changes: 2 additions & 1 deletion src/runtime/providers/cloudimage.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { joinURL, hasProtocol } from 'ufo'
import { defineProvider, createOperationsGenerator } from '#image'
import { createOperationsGenerator } from '../utils/index'
import { defineProvider } from '../utils/provider'

const operationsGenerator = createOperationsGenerator({
keyMap: {
Expand Down
3 changes: 2 additions & 1 deletion src/runtime/providers/cloudinary.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { joinURL, encodePath } from 'ufo'
import { defu } from 'defu'
import type { ImageModifiers } from '@nuxt/image'
import { defineProvider, createOperationsGenerator } from '#image'
import { createOperationsGenerator } from '../utils/index'
import { defineProvider } from '../utils/provider'

export interface CloudinaryModifiers extends ImageModifiers {
format: string
Expand Down
3 changes: 2 additions & 1 deletion src/runtime/providers/contentful.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { withBase, parseURL } from 'ufo'
import { defineProvider, createOperationsGenerator } from '#image'
import { createOperationsGenerator } from '../utils/index'
import { defineProvider } from '../utils/provider'

// https://www.contentful.com/developers/docs/references/images-api/
const contentfulCDN = 'https://images.ctfassets.net'
Expand Down
3 changes: 2 additions & 1 deletion src/runtime/providers/directus.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { joinURL } from 'ufo'
import { defineProvider, createOperationsGenerator } from '#image'
import { createOperationsGenerator } from '../utils/index'
import { defineProvider } from '../utils/provider'

const operationsGenerator = createOperationsGenerator()

Expand Down
3 changes: 2 additions & 1 deletion src/runtime/providers/fastly.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { joinURL } from 'ufo'
import { defineProvider, createOperationsGenerator } from '#image'
import { createOperationsGenerator } from '../utils/index'
import { defineProvider } from '../utils/provider'

const operationsGenerator = createOperationsGenerator({
valueMap: {
Expand Down
3 changes: 2 additions & 1 deletion src/runtime/providers/filerobot.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { joinURL, hasProtocol } from 'ufo'
import { defineProvider, createOperationsGenerator } from '#image'
import { createOperationsGenerator } from '../utils/index'
import { defineProvider } from '../utils/provider'

const operationsGenerator = createOperationsGenerator({
keyMap: {
Expand Down
3 changes: 2 additions & 1 deletion src/runtime/providers/glide.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
// https://glide.thephpleague.com/2.0/api/quick-reference/

import { joinURL, encodePath, withBase } from 'ufo'
import { defineProvider, createOperationsGenerator } from '#image'
import { createOperationsGenerator } from '../utils/index'
import { defineProvider } from '../utils/provider'

const operationsGenerator = createOperationsGenerator({
keyMap: {
Expand Down
3 changes: 2 additions & 1 deletion src/runtime/providers/gumlet.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { joinURL } from 'ufo'
import { defineProvider, createOperationsGenerator } from '#image'
import { createOperationsGenerator } from '../utils/index'
import { defineProvider } from '../utils/provider'

const operationsGenerator = createOperationsGenerator({
keyMap: {
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/providers/hygraph.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { joinURL, parseURL, withTrailingSlash } from 'ufo'
import { defineProvider } from '#image'
import { defineProvider } from '../utils/provider'

type ImageOptimizations = {
width?: number
Expand Down
3 changes: 2 additions & 1 deletion src/runtime/providers/imageengine.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { joinURL, encodePath } from 'ufo'
import { defineProvider, createOperationsGenerator } from '#image'
import { createOperationsGenerator } from '../utils/index'
import { defineProvider } from '../utils/provider'

const operationsGenerator = createOperationsGenerator({
keyMap: {
Expand Down
3 changes: 2 additions & 1 deletion src/runtime/providers/imagekit.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { joinURL, withQuery, encodePath } from 'ufo'
import { defineProvider, createOperationsGenerator } from '#image'
import { createOperationsGenerator } from '../utils/index'
import { defineProvider } from '../utils/provider'

const operationsGenerator = createOperationsGenerator({
keyMap: {
Expand Down
3 changes: 2 additions & 1 deletion src/runtime/providers/imgix.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { joinURL } from 'ufo'
import { defineProvider, createOperationsGenerator } from '#image'
import { createOperationsGenerator } from '../utils/index'
import { defineProvider } from '../utils/provider'

export const operationsGenerator = createOperationsGenerator({
keyMap: {
Expand Down
Loading
Loading