diff --git a/packages/md-aggregate/cli.mjs b/packages/md-aggregate/cli.mjs index 43d2c2de..192c2d96 100644 --- a/packages/md-aggregate/cli.mjs +++ b/packages/md-aggregate/cli.mjs @@ -1,5 +1,6 @@ #!/usr/bin/env node import arg from "arg"; +import escapeStringRegexp from "escape-string-regexp"; import { readFile, writeFile } from "fs/promises"; import { parse, resolve } from "path"; @@ -47,9 +48,8 @@ export const cli = async (rawArgv) => { .split("\n") .map((e) => e.replace(/^#/g, "##")); - // TODO: escape regexp startPattern // TODO: handle \r\n - const matchStartPattern = `\n${lines[0]}$`; + const matchStartPattern = `\n${escapeStringRegexp(lines[0])}$`; const eofPattern = "$(?![\\r\\n])"; const sectionStartPattern = `\n##? `; @@ -67,7 +67,7 @@ export const cli = async (rawArgv) => { if (!args["--write"]) return console.log(dstContent); await writeFile(resolve(dst), dstContent); - + console.log(resolve(dst)); }; diff --git a/packages/md-aggregate/package.json b/packages/md-aggregate/package.json index 8d769ae1..666107e9 100644 --- a/packages/md-aggregate/package.json +++ b/packages/md-aggregate/package.json @@ -9,7 +9,8 @@ "prepack": "prettier -w CHANGELOG.md && md-aggregate CHANGELOG.md README.md -w" }, "dependencies": { - "arg": "^5.0.1" + "arg": "^5.0.1", + "escape-string-regexp": "^5.0.0" }, "publishConfig": { "access": "public" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 26f6b71f..10651996 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,8 +52,10 @@ importers: packages/md-aggregate: specifiers: arg: ^5.0.1 + escape-string-regexp: ^5.0.0 dependencies: arg: 5.0.1 + escape-string-regexp: 5.0.0 packages/sno-mongo-ku: specifiers: @@ -4080,6 +4082,11 @@ packages: engines: {node: '>=10'} dev: true + /escape-string-regexp/5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: false + /eslint-config-airbnb-base/15.0.0_6e04a54c7bcd7530b1a4c2da0aa486b1: resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} engines: {node: ^10.12.0 || >=12.0.0}