]> git.ipfire.org Git - thirdparty/vuejs/pinia.git/commitdiff
docs: create local prepend yaml
authorEduardo San Martin Morote <posva13@gmail.com>
Tue, 18 Apr 2023 09:00:48 +0000 (11:00 +0200)
committerEduardo San Martin Morote <posva13@gmail.com>
Tue, 18 Apr 2023 09:00:48 +0000 (11:00 +0200)
package.json
packages/docs/package.json
packages/docs/typedoc-markdown.js
packages/size-check/rollup.config.mjs [moved from packages/size-check/rollup.config.js with 76% similarity]
rollup.config.mjs [moved from rollup.config.js with 100% similarity]

index fafc9077e9c0d03b4e9cfd9b79bd71c3204da9a2..4c04be759a9ec7d8d21e6cdf40df16e9405f45c9 100644 (file)
     "docs:api": "pnpm run --filter ./packages/docs -r docs:api"
   },
   "devDependencies": {
-    "@rollup/plugin-alias": "^3.1.9",
-    "@rollup/plugin-commonjs": "^22.0.2",
-    "@rollup/plugin-node-resolve": "^13.3.0",
-    "@rollup/plugin-replace": "^4.0.0",
-    "@rollup/plugin-terser": "^0.2.1",
+    "@rollup/plugin-alias": "^5.0.0",
+    "@rollup/plugin-commonjs": "^24.1.0",
+    "@rollup/plugin-node-resolve": "^15.0.2",
+    "@rollup/plugin-replace": "^5.0.2",
+    "@rollup/plugin-terser": "^0.4.1",
     "@types/lodash.kebabcase": "^4.1.7",
     "@types/node": "^18.15.11",
-    "@vitest/coverage-c8": "^0.29.8",
+    "@vitest/coverage-c8": "^0.30.1",
     "@vue/compiler-sfc": "^3.2.47",
     "@vue/server-renderer": "^3.2.47",
     "c8": "^7.13.0",
     "execa": "^6.1.0",
     "expect": "^28.1.3",
     "globby": "^12.2.0",
-    "happy-dom": "^9.1.9",
+    "happy-dom": "^9.8.1",
     "lint-staged": "^13.2.1",
     "lodash.kebabcase": "^4.1.1",
     "minimist": "^1.2.8",
     "p-series": "^3.0.0",
     "pascalcase": "^1.0.0",
     "prettier": "^2.8.7",
-    "rimraf": "^4.4.1",
-    "rollup": "^2.79.1",
-    "rollup-plugin-typescript2": "^0.32.1",
-    "semver": "^7.3.8",
+    "rimraf": "^5.0.0",
+    "rollup": "^3.20.5",
+    "rollup-plugin-typescript2": "^0.34.1",
+    "semver": "^7.5.0",
     "typedoc": "^0.23.28",
     "typedoc-plugin-markdown": "^3.14.0",
     "typescript": "^4.9.4",
-    "vitest": "^0.29.8",
+    "vitest": "^0.30.1",
     "vue": "^3.2.47",
     "yorkie": "^2.0.0"
   },
index abfd0b5fc61714a9ea18b37afab5e16d957fcb50..b50b4e50eea9f7a50c8dd44dea0fd929e054a202 100644 (file)
@@ -9,8 +9,8 @@
   },
   "dependencies": {
     "@chenfengyuan/vue-countdown": "^2.1.0",
-    "@vueuse/core": "^9.13.0",
+    "@vueuse/core": "^10.0.2",
     "pinia": "workspace:^2.0.18",
-    "vitepress": "1.0.0-alpha.65"
+    "vitepress": "1.0.0-alpha.72"
   }
 }
index 3f7df9d2e6d4e25c50d9a979c43f2cf50efcf901..28723765647986dda8e0f87f42c029f8cf22125d 100644 (file)
@@ -2,9 +2,6 @@ const _fs = require('fs')
 const path = require('path')
 const TypeDoc = require('typedoc')
 const { PageEvent } = TypeDoc
-const {
-  prependYAML,
-} = require('typedoc-plugin-markdown/dist/utils/front-matter')
 
 const fs = _fs.promises
 
