Skip to content

Commit 97449c2

Browse files
authored
chore(core): use API Extractor for TypeScript rollup (#4509)
Refs #4382
1 parent 92537a2 commit 97449c2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+405
-70
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
3+
"extends": "../../../../api-extractor.json"
4+
}

packages/apidom-core/config/rollup/types.dist.js

Lines changed: 0 additions & 12 deletions
This file was deleted.

packages/apidom-core/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
"unpkg": "./dist/apidom-core.browser.min.js",
1515
"main": "./src/index.cjs",
1616
"exports": {
17-
"types": "./types/dist.d.ts",
17+
"types": "./types/apidom-core.d.ts",
1818
"import": "./src/index.mjs",
1919
"require": "./src/index.cjs"
2020
},
21-
"types": "./types/dist.d.ts",
21+
"types": "./types/apidom-core.d.ts",
2222
"scripts": {
2323
"build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser",
2424
"build:es": "cross-env BABEL_ENV=es babel src --out-dir src --extensions '.ts' --out-file-extension '.mjs' --root-mode 'upward'",
@@ -28,7 +28,7 @@
2828
"lint:fix": "eslint ./ --fix",
2929
"clean": "rimraf --glob 'src/**/*.mjs' 'src/**/*.cjs' 'test/**/*.mjs' ./dist ./types",
3030
"typescript:check-types": "tsc --noEmit && tsc -p ./test/tsconfig.json --noEmit",
31-
"typescript:declaration": "tsc -p tsconfig.declaration.json && rollup -c config/rollup/types.dist.js && copyfiles -u 2 ../@types/minim.d.ts ./types && node ../../scripts/file-replace-bof.js './types/dist.d.ts' '/// <reference path=\"./minim.d.ts\" />\nimport * as minim from \"minim\";'",
31+
"typescript:declaration": "tsc -p tsconfig.declaration.json && api-extractor run -l -c ./config/api-extractor/api-extractor.json && copyfiles -u 2 ../@types/minim.d.ts ./types && node ./scripts/file-replace-bof.js './types/apidom-core.d.ts' '/// <reference path=\"./minim.d.ts\" />\nimport * as minim from \"minim\";'",
3232
"test": "npm run build:es && cross-env BABEL_ENV=es babel test --out-dir test --extensions '.ts' --out-file-extension '.mjs' --root-mode 'upward' && cross-env NODE_ENV=test mocha",
3333
"test:update-snapshots": "cross-env UPDATE_SNAPSHOT=1 NODE_ENV=test mocha",
3434
"prepack": "copyfiles -u 3 ../../LICENSES/* LICENSES && copyfiles -u 2 ../../NOTICE .",
@@ -55,7 +55,7 @@
5555
"src/**/*.mjs",
5656
"src/**/*.cjs",
5757
"dist/",
58-
"types/dist.d.ts",
58+
"types/apidom-core.d.ts",
5959
"types/minim.d.ts",
6060
"LICENSES",
6161
"NOTICE",

scripts/file-replace-bof.js renamed to packages/apidom-core/scripts/file-replace-bof.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ const filePath = path.join(cwd, fileName);
88
const fileContent = fs.readFileSync(filePath).toString();
99
const lines = fileContent.split('\n');
1010

11-
lines.shift();
1211
lines.unshift(bofContent);
1312

1413
const newFileContent = lines.join('\n');

packages/apidom-core/src/clone/errors/CloneError.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
import { ApiDOMStructuredError } from '@swagger-api/apidom-error';
22
import type { ApiDOMErrorOptions } from '@swagger-api/apidom-error';
33

4-
interface CloneErrorOptions extends ApiDOMErrorOptions {
4+
/**
5+
* @public
6+
*/
7+
export interface CloneErrorOptions extends ApiDOMErrorOptions {
58
readonly value: unknown;
69
}
710

11+
/**
12+
* @public
13+
*/
814
class CloneError extends ApiDOMStructuredError {
915
public readonly value: unknown;
1016

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import CloneError from './CloneError.ts';
22

3+
/**
4+
* @public
5+
*/
36
class DeepCloneError extends CloneError {}
47

58
export default DeepCloneError;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import CloneError from './CloneError.ts';
22

3+
/**
4+
* @public
5+
*/
36
class ShallowCloneError extends CloneError {}
47

58
export default ShallowCloneError;

packages/apidom-core/src/clone/index.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,21 @@ import { isElement } from '../predicates/index.ts';
44
import DeepCloneError from './errors/DeepCloneError.ts';
55
import ShallowCloneError from './errors/ShallowCloneError.ts';
66

7-
type FinalCloneTypes = KeyValuePair | ArraySlice | ObjectSlice;
8-
9-
type DeepCloneOptions<T extends Element | FinalCloneTypes> = {
7+
/**
8+
* @public
9+
*/
10+
export type FinalCloneTypes = KeyValuePair | ArraySlice | ObjectSlice;
11+
12+
/**
13+
* @public
14+
*/
15+
export type DeepCloneOptions<T extends Element | FinalCloneTypes> = {
1016
visited?: WeakMap<T, T>;
1117
};
1218

19+
/**
20+
* @public
21+
*/
1322
export const cloneDeep = <T extends Element | FinalCloneTypes>(
1423
value: T,
1524
options: DeepCloneOptions<T> = {},
@@ -137,6 +146,9 @@ const cloneShallowElement = <T extends Element>(element: T): T => {
137146
};
138147
/* eslint-enable */
139148

149+
/**
150+
* @public
151+
*/
140152
export const cloneShallow = <T extends Element | FinalCloneTypes>(value: T): T => {
141153
if (value instanceof KeyValuePair) {
142154
return cloneShallowKeyValuePair(value) as T;

packages/apidom-core/src/elements/Annotation.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import { Attributes, Meta, StringElement } from 'minim';
22

3+
/**
4+
* @public
5+
*/
36
class Annotation extends StringElement {
47
// classes: warning | error
58

packages/apidom-core/src/elements/Comment.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import { Attributes, Meta, StringElement } from 'minim';
22

3+
/**
4+
* @public
5+
*/
36
class Comment extends StringElement {
47
constructor(content?: string, meta?: Meta, attributes?: Attributes) {
58
super(content, meta, attributes);

packages/apidom-core/src/elements/ParseResult.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import { ArrayElement, ArraySlice, Attributes, Element, Meta } from 'minim';
22
import { isUndefined } from 'ramda-adjunct';
33

4+
/**
5+
* @public
6+
*/
47
class ParseResult extends ArrayElement {
58
constructor(content?: Array<any>, meta?: Meta, attributes?: Attributes) {
69
super(content, meta, attributes);

packages/apidom-core/src/elements/SourceMap.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,25 @@
11
import { ArrayElement, Element, Attributes, Meta } from 'minim';
22

3+
/**
4+
* @public
5+
*/
36
export interface Position {
47
row: number;
58
column: number;
69
char: number;
710
}
811

12+
/**
13+
* @public
14+
*/
915
export interface PositionRange {
1016
start: Position;
1117
end: Position;
1218
}
1319

20+
/**
21+
* @public
22+
*/
1423
class SourceMap extends ArrayElement {
1524
constructor(content?: Array<any>, meta?: Meta, attributes?: Attributes) {
1625
super(content, meta, attributes);

packages/apidom-core/src/identity/errors/ElementIdentityError.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
import { ApiDOMStructuredError } from '@swagger-api/apidom-error';
22
import type { ApiDOMErrorOptions } from '@swagger-api/apidom-error';
33

4-
interface ElementIdentityErrorOptions extends ApiDOMErrorOptions {
4+
/**
5+
* @public
6+
*/
7+
export interface ElementIdentityErrorOptions extends ApiDOMErrorOptions {
58
readonly value: unknown;
69
}
710

11+
/**
12+
* @public
13+
*/
814
class ElementIdentityError extends ApiDOMStructuredError {
915
public readonly value: unknown;
1016

packages/apidom-core/src/identity/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ import ShortUniqueId from 'short-unique-id';
44
import ElementIdentityError from './errors/ElementIdentityError.ts';
55
import { isElement, isStringElement } from '../predicates/index.ts';
66

7+
/**
8+
* @public
9+
*/
710
export class IdentityManager {
811
protected readonly uuid: ShortUniqueId;
912

@@ -57,4 +60,7 @@ export class IdentityManager {
5760
}
5861
}
5962

63+
/**
64+
* @public
65+
*/
6066
export const defaultIdentityManager = new IdentityManager();

packages/apidom-core/src/index.ts

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export type {
77

88
export { default as refractorPluginElementIdentity } from './refractor/plugins/element-identity.ts';
99
export { default as refractorPluginSemanticElementIdentity } from './refractor/plugins/semantic-element-identity.ts';
10+
export type { Predicates } from './refractor/plugins/semantic-element-identity.ts';
1011

1112
export { default as MediaTypes } from './media-types.ts';
1213

@@ -30,6 +31,8 @@ export {
3031
SourceMapElement,
3132
} from './refractor/registration.ts';
3233

34+
export type { default as createToolbox, Toolbox, basePredicates } from './refractor/toolbox.ts';
35+
3336
export {
3437
isElement,
3538
isStringElement,
@@ -49,10 +52,25 @@ export {
4952
includesSymbols,
5053
includesClasses,
5154
} from './predicates/index.ts';
52-
export type { ElementPredicate } from './predicates/helpers.ts';
55+
export type { PrimitiveElement } from './predicates/index.ts';
56+
export type {
57+
ElementPredicate,
58+
PredicateCreator,
59+
PredicateHelpers,
60+
hasMethod,
61+
hasBasicElementProps,
62+
primitiveEq,
63+
isElementType,
64+
hasClass,
65+
ElementBasicsTrait,
66+
ElementPrimitiveBehavior,
67+
ElementClassesTrait,
68+
ElementTypeTrait,
69+
} from './predicates/helpers.ts';
5370
export { default as createPredicate } from './predicates/helpers.ts';
5471

5572
export { filter, reject, find, findAtOffset, some, traverse, parents } from './traversal/index.ts';
73+
export type { FindAtOffsetOptions } from './traversal/index.ts';
5674
export {
5775
visit,
5876
BREAK,
@@ -61,18 +79,22 @@ export {
6179
cloneNode,
6280
keyMapDefault as keyMap,
6381
} from './traversal/visitor.ts';
82+
export type { Callback, TraverseOptions } from './traversal/traverse.ts';
6483

6584
export { transclude, default as Transcluder } from './transcluder/index.ts';
6685

6786
export { dereference } from './util.ts';
6887

6988
export { cloneShallow, cloneDeep } from './clone/index.ts';
7089
export { default as CloneError } from './clone/errors/CloneError.ts';
90+
export type { CloneErrorOptions } from './clone/errors/CloneError.ts';
7191
export { default as DeepCloneError } from './clone/errors/DeepCloneError.ts';
7292
export { default as ShallowCloneError } from './clone/errors/ShallowCloneError.ts';
93+
export type { FinalCloneTypes, DeepCloneOptions } from './clone/index.ts';
7394

7495
export { defaultIdentityManager, IdentityManager } from './identity/index.ts';
7596
export { default as ElementIdentityError } from './identity/errors/ElementIdentityError.ts';
97+
export type { ElementIdentityErrorOptions } from './identity/errors/ElementIdentityError.ts';
7698

7799
/**
78100
* Transforms data to an Element from a particular namespace.
@@ -110,7 +132,18 @@ export { default as toString } from './transformers/to-string.ts';
110132
export { default as sexprs } from './transformers/sexprs.ts';
111133

112134
export { default as deepmerge } from './merge/deepmerge.ts';
113-
export type { DeepMergeUserOptions, ObjectOrArrayElement } from './merge/deepmerge.ts';
135+
export type {
136+
DeepMergeUserOptions,
137+
ObjectOrArrayElement,
138+
AnyElement,
139+
DeepMerge,
140+
DeepMergeOptions,
141+
ArrayElementMerge as DeepMergeArrayElementMerge,
142+
ObjectElementMerge as DeepMergeObjectElementMerge,
143+
CustomMerge as DeepMergeCustomMerge,
144+
CustomMetaMerge as DeepMergeCustomMetaMerge,
145+
CustomAttributesMerge as DeepMergeCustomAttributesMerge,
146+
} from './merge/deepmerge.ts';
114147
export { default as mergeRight } from './merge/merge-right.ts';
115148
export type { MergeRightOptions } from './merge/merge-right.ts';
116149
export { default as mergeLeft } from './merge/merge-left.ts';

packages/apidom-core/src/media-types.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import { NotImplementedError } from '@swagger-api/apidom-error';
22

3+
/**
4+
* @public
5+
*/
36
class MediaTypes<T> extends Array<T> {
47
unknownMediaType = 'application/octet-stream';
58

0 commit comments

Comments
 (0)