content icon indicating copy to clipboard operation
content copied to clipboard

Large strings in JSON files break type checking

Open sg-mon opened this issue 8 months ago • 0 comments

Environment

  • Operating System: MacOS Sequoia 15.1.1 (24B91)
  • Node Version: v20.11.0
  • Nuxt Version: 3.17.10
  • Package Manager: [email protected]

Version

v3

Reproduction

https://github.com/

Description

package.json

{
  "name": "nuxt-app",
  "private": true,
  "type": "module",
  "scripts": {
    "build": "nuxt build",
    "dev": "nuxt dev",
    "generate": "nuxt generate",
    "preview": "nuxt preview",
    "postinstall": "nuxt prepare"
  },
  "dependencies": {
    "@nuxt/content": "^3.5.1",
    "@nuxt/eslint": "^1.3.0",
    "@nuxt/fonts": "^0.11.2",
    "@nuxt/image": "^1.10.0",
    "@pinia/nuxt": "^0.11.0",
    "eslint": "^9.26.0",
    "nuxt": "^3.17.1",
    "pinia": "^3.0.2",
    "vue": "^3.5.13",
    "vue-router": "^4.5.1"
  }
}

nuxt.config.ts

// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
  compatibilityDate: "2024-11-01",
  devtools: { enabled: true },

  modules: [
    "@nuxt/content",
    "@nuxt/eslint",
    "@nuxt/fonts",
    "@nuxt/image",
    "@pinia/nuxt",
  ],
  content: {},
});

content.config.ts

import { defineCollection, defineContentConfig, z } from "@nuxt/content";

export default defineContentConfig({
  collections: {
    templates: defineCollection({
      type: "data",
      source: "templates/**",
      schema: z.object({
        id: z.string().nonempty(),
        blocks: z.array(z.string()),
      }),
    }),

    blocks: defineCollection({
      type: "data",
      source: "blocks/**",
      schema: z.object({
        id: z.string().nonempty(),
        html: z.string(),
        style: z.array(z.string()), // <- here is the problem
        script: z.array(z.string()),
      }),
    }),
  },
});
Image

My JSON file main-block-1.json

I get errors in terminal

 ERROR  [unhandledRejection] near "blocks": syntax error                                                                                                                                  9:51:58 AM

    at Database.exec (node_modules/better-sqlite3/lib/methods/wrappers.js:9:14)
    at Object.exec (node_modules/db0/dist/connectors/better-sqlite3.mjs:27:28)
    at Object.exec (node_modules/@nuxt/content/dist/module.mjs:284:10)
    at processCollectionItems (node_modules/@nuxt/content/dist/module.mjs:2732:8)
    at async node_modules/@nuxt/content/dist/module.mjs:2622:20
    at async initNuxt (node_modules/nuxt/dist/shared/nuxt.zDGA4d3b.mjs:5839:3)
    at async NuxtDevServer._load (node_modules/@nuxt/cli/dist/chunks/dev2.mjs:183:5)
    at async NuxtDevServer.load (node_modules/@nuxt/cli/dist/chunks/dev2.mjs:111:7)
    at async NuxtDevServer.init (node_modules/@nuxt/cli/dist/chunks/dev2.mjs:106:5)
    at async Object.run (node_modules/@nuxt/cli/dist/chunks/dev-child.mjs:94:5)

 ERROR  [unhandledRejection] near "[]": syntax error                                                                                                                                      9:47:31 AM

    at Database.exec (node_modules/better-sqlite3/lib/methods/wrappers.js:9:14)
    at Object.exec (node_modules/db0/dist/connectors/better-sqlite3.mjs:27:28)
    at Object.exec (node_modules/@nuxt/content/dist/module.mjs:284:10)
    at node_modules/@nuxt/content/dist/module.mjs:1650:55
    at Array.map (<anonymous>)
    at Object.broadcast (node_modules/@nuxt/content/dist/module.mjs:1650:37)
    at async FSWatcher.onChange (node_modules/@nuxt/content/dist/module.mjs:1733:7)

Causes infinite nuxt restart. If I delete style[0] in main-block-1.json or comment style: z.array(z.string()) in content.config.ts there's no error, but I need type checking

Additional context

No response

Logs


sg-mon avatar May 04 '25 07:05 sg-mon