@vnodes/plugin 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # plugin
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build plugin` to build the library.
8
+
9
+ ## Running unit tests
10
+
11
+ Run `nx test plugin` to execute the unit tests via [Vitest](https://vitest.dev/).
@@ -0,0 +1,2 @@
1
+ export * from './project/project.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./project/project.js"), exports);
@@ -0,0 +1,24 @@
1
+ {
2
+ "jsc": {
3
+ "target": "esnext",
4
+ "parser": {
5
+ "syntax": "typescript",
6
+ "decorators": true,
7
+ "dynamicImport": true
8
+ },
9
+ "transform": {
10
+ "decoratorMetadata": true,
11
+ "legacyDecorator": true,
12
+ "useDefineForClassFields": true
13
+ },
14
+ "keepClassNames": true,
15
+ "externalHelpers": true,
16
+ "loose": false
17
+ },
18
+ "module": {
19
+ "type": "nodenext",
20
+ "noInterop": false
21
+ },
22
+ "sourceMaps": true,
23
+ "exclude": ["vitest.config.mts", ".*\\.spec.ts$", ".*\\.test.ts$", ".*.js$"]
24
+ }
@@ -0,0 +1,35 @@
1
+ ![Npm version](https://img.shields.io/npm/v/<%- projectName %>)
2
+ ![Npm downloads](https://img.shields.io/npm/dm/<%- projectName %>)
3
+ ![Build Status](https://img.shields.io/github/actions/workflow/status/<%- orgname %>/<%- reponame %>/ci.yml)
4
+ ![Doc Status](https://img.shields.io/github/actions/workflow/status/<%- orgname %>/<%- reponame %>/doc.yml)
5
+ ![Bundle size](https://img.shields.io/bundlephobia/min/<%- projectName %>)
6
+
7
+ <p align="center">
8
+ <img srcset="./assets/favicon.png, <%- homepage %>/<%- directory %>/assets/favicon.png" alt="Logo" width="200" height="200" style="border-radius: 100%"/>
9
+ </p>
10
+
11
+ ## <%- projectName %>
12
+
13
+ <%- projectName %>
14
+
15
+ ## Installation
16
+
17
+ ```bash
18
+ pnpm add <%- projectName %>
19
+ ```
20
+
21
+ ## 💖 Support My Work
22
+
23
+ If you find my open-source contributions or the **<%- projectName %>** project helpful, consider supporting my work. Your sponsorship helps me maintain these projects and explore new enterprise patterns.
24
+
25
+ [![CashApp](https://img.shields.io/badge/Sponsor%20me-%23EA4AAA.svg?style=for-the-badge&logo=github-sponsors&logoColor=white)](<%- funding %>)
26
+
27
+ ---
28
+
29
+ ## 🤝 Connect with Me
30
+
31
+ <p align="left">
32
+ <a href="mailto:<%- email %>">
33
+ <img src="https://img.shields.io/badge/Email-D14836?style=for-the-badge&logo=gmail&logoColor=white" />
34
+ </a>
35
+ </p>
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { readFileSync } from 'node:fs';
4
+ import { dirname, join } from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = dirname(__filename);
9
+ const packageJsonPath = join(__dirname, '..', 'package.json');
10
+ const packageJson = readFileSync(packageJsonPath, { encoding: 'utf-8' });
11
+ const version = JSON.parse(packageJson).version;
12
+ console.log(version);
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "<%- projectName %>",
3
+ "version": "<%- version %>",
4
+ "description": "<%- projectName %>",
5
+ "keywords": [
6
+ "<%- fileName %>"
7
+ ],
8
+ "author": {
9
+ "name": "<%- author %>",
10
+ "email": "<%- email %>",
11
+ "url": "<%- homepage %>"
12
+ },
13
+ "homepage": "<%- homepage %>/<%- directory %>",
14
+ "icon": "<%- homepage %>/<%- directory %>/assets/favicon.png",
15
+ "funding": [
16
+ "<%- funding %>"
17
+ ],
18
+ "bin": {
19
+ "version": "./bin/version.mjs"
20
+ },
21
+ "type": "module",
22
+ "main": "./dist/index.js",
23
+ "module": "./dist/index.js",
24
+ "types": "./dist/index.d.ts",
25
+ "exports": {
26
+ "./package.json": "./package.json",
27
+ ".": {
28
+ "@<%- reponame %>/source": "./src/index.ts",
29
+ "types": "./dist/index.d.ts",
30
+ "import": "./dist/index.js",
31
+ "default": "./dist/index.js"
32
+ }
33
+ },
34
+ "files": [
35
+ "dist",
36
+ "bin",
37
+ "!**/*.tsbuildinfo"
38
+ ],
39
+ "nx": {
40
+ "sourceRoot": "<%- directory %>/src",
41
+ "targets": {
42
+ "build": {},
43
+ "doc":{},
44
+ "lint":{}
45
+ }
46
+ },
47
+ "dependencies": {
48
+ "@swc/helpers": "~0.5.18"
49
+ }
50
+ }
@@ -0,0 +1 @@
1
+ export * from './lib/<%- fileName %>.js';
@@ -0,0 +1,7 @@
1
+ import { <%- propertyName %> } from './<%- fileName %>.js';
2
+
3
+ describe('<%- propertyName %>', () => {
4
+ it('should work', () => {
5
+ expect(<%- propertyName %>()).toEqual('<%- propertyName %>');
6
+ })
7
+ })
@@ -0,0 +1,3 @@
1
+ export function <%- propertyName %>(): string {
2
+ return '<%- propertyName %>';
3
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "files": [],
4
+ "include": [],
5
+ "references": [
6
+ {
7
+ "path": "./tsconfig.lib.json"
8
+ },
9
+ {
10
+ "path": "./tsconfig.spec.json"
11
+ }
12
+ ]
13
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "rootDir": "src",
5
+ "outDir": "dist",
6
+ "tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
7
+ "emitDeclarationOnly": true,
8
+ "forceConsistentCasingInFileNames": true,
9
+ "types": [
10
+ "node"
11
+ ]
12
+ },
13
+ "include": [
14
+ "src/**/*.ts"
15
+ ],
16
+ "references": [],
17
+ "exclude": [
18
+ "vitest.config.mts",
19
+ "src/**/*.spec.ts"
20
+ ]
21
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "outDir": "./out-tsc/vitest",
5
+ "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"],
6
+ "forceConsistentCasingInFileNames": true
7
+ },
8
+ "include": ["vitest.config.mts", "src/**/*.spec.ts"],
9
+ "references": [
10
+ {
11
+ "path": "./tsconfig.lib.json"
12
+ }
13
+ ]
14
+ }
@@ -0,0 +1,18 @@
1
+ import { defineConfig } from 'vitest/config';
2
+
3
+ export default defineConfig(() => ({
4
+ root: __dirname,
5
+ cacheDir: '../../node_modules/.vite/<%- directory %>',
6
+ test: {
7
+ name: '@<%- orgname %>/<%- fileName %>',
8
+ watch: false,
9
+ globals: true,
10
+ environment: 'node',
11
+ include: ['{src,tests}/**/*.{test,spec}.ts'],
12
+ reporters: ['default'],
13
+ coverage: {
14
+ reportsDirectory: './test-output/vitest/coverage',
15
+ provider: 'v8' as const,
16
+ },
17
+ },
18
+ }));
@@ -0,0 +1,24 @@
1
+ {
2
+ "jsc": {
3
+ "target": "esnext",
4
+ "parser": {
5
+ "syntax": "typescript",
6
+ "decorators": true,
7
+ "dynamicImport": true
8
+ },
9
+ "transform": {
10
+ "decoratorMetadata": true,
11
+ "legacyDecorator": true,
12
+ "useDefineForClassFields": true
13
+ },
14
+ "keepClassNames": true,
15
+ "externalHelpers": true,
16
+ "loose": false
17
+ },
18
+ "module": {
19
+ "type": "nodenext",
20
+ "noInterop": false
21
+ },
22
+ "sourceMaps": true,
23
+ "exclude": ["vitest.config.mts", ".*\\.spec.ts$", ".*\\.test.ts$", ".*.js$"]
24
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "files": [],
4
+ "include": [],
5
+ "references": [
6
+ {
7
+ "path": "./tsconfig.lib.json"
8
+ },
9
+ {
10
+ "path": "./tsconfig.spec.json"
11
+ }
12
+ ]
13
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "rootDir": "src",
5
+ "outDir": "dist",
6
+ "tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
7
+ "emitDeclarationOnly": true,
8
+ "forceConsistentCasingInFileNames": true,
9
+ "types": [
10
+ "node"
11
+ ]
12
+ },
13
+ "include": [
14
+ "src/**/*.ts"
15
+ ],
16
+ "references": [],
17
+ "exclude": [
18
+ "vitest.config.mts",
19
+ "src/**/*.spec.ts"
20
+ ]
21
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "outDir": "./out-tsc/vitest",
5
+ "types": [
6
+ "vitest/globals",
7
+ "vitest/importMeta",
8
+ "vite/client",
9
+ "node",
10
+ "vitest"
11
+ ],
12
+ "forceConsistentCasingInFileNames": true
13
+ },
14
+ "include": [
15
+ "vitest.config.mts",
16
+ "src/**/*.spec.ts"
17
+ ],
18
+ "references": [
19
+ {
20
+ "path": "./tsconfig.lib.json"
21
+ }
22
+ ]
23
+ }
@@ -0,0 +1,18 @@
1
+ import { defineConfig } from 'vitest/config';
2
+
3
+ export default defineConfig(() => ({
4
+ root: __dirname,
5
+ cacheDir: '../../node_modules/.vite/<%- directory %>',
6
+ test: {
7
+ name: '@<%- orgname %>/<%- fileName %>',
8
+ watch: false,
9
+ globals: true,
10
+ environment: 'node',
11
+ include: ['src/**/*.spec.ts'],
12
+ reporters: ['default'],
13
+ coverage: {
14
+ reportsDirectory: './test-output/vitest/coverage',
15
+ provider: 'v8' as const,
16
+ },
17
+ },
18
+ }));
@@ -0,0 +1,5 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ import { ProjectGeneratorSchema } from './schema.js';
3
+ export declare function projectGenerator(tree: Tree, options: ProjectGeneratorSchema): Promise<void>;
4
+ export default projectGenerator;
5
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/project/project.ts"],"names":[],"mappings":"AACA,OAAO,EAAqC,KAAK,IAAI,EAAc,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,sBAAsB,iBA4BjF;AAED,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.projectGenerator = projectGenerator;
4
+ const tslib_1 = require("tslib");
5
+ const path = tslib_1.__importStar(require("node:path"));
6
+ const devkit_1 = require("@nx/devkit");
7
+ const schema_js_1 = require("./schema.js");
8
+ async function projectGenerator(tree, options) {
9
+ options = new schema_js_1.ProjectGeneratorSchema(options);
10
+ const projectRoot = options.directory;
11
+ const shortProjectName = options.directory.split(/\//).pop();
12
+ if (!shortProjectName)
13
+ throw new Error(`Something went wrong extracting the project name from ${options.directory}`);
14
+ const projectName = `@${options.orgname}/${shortProjectName}`;
15
+ const shortProjectNames = (0, devkit_1.names)(shortProjectName);
16
+ options.email = options.email.split('@').join(`+${options.reponame}-${shortProjectNames.fileName}@`);
17
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, options.projectType), projectRoot, {
18
+ ...shortProjectNames,
19
+ projectName,
20
+ ...options,
21
+ });
22
+ await (0, devkit_1.updateJson)(tree, 'tsconfig.json', (value) => {
23
+ value.references ??= [];
24
+ const refPath = `./${options.directory}`;
25
+ if (!value.references.find((ref) => ref.path === refPath)) {
26
+ value.references.push({ path: `./${options.directory}` });
27
+ }
28
+ return value;
29
+ });
30
+ await (0, devkit_1.formatFiles)(tree);
31
+ }
32
+ exports.default = projectGenerator;
@@ -0,0 +1,14 @@
1
+ export type ProjectType = 'lib' | 'api' | 'cli' | 'prisma' | 'prisma-extention' | 'gql' | 'grpc' | 'lib-conf';
2
+ export declare class ProjectGeneratorSchema {
3
+ projectType: ProjectType;
4
+ directory: string;
5
+ homepage: string;
6
+ email: string;
7
+ author: string;
8
+ funding: string;
9
+ reponame: string;
10
+ orgname: string;
11
+ version: string;
12
+ constructor(options: Partial<ProjectGeneratorSchema>);
13
+ }
14
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/project/schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,kBAAkB,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;AAE9G,qBAAa,sBAAsB;IAC/B,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,SAAqC;IAC7C,KAAK,SAAiC;IACtC,MAAM,SAAuB;IAC7B,OAAO,SAA8B;IACrC,QAAQ,SAAY;IACpB,OAAO,SAAY;IACnB,OAAO,SAAW;gBAEN,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC;CAGvD"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProjectGeneratorSchema = void 0;
4
+ class ProjectGeneratorSchema {
5
+ projectType;
6
+ directory;
7
+ homepage = 'https://vnodes.github.io/vnodes';
8
+ email = 'robert.brightline@gmail.com';
9
+ author = 'Robert Brightline';
10
+ funding = 'https://cash.app/$puqlib';
11
+ reponame = 'vnodes';
12
+ orgname = 'vnodes';
13
+ version = '0.0.1';
14
+ constructor(options) {
15
+ Object.assign(this, options);
16
+ }
17
+ }
18
+ exports.ProjectGeneratorSchema = ProjectGeneratorSchema;
@@ -0,0 +1,59 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft-07/schema#",
3
+ "$id": "Project",
4
+ "title": "",
5
+ "type": "object",
6
+ "properties": {
7
+ "projectType": {
8
+ "type": "string",
9
+ "enum": [
10
+ "lib",
11
+ "lib-conf",
12
+ "api",
13
+ "cli",
14
+ "prisma",
15
+ "prisma-extention",
16
+ "gql",
17
+ "grpc"
18
+ ],
19
+ "$default": {
20
+ "$source": "argv",
21
+ "index": 0
22
+ },
23
+ "x-prompt": "Which project-type would you like to use?"
24
+ },
25
+ "directory": {
26
+ "type": "string",
27
+ "$default": {
28
+ "$source": "argv",
29
+ "index": 1
30
+ },
31
+ "x-prompt": "Which diretory would you like to use?"
32
+ },
33
+ "homepage": {
34
+ "type": "string"
35
+ },
36
+ "email": {
37
+ "type": "string"
38
+ },
39
+ "author": {
40
+ "type": "string"
41
+ },
42
+ "funding": {
43
+ "type": "string"
44
+ },
45
+ "reponame": {
46
+ "type": "string"
47
+ },
48
+ "orgname": {
49
+ "type": "string"
50
+ },
51
+ "version": {
52
+ "type": "string"
53
+ }
54
+ },
55
+ "required": [
56
+ "projectType",
57
+ "directory"
58
+ ]
59
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "generators": {
3
+ "project": {
4
+ "factory": "./dist/project/project.js",
5
+ "schema": "./dist/project/schema.json",
6
+ "description": "project generator"
7
+ }
8
+ }
9
+ }
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "@vnodes/plugin",
3
+ "version": "0.0.23",
4
+ "main": "./dist/index.js",
5
+ "module": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ "./package.json": "./package.json",
9
+ ".": {
10
+ "@vnodes/source": "./src/index.ts",
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "generators.json",
19
+ "!**/*.tsbuildinfo"
20
+ ],
21
+ "nx": {
22
+ "targets": {
23
+ "build": {
24
+ "executor": "@nx/js:tsc",
25
+ "outputs": [
26
+ "{options.outputPath}"
27
+ ],
28
+ "options": {
29
+ "outputPath": "plugins/plugin/dist",
30
+ "main": "plugins/plugin/src/index.ts",
31
+ "tsConfig": "plugins/plugin/tsconfig.lib.json",
32
+ "rootDir": "plugins/plugin/src",
33
+ "generatePackageJson": false,
34
+ "assets": [
35
+ {
36
+ "input": "./plugins/plugin/src",
37
+ "glob": "**/!(*.ts)",
38
+ "output": "."
39
+ },
40
+ {
41
+ "input": "./plugins/plugin/src",
42
+ "glob": "**/*.d.ts",
43
+ "output": "."
44
+ }
45
+ ]
46
+ }
47
+ }
48
+ },
49
+ "tags": [
50
+ "lib"
51
+ ]
52
+ },
53
+ "dependencies": {
54
+ "@nx/devkit": "22.6.1",
55
+ "tslib": "^2.3.0"
56
+ },
57
+ "generators": "./generators.json",
58
+ "publishConfig": {
59
+ "access": "public",
60
+ "tag": "latest"
61
+ }
62
+ }