@@ -99,6 +96,8 @@ exports.createTypeDocApp = function createTypeDocApp(config = {}) {
   )
 
   async function serve() {
+    // TODO: in 0.24
+    // app.bootstrapWithPlugins(options)
     app.bootstrap(options)
     app.convertAndWatch(handleProject)
   }
@@ -110,6 +109,7 @@ exports.createTypeDocApp = function createTypeDocApp(config = {}) {
     ) {
       await fs.rm(options.out, { recursive: true })
     }
+    // TODO: same as above
     app.bootstrap(options)
     const project = app.convert()
     return handleProject(project)
@@ -154,3 +154,44 @@ async function exists(path) {
     return false
   }
 }
+
+/**
+ * @typedef {Record<string, string | number | boolean>} FrontMatterVars
+ */
+
+/**
+ * Prepends YAML block to a string
+ * @param {string} contents - string to prepend to
+ * @param {FrontMattersVars} vars - object of required front matter variables
+ */
+function prependYAML(contents, vars) {
+  return contents
+    .replace(/^/, toYAML(vars) + '\n\n')
+    .replace(/[\r\n]{3,}/g, '\n\n')
+}
+
+/**
+ * Converts YAML object to a YAML string
+ * @param {FrontMatterVars} vars
+ */
+function toYAML(vars) {
+  const yaml = `---
+${Object.entries(vars)
+  .map(
+    ([key, value]) =>
+      `${key}: ${
+        typeof value === 'string' ? `"${escapeDoubleQuotes(value)}"` : value
+      }`
+  )
+  .join('\n')}
+---`
+  return yaml
+}
+
+/**
+ * Escapes double quotes in a string
+ * @param {string} str - string to escape
+ */
+function escapeDoubleQuotes(str) {
+  return str.replace(/"/g, '\\"')
+}
similarity index 76%
rename from packages/size-check/rollup.config.js
rename to packages/size-check/rollup.config.mjs
index 9509befa18c3d64f2df6e94676cee8db83e50c8a..2096ca6a4b2a908aeb1590facf1c151a0a486293 100644 (file)
@@ -1,10 +1,14 @@
-import path from 'path'
+import { dirname, resolve } from 'node:path'
+import { fileURLToPath } from 'node:url'
 import ts from 'rollup-plugin-typescript2'
 import replace from '@rollup/plugin-replace'
-import resolve from '@rollup/plugin-node-resolve'
+import nodeResolve from '@rollup/plugin-node-resolve'
 import commonjs from '@rollup/plugin-commonjs'
 import terser from '@rollup/plugin-terser'
 
+const __filename = fileURLToPath(import.meta.url)
+const __dirname = dirname(__filename)
+
 /** @type {import('rollup').RollupOptions[]} */
 const config = ['pinia'].map(createConfig)
 
@@ -19,10 +23,10 @@ function createConfig(file) {
   return {
     external: ['vue'],
     output: {
-      file: path.resolve(__dirname, `./dist/${file}.js`),
+      file: resolve(__dirname, `./dist/${file}.js`),
       format: 'es',
     },
-    input: path.resolve(__dirname, `./src/${file}.js`),
+    input: resolve(__dirname, `./src/${file}.js`),
     plugins: [
       replace({
         preventAssignment: true,
@@ -43,8 +47,8 @@ function createConfig(file) {
       }),
       ts({
         check: false,
-        tsconfig: path.resolve(__dirname, '../../tsconfig.json'),
-        cacheRoot: path.resolve(__dirname, '../../node_modules/.rts2_cache'),
+        tsconfig: resolve(__dirname, '../../tsconfig.json'),
+        cacheRoot: resolve(__dirname, '../../node_modules/.rts2_cache'),
         tsconfigOverride: {
           compilerOptions: {
             sourceMap: false,
@@ -54,7 +58,7 @@ function createConfig(file) {
           exclude: ['__tests__', 'test-dts'],
         },
       }),
-      resolve(),
+      nodeResolve(),
       commonjs(),
       terser({
         format: {
similarity index 100%
rename from rollup.config.js
rename to rollup.config.mjs