Browse Source

Create generator project

pull/16685/head
Mahmut Gundogdu 3 years ago
parent
commit
656fade548
  1. 5
      npm/ng-packs/.eslintrc.json
  2. 3
      npm/ng-packs/.vscode/settings.json
  3. 18
      npm/ng-packs/package.json
  4. 25
      npm/ng-packs/packages/generators/.eslintrc.json
  5. 11
      npm/ng-packs/packages/generators/README.md
  6. 9
      npm/ng-packs/packages/generators/generators.json
  7. 10
      npm/ng-packs/packages/generators/jest.config.ts
  8. 6
      npm/ng-packs/packages/generators/package.json
  9. 66
      npm/ng-packs/packages/generators/project.json
  10. 1
      npm/ng-packs/packages/generators/src/generators/generate-proxy/files/src/index.ts.template
  11. 20
      npm/ng-packs/packages/generators/src/generators/generate-proxy/generator.spec.ts
  12. 17
      npm/ng-packs/packages/generators/src/generators/generate-proxy/generator.ts
  13. 3
      npm/ng-packs/packages/generators/src/generators/generate-proxy/schema.d.ts
  14. 18
      npm/ng-packs/packages/generators/src/generators/generate-proxy/schema.json
  15. 0
      npm/ng-packs/packages/generators/src/index.ts
  16. 16
      npm/ng-packs/packages/generators/tsconfig.json
  17. 10
      npm/ng-packs/packages/generators/tsconfig.lib.json
  18. 9
      npm/ng-packs/packages/generators/tsconfig.spec.json
  19. 1
      npm/ng-packs/tsconfig.base.json

5
npm/ng-packs/.eslintrc.json

@ -34,6 +34,11 @@
"files": ["*.js", "*.jsx"],
"extends": ["plugin:@nx/javascript"],
"rules": {}
},
{
"files": "*.json",
"parser": "jsonc-eslint-parser",
"rules": {}
}
]
}

3
npm/ng-packs/.vscode/settings.json

@ -38,5 +38,6 @@
"statusBarItem.hoverBackground": "#258ecd",
"statusBar.foreground": "#e7e7e7"
},
"peacock.color": "#1D70A2"
"peacock.color": "#1D70A2",
"eslint.validate": ["json"]
}

18
npm/ng-packs/package.json

@ -80,13 +80,18 @@
"@ng-bootstrap/ng-bootstrap": "^14.0.0",
"@ngneat/spectator": "^10.0.0",
"@ngx-validate/core": "^0.2.0",
"@nx/angular": "16.1.4",
"@nx/cypress": "16.1.4",
"@nx/eslint-plugin": "16.1.4",
"@nx/jest": "16.1.4",
"@nx/jest": "16.2.2",
"@nx/js": "16.2.2",
"@nx/linter": "16.1.4",
"@nx/workspace": "16.1.4",
"@popperjs/core": "~2.11.2",
"@schematics/angular": "~16.0.1",
"@swc-node/register": "~1.4.2",
"@swc/cli": "~0.1.62",
"@swc/core": "~1.3.51",
"@swimlane/ngx-datatable": "^20.0.0",
"@types/jest": "29.4.4",
"@types/node": "16.11.7",
@ -106,6 +111,7 @@
"jest-canvas-mock": "^2.3.1",
"jest-environment-jsdom": "29.4.3",
"jest-preset-angular": "13.1.0",
"jsonc-eslint-parser": "^2.1.0",
"jsonc-parser": "^2.3.0",
"just-clone": "^6.1.1",
"just-compare": "^2.3.0",
@ -129,14 +135,16 @@
"tslib": "^2.3.0",
"tslint": "~6.1.0",
"typescript": "5.0.4",
"zone.js": "~0.13.0",
"@nx/angular": "16.1.4"
"zone.js": "~0.13.0"
},
"lint-staged": {
"**/*.{js,jsx,ts,tsx,html,css,scss}": [
"npx prettier --write --config .prettierrc "
]
},
"dependencies": {}
"dependencies": {
"@nx/devkit": "16.2.2",
"@nx/plugin": "^16.2.2",
"@swc/helpers": "~0.5.0"
}
}

25
npm/ng-packs/packages/generators/.eslintrc.json

@ -0,0 +1,25 @@
{
"extends": ["../../.eslintrc.json"],
"ignorePatterns": ["!**/*"],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"rules": {}
},
{
"files": ["*.ts", "*.tsx"],
"rules": {}
},
{
"files": ["*.js", "*.jsx"],
"rules": {}
},
{
"files": ["./package.json", "./generators.json"],
"parser": "jsonc-eslint-parser",
"rules": {
"@nx/nx-plugin-checks": "error"
}
}
]
}

11
npm/ng-packs/packages/generators/README.md

@ -0,0 +1,11 @@
# generators
This library was generated with [Nx](https://nx.dev).
## Building
Run `nx build generators` to build the library.
## Running unit tests
Run `nx test generators` to execute the unit tests via [Jest](https://jestjs.io).

9
npm/ng-packs/packages/generators/generators.json

@ -0,0 +1,9 @@
{
"generators": {
"generate-proxy": {
"factory": "./src/generators/generate-proxy/generator",
"schema": "./src/generators/generate-proxy/schema.json",
"description": "generate-proxy generator"
}
}
}

10
npm/ng-packs/packages/generators/jest.config.ts

@ -0,0 +1,10 @@
/* eslint-disable */
export default {
displayName: 'generators',
preset: '../../jest.preset.js',
transform: {
'^.+\\.[tj]s$': ['ts-jest', { tsconfig: '<rootDir>/tsconfig.spec.json' }],
},
moduleFileExtensions: ['ts', 'js', 'html'],
coverageDirectory: '../../coverage/packages/generators',
};

6
npm/ng-packs/packages/generators/package.json

@ -0,0 +1,6 @@
{
"name": "@abp/generators",
"version": "0.0.1",
"type": "commonjs",
"generators": "./generators.json"
}

66
npm/ng-packs/packages/generators/project.json

@ -0,0 +1,66 @@
{
"name": "generators",
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "packages/generators/src",
"projectType": "library",
"targets": {
"build": {
"executor": "@nx/js:tsc",
"outputs": ["{options.outputPath}"],
"options": {
"outputPath": "dist/packages/generators",
"main": "packages/generators/src/index.ts",
"tsConfig": "packages/generators/tsconfig.lib.json",
"assets": [
"packages/generators/*.md",
{
"input": "./packages/generators/src",
"glob": "**/!(*.ts)",
"output": "./src"
},
{
"input": "./packages/generators/src",
"glob": "**/*.d.ts",
"output": "./src"
},
{
"input": "./packages/generators",
"glob": "generators.json",
"output": "."
},
{
"input": "./packages/generators",
"glob": "executors.json",
"output": "."
}
]
}
},
"lint": {
"executor": "@nx/linter:eslint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": [
"packages/generators/**/*.ts",
"packages/generators/package.json",
"packages/generators/generators.json"
]
}
},
"test": {
"executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
"options": {
"jestConfig": "packages/generators/jest.config.ts",
"passWithNoTests": true
},
"configurations": {
"ci": {
"ci": true,
"codeCoverage": true
}
}
}
},
"tags": []
}

1
npm/ng-packs/packages/generators/src/generators/generate-proxy/files/src/index.ts.template

@ -0,0 +1 @@
const variable = "<%= name %>";

20
npm/ng-packs/packages/generators/src/generators/generate-proxy/generator.spec.ts

@ -0,0 +1,20 @@
import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
import { Tree, readProjectConfiguration } from '@nx/devkit';
import { generateProxyGenerator } from './generator';
import { GenerateProxyGeneratorSchema } from './schema';
describe('generate-proxy generator', () => {
let tree: Tree;
const options: GenerateProxyGeneratorSchema = { name: 'test' };
beforeEach(() => {
tree = createTreeWithEmptyWorkspace();
});
it('should run successfully', async () => {
await generateProxyGenerator(tree, options);
const config = readProjectConfiguration(tree, 'test');
expect(config).toBeDefined();
});
});

17
npm/ng-packs/packages/generators/src/generators/generate-proxy/generator.ts

@ -0,0 +1,17 @@
import { addProjectConfiguration, formatFiles, generateFiles, Tree } from '@nx/devkit';
import * as path from 'path';
import { GenerateProxyGeneratorSchema } from './schema';
export async function generateProxyGenerator(tree: Tree, options: GenerateProxyGeneratorSchema) {
const projectRoot = `libs/${options.name}`;
addProjectConfiguration(tree, options.name, {
root: projectRoot,
projectType: 'library',
sourceRoot: `${projectRoot}/src`,
targets: {},
});
generateFiles(tree, path.join(__dirname, 'files'), projectRoot, options);
await formatFiles(tree);
}
export default generateProxyGenerator;

3
npm/ng-packs/packages/generators/src/generators/generate-proxy/schema.d.ts

@ -0,0 +1,3 @@
export interface GenerateProxyGeneratorSchema {
name: string;
}

18
npm/ng-packs/packages/generators/src/generators/generate-proxy/schema.json

@ -0,0 +1,18 @@
{
"$schema": "http://json-schema.org/schema",
"$id": "GenerateProxy",
"title": "",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "",
"$default": {
"$source": "argv",
"index": 0
},
"x-prompt": "What name would you like to use?"
}
},
"required": ["name"]
}

0
npm/ng-packs/packages/generators/src/index.ts

16
npm/ng-packs/packages/generators/tsconfig.json

@ -0,0 +1,16 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"module": "commonjs"
},
"files": [],
"include": [],
"references": [
{
"path": "./tsconfig.lib.json"
},
{
"path": "./tsconfig.spec.json"
}
]
}

10
npm/ng-packs/packages/generators/tsconfig.lib.json

@ -0,0 +1,10 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"declaration": true,
"types": ["node"]
},
"include": ["src/**/*.ts"],
"exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
}

9
npm/ng-packs/packages/generators/tsconfig.spec.json

@ -0,0 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"module": "commonjs",
"types": ["jest", "node"]
},
"include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
}

1
npm/ng-packs/tsconfig.base.json

@ -14,6 +14,7 @@
"baseUrl": "./",
"allowSyntheticDefaultImports": true,
"paths": {
"@abp/generators": ["packages/generators/src/index.ts"],
"@abp/ng.account": ["packages/account/src/public-api.ts"],
"@abp/ng.account.core": ["packages/account-core/src/public-api.ts"],
"@abp/ng.account.core/proxy": ["packages/account-core/proxy/src/public-api.ts"],

Loading…
Cancel
Save