@progress/kendo-typescript-tasks 10.0.21-ng12.36 → 10.0.21

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/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [10.0.21](https://github.com/telerik/kendo-build-tasks/compare/@progress/kendo-typescript-tasks@10.0.20...@progress/kendo-typescript-tasks@10.0.21) (2022-03-14)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **typescript-tasks:** improve union page template ([a0371d5](https://github.com/telerik/kendo-build-tasks/commit/a0371d5ebd31d58d137b7011dff1f47171fb8347))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [10.0.20](https://github.com/telerik/kendo-build-tasks/compare/@progress/kendo-typescript-tasks@10.0.19...@progress/kendo-typescript-tasks@10.0.20) (2022-03-10)
7
18
 
8
19
  **Note:** Version bump only for package @progress/kendo-typescript-tasks
package/api.config.js CHANGED
@@ -1,8 +1,22 @@
1
+ const os = require('os');
1
2
  const path = require('path');
2
3
 
3
- const jsonPath = path.resolve('./api.json');
4
+ const jsonPath = path.join(os.tmpdir(), `api-${process.pid}.json`);
4
5
  const typedoc = {
5
- excludeExternals: true
6
+ // TypeScript options
7
+ module: 'commonjs',
8
+ target: 'es6',
9
+ types: [],
10
+ experimentalDecorators: true,
11
+ jsx: 'react', // support for tsx files
12
+
13
+ // Output options
14
+ json: jsonPath,
15
+
16
+ // Typedoc options
17
+ excludeExternals: true,
18
+ ignoreCompilerErrors: false,
19
+ includeDeclarations: true
6
20
  };
7
21
 
8
22
  module.exports = {
package/api.js CHANGED
@@ -2,9 +2,8 @@
2
2
 
3
3
  const execSync = require('child_process').execSync;
4
4
  const path = require('path');
5
+ const typedoc = require('gulp-typedoc');
5
6
  const { merge } = require('lodash');
6
- const typedoc = require('typedoc');
7
- const glob = require('glob');
8
7
 
9
8
  const api = require('./src/api/generator.js');
10
9
  const apiConfig = require('./api.config.js');
@@ -13,30 +12,11 @@ module.exports = (gulp, userConfig) => {
13
12
  const series = gulp.series;
14
13
 
15
14
  const config = merge({}, apiConfig, userConfig);
15
+ const DECLARATIONS = ["typings/index.d.ts", "node_modules/@types/core-js/index.d.ts"];
16
16
 
17
- gulp.task('api-json', async (done) => {
18
- const entryPoints = [
19
- ...glob.sync("src/**/*.{ts,tsx}"),
20
- ...(config.externalApi || [])
21
- ];
22
-
23
- const app = new typedoc.Application();
24
- app.options.addReader(new typedoc.TSConfigReader());
25
- app.bootstrap({ ...config.typedoc, entryPoints });
26
-
27
- const project = app.convert();
28
- if (!project) {
29
- done(new Error('Unable to initialize TypeDoc.'));
30
- return;
31
- }
32
-
33
- await app.generateJson(project, apiConfig.jsonPath);
34
- if (app.logger.hasErrors()) {
35
- done(new Error('Unable to generate API reference, see messages above.'));
36
- return;
37
- }
38
-
39
- done();
17
+ gulp.task('api-json', () => {
18
+ return gulp.src(["src/**/*.{ts,tsx}", ...DECLARATIONS, ...(config.externalApi || [])], { "allowEmpty": true })
19
+ .pipe(typedoc(config.typedoc));
40
20
  });
41
21
 
42
22
  gulp.task('api-clean', (done) => {
package/gulp-tasks.js CHANGED
@@ -3,10 +3,11 @@
3
3
  const del = require('del');
4
4
  const childProcess = require('child_process');
5
5
  const path = require('path');
6
+ const gulpTsLint = require('gulp-tslint');
7
+ const tslint = require('tslint');
6
8
 
7
9
  const apiTasks = require('./api.js');
8
10
  const commonTasks = require('@progress/kendo-common-tasks');
9
- const linter = require('./src/linter');
10
11
 
11
12
  const webpackConfig = require('./webpack.config.js');
12
13
  const tscPath = path.join(process.cwd(), 'node_modules', '.bin', 'tsc');
@@ -36,15 +37,29 @@ module.exports = (gulp, libraryName, compilerPath, options, webpackConfigPath) =
36
37
  done()
37
38
  });
38
39
 
39
- gulp.task('lint', series(
40
- 'check-compilation',
41
- linter([ 'src/**/*.{ts,tsx}', 'test/**/*.{ts,tsx}', 'e2e/**/*.{ts,tsx}' ])
42
- ));
40
+ gulp.task('lint', series('check-compilation', (done) => {
41
+ const program = tslint.Linter.createProgram('./tsconfig.json', '.');
43
42
 
44
- gulp.task('lint-docs', linter([ 'docs/examples/**/*.{ts,tsx}' ], {
45
- overrideConfigFile: '.eslintrc.docs.json'
43
+ return gulp.src([ 'src/**/*.{ts,tsx}', 'test/**/*.{ts,tsx}', 'e2e/**/*.{ts,tsx}' ])
44
+ .pipe(gulpTsLint({
45
+ program: program,
46
+ formatter: 'verbose'
47
+ }))
48
+ .pipe(gulpTsLint.report());
46
49
  }));
47
50
 
51
+ gulp.task('lint-docs', () => {
52
+ const program = tslint.Linter.createProgram('./tsconfig.docs.json', '.');
53
+
54
+ return gulp.src([ 'docs/examples/**/*.{ts,tsx}'])
55
+ .pipe(gulpTsLint({
56
+ formatter: 'prose',
57
+ program: program,
58
+ configuration: './tslint.docs.json'
59
+ }))
60
+ .pipe(gulpTsLint.report());
61
+ });
62
+
48
63
  gulp.task('start', (done) => {
49
64
  const webpackPort = 8888;
50
65
  const host = listenAddress;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@progress/kendo-typescript-tasks",
3
3
  "description": "Kendo UI TypeScript package gulp tasks",
4
4
  "main": "gulp-tasks.js",
5
- "version": "10.0.21-ng12.36+e5fce7e",
5
+ "version": "10.0.21",
6
6
  "author": "Telerik",
7
7
  "license": "Apache-2.0",
8
8
  "scripts": {
@@ -15,31 +15,29 @@
15
15
  "API Generation"
16
16
  ],
17
17
  "peerDependencies": {
18
- "typescript": "^4.3.4"
18
+ "typescript": "^3.4.5"
19
19
  },
20
20
  "dependencies": {
21
- "@progress/kendo-common-tasks": "7.9.5-ng12.36+e5fce7e",
22
- "@typescript-eslint/eslint-plugin": "4.28.2",
23
- "@typescript-eslint/parser": "4.28.2",
24
- "core-js": "^3.18.0",
21
+ "@progress/kendo-common-tasks": "^7.9.4",
22
+ "core-js": "^2.2.2",
25
23
  "del": "2.2.2",
26
- "eslint": "7.32.0",
27
- "eslint-plugin-import": "2.25.2",
28
- "eslint-plugin-rxjs": "3.3.7",
29
- "glob": "^7.2.0",
30
24
  "gulp": "^4.0.0",
31
25
  "gulp-add-src": "^1.0.0",
26
+ "gulp-tslint": "^8.0.0",
27
+ "gulp-typedoc": "~2.2.2",
32
28
  "handlebars": "^4.0.5",
33
29
  "highlight.js": "9.14.2",
34
30
  "lodash": "^4.6.0",
35
31
  "mkdirp": "^0.5.0",
36
32
  "source-map-loader": "^0.1.5",
37
33
  "ts-loader": "4.1.0",
38
- "typedoc": "~0.22.5"
34
+ "tslint": "^5.0.0",
35
+ "tslint-defocus": "^2.0.6",
36
+ "typedoc": "0.15.0"
39
37
  },
40
38
  "devDependencies": {
41
39
  "gulp-jasmine": "^2.4.2",
42
- "typescript": "~4.3.4"
40
+ "typescript": "~3.4.5"
43
41
  },
44
42
  "repository": {
45
43
  "type": "git",
@@ -48,5 +46,5 @@
48
46
  "publishConfig": {
49
47
  "access": "public"
50
48
  },
51
- "gitHead": "e5fce7ec4d83dcf06e1bd0b2c38fc0e5246d570d"
49
+ "gitHead": "312a5e97951ec3e69926d909e573bf5aafff222f"
52
50
  }
@@ -22,7 +22,7 @@ const findDecorator = (decorators) => ((decorators || []).find(d =>
22
22
  const decoratorProp = (prop) => (decorators) => {
23
23
  const compDecorator = findDecorator(decorators);
24
24
 
25
- if (compDecorator) {
25
+ if (compDecorator) {
26
26
  const regExp = new RegExp(`${prop}:\\s?['"](.+?)['"]`);
27
27
  const match = compDecorator.arguments.obj.match(regExp);
28
28
 
@@ -110,11 +110,6 @@ const normalizeMembers = (members) => {
110
110
  }
111
111
  }
112
112
  }
113
-
114
- if (!element.comment && element.kindString === 'Accessor') {
115
- const accessor = element.getSignature || element.setSignature || [];
116
- element.comment = accessor[0].comment;
117
- }
118
113
  });
119
114
  }
120
115
 
@@ -153,7 +148,7 @@ const extractMembers = (packageName, modules, config) => {
153
148
 
154
149
  const models = nonEmptyModules.map(module => module
155
150
  .children
156
- .filter(child => child.kindString !== "Reference")
151
+ .filter(child => child.flags.isExported)
157
152
  .filter(child => child.name !== 'core')
158
153
  .map(child => {
159
154
  const fullName = moduleFullName(module.name, packageName, rootModules);
@@ -200,6 +195,7 @@ const namespacesAsModules = data => {
200
195
  const modules = [];
201
196
  data.filter(moduleFilter).forEach(module => module
202
197
  .children
198
+ .filter(child => child.flags.isExported)
203
199
  .filter(child => child.name !== 'core')
204
200
  .forEach(child => {
205
201
  if (child.kindString === 'Module' && child.children) {
@@ -9,13 +9,8 @@ const utils = require('./utils');
9
9
  const isConstructor = (prop) =>
10
10
  prop.kindString && prop.kindString === 'Constructor' && isPublic(prop);
11
11
 
12
- const mapConstructors = (member) => {
13
- if (member.decorators && member.decorators.find(d => d.name === 'NgModule')) {
14
- // Ignore NgModule constructors
15
- return [];
16
- }
17
-
18
- return utils.flatten(member.children.filter(isConstructor).map(ctr => {
12
+ const mapConstructors = (member) =>
13
+ utils.flatten(member.children.filter(isConstructor).map(ctr => {
19
14
  const name = ctr.name;
20
15
  const source = `${member.name}.constructor`;
21
16
 
@@ -26,7 +21,6 @@ const mapConstructors = (member) => {
26
21
  params: types.params(signature, source)
27
22
  }));
28
23
  }));
29
- };
30
24
 
31
25
  module.exports = mapConstructors;
32
26
 
@@ -7,6 +7,9 @@ const hbs = require('handlebars');
7
7
  hbs.registerHelper('capitalize',
8
8
  s => s.slice(0,1).toUpperCase() + s.slice(1));
9
9
 
10
+ hbs.registerHelper('contains',
11
+ (s, chars, options) => s.includes(chars) ? options.fn(s) : options.inverse(s));
12
+
10
13
  const readLocal = (src) =>
11
14
  fs.readFileSync(path.join(__dirname, src), { encoding: 'utf-8' });
12
15
 
@@ -5,7 +5,7 @@ const comment = require('./comment');
5
5
  const unionTypes = (member) =>
6
6
  member.type.types.map(type => {
7
7
  switch (type.type) {
8
- case 'literal':
8
+ case 'stringLiteral':
9
9
  return `"${type.value}"`;
10
10
  default:
11
11
  return typeString({ type });
@@ -3,9 +3,11 @@
3
3
  # {{name}}
4
4
  {{comment}}
5
5
 
6
- ## Members
7
-
8
- {{#each types}}
9
- * {{this}}
10
- {{/each}}
11
-
6
+ `type` {{name}} =
7
+ {{~#each types~}}
8
+ {{~#contains this 'slug'}} {{this}}
9
+ {{~else contains this '"'}} {{this}}
10
+ {{~else}} `{{this}}`
11
+ {{~/contains~}}
12
+ {{~#unless @last}} |{{/unless~}}
13
+ {{~/each}};
package/test/api.js CHANGED
@@ -162,13 +162,13 @@ describe('API generation', () => {
162
162
  it('formats anonymous interfaces', () => {
163
163
  const unionData = require('./type-union.json');
164
164
  const page = unionPage(unionData);
165
- expect(page).toContain("{ allowUnsort?: boolean; mode?: 'single' | 'multiple'; }");
165
+ expect(page).toContain('{ allowUnsort?: boolean; mode?: "single" | "multiple"; }');
166
166
  });
167
167
 
168
168
  it('formats intersection interfaces', () => {
169
169
  const intersectionData = require('./intersection.json');
170
170
  const page = unionPage(intersectionData);
171
- expect(page).toContain("ColumnSortSettings [intersected](https://www.typescriptlang.org/docs/handbook/advanced-types.html#intersection-types) with { mode?: 'single' | 'multiple'; }");
171
+ expect(page).toContain('ColumnSortSettings [intersected](https://www.typescriptlang.org/docs/handbook/advanced-types.html#intersection-types) with { mode?: "single" | "multiple"; }');
172
172
  });
173
173
  });
174
174
 
package/src/linter.js DELETED
@@ -1,18 +0,0 @@
1
- const { ESLint } = require('eslint');
2
-
3
- const linter = (files, options = {}) => async function lint(done) {
4
- const eslint = new ESLint(options);
5
- const results = await eslint.lintFiles(files);
6
- const formatter = await eslint.loadFormatter('stylish');
7
- const errors = ESLint.getErrorResults(results)
8
- const resultText = formatter.format(results);
9
- console.log(resultText);
10
-
11
- if (errors.length > 0) {
12
- done(new Error('Lint failed.'));
13
- } else {
14
- done();
15
- }
16
- }
17
-
18
- module.exports = linter;