Install scaffolding for Peggy grammar generator

This commit is contained in:
2025-01-14 14:27:53 +01:00
parent fc48be9407
commit 02059d6dc1
8 changed files with 80 additions and 7 deletions

2
.gitignore vendored
View File

@@ -144,3 +144,5 @@ dist
.svelte-kit
# End of https://www.toptal.com/developers/gitignore/api/node
src/generated

View File

@@ -4,7 +4,6 @@
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
flake-utils.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = {

1
grammar/task.pegjs Normal file
View File

@@ -0,0 +1 @@
start = ('a' / 'b')+

62
package-lock.json generated
View File

@@ -8,6 +8,9 @@
"name": "obsidian-tasks-reminder",
"version": "0.0.1",
"license": "ISC",
"dependencies": {
"peggy": "^4.2.0"
},
"bin": {
"obsidian-tasks-reminder": "dist/index.js"
},
@@ -464,6 +467,18 @@
"node": ">= 8"
}
},
"node_modules/@peggyjs/from-mem": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/@peggyjs/from-mem/-/from-mem-1.3.5.tgz",
"integrity": "sha512-oRyzXE7nirAn+5yYjCdWQHg3EG2XXcYRoYNOK8Quqnmm+9FyK/2YWVunwudlYl++M3xY+gIAdf0vAYS+p0nKfQ==",
"license": "MIT",
"dependencies": {
"semver": "7.6.3"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@types/node": {
"version": "22.10.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.6.tgz",
@@ -828,6 +843,32 @@
"node": ">=8"
}
},
"node_modules/peggy": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/peggy/-/peggy-4.2.0.tgz",
"integrity": "sha512-ZjzyJYY8NqW8JOZr2PbS/J0UH/hnfGALxSDsBUVQg5Y/I+ZaPuGeBJ7EclUX2RvWjhlsi4pnuL1C/K/3u+cDeg==",
"license": "MIT",
"dependencies": {
"@peggyjs/from-mem": "1.3.5",
"commander": "^12.1.0",
"source-map-generator": "0.8.0"
},
"bin": {
"peggy": "bin/peggy.js"
},
"engines": {
"node": ">=18"
}
},
"node_modules/peggy/node_modules/commander": {
"version": "12.1.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
"integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
@@ -943,6 +984,18 @@
"queue-microtask": "^1.2.2"
}
},
"node_modules/semver": {
"version": "7.6.3",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
@@ -953,6 +1006,15 @@
"node": ">=8"
}
},
"node_modules/source-map-generator": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/source-map-generator/-/source-map-generator-0.8.0.tgz",
"integrity": "sha512-psgxdGMwl5MZM9S3FWee4EgsEaIjahYV5AzGnwUvPhWeITz/j6rKpysQHlQ4USdxvINlb8lKfWGIXwfkrgtqkA==",
"license": "BSD-3-Clause",
"engines": {
"node": ">= 10"
}
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",

View File

@@ -4,8 +4,9 @@
"description": "The utility which scans Obsidian Tasks and triggers proper notification about them",
"main": "index.ts",
"scripts": {
"start": "tsx src/index.ts",
"build": "tsc && tsc-alias"
"grammar": "peggy grammar/task.pegjs --dts -o src/generated/grammar/task.js",
"start": "npm run grammar && tsx src/index.ts",
"build": "npm run grammar && tsc && tsc-alias"
},
"author": "Bartłomiej Pluta <noreply.git@mx.bartlomiejpluta.com>",
"license": "ISC",
@@ -19,5 +20,6 @@
"typescript": "^5.6.3"
},
"dependencies": {
"peggy": "^4.2.0"
}
}

View File

@@ -1,7 +1,11 @@
{buildNpmPackage, ...}:
{
buildNpmPackage,
lib,
...
}:
buildNpmPackage {
pname = "obsidian-tasks-reminder";
version = "0.0.1";
src = ./.;
npmDepsHash = "sha256-aUNhG2ntgUC14fQyad01nMoV2EY4gg3e6UvPOEhd8vU=";
npmDepsHash = "sha256-rhwGWuw/X7YGdPwIrgkIGukFNpAwpx/a6H3D/2cVP5Y=";
}

View File

@@ -1 +1,3 @@
console.log("Hello, world!");
import {parse} from "./generated/grammar/task";
console.log(parse("aabbabab"));

View File

@@ -4,6 +4,7 @@
"module": "commonjs",
"outDir": "./dist",
"rootDir": "./src",
"allowJs": true,
"strict": true,
"esModuleInterop": true,
"typeRoots": [