Skip to content

Commit

Permalink
fix: Type definitions
Browse files Browse the repository at this point in the history
  • Loading branch information
nzakas committed Jun 19, 2024
1 parent b661d79 commit 9c41c91
Show file tree
Hide file tree
Showing 10 changed files with 60 additions and 53 deletions.
4 changes: 2 additions & 2 deletions js/rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ export default [
plugins: [
copy({
targets: [
{ src: "src/typings.d.ts", dest: "dist/" },
{ src: "src/typings.d.ts", dest: "temp/" }
{ src: "src/typedefs.ts", dest: "dist/" },
{ src: "src/typedefs.ts", dest: "temp/" }
]
})
]
Expand Down
4 changes: 2 additions & 2 deletions js/src/errors.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
// Typedefs
//-----------------------------------------------------------------------------

/** @typedef {import("./typings").Location} Location */
/** @typedef {import("./typings").Token} Token */
/** @typedef {import("./typedefs").Location} Location */
/** @typedef {import("./typedefs").Token} Token */

//-----------------------------------------------------------------------------
// Errors
Expand Down
26 changes: 13 additions & 13 deletions js/src/evaluate.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@
// Typedefs
//-----------------------------------------------------------------------------

/** @typedef {import("./typings").Node} Node */
/** @typedef {import("./typings").NodeParts} NodeParts */
/** @typedef {import("./typings").DocumentNode} DocumentNode */
/** @typedef {import("./typings").StringNode} StringNode */
/** @typedef {import("./typings").NumberNode} NumberNode */
/** @typedef {import("./typings").BooleanNode} BooleanNode */
/** @typedef {import("./typings").MemberNode} MemberNode */
/** @typedef {import("./typings").ObjectNode} ObjectNode */
/** @typedef {import("./typings").ElementNode} ElementNode */
/** @typedef {import("./typings").ArrayNode} ArrayNode */
/** @typedef {import("./typings").NullNode} NullNode */
/** @typedef {import("./typings").AnyNode} AnyNode */
/** @typedef {import("./typings").JSONValue} JSONValue */
/** @typedef {import("./typedefs").Node} Node */
/** @typedef {import("./typedefs").NodeParts} NodeParts */
/** @typedef {import("./typedefs").DocumentNode} DocumentNode */
/** @typedef {import("./typedefs").StringNode} StringNode */
/** @typedef {import("./typedefs").NumberNode} NumberNode */
/** @typedef {import("./typedefs").BooleanNode} BooleanNode */
/** @typedef {import("./typedefs").MemberNode} MemberNode */
/** @typedef {import("./typedefs").ObjectNode} ObjectNode */
/** @typedef {import("./typedefs").ElementNode} ElementNode */
/** @typedef {import("./typedefs").ArrayNode} ArrayNode */
/** @typedef {import("./typedefs").NullNode} NullNode */
/** @typedef {import("./typedefs").AnyNode} AnyNode */
/** @typedef {import("./typedefs").JSONValue} JSONValue */

//-----------------------------------------------------------------------------
// Exports
Expand Down
30 changes: 15 additions & 15 deletions js/src/parse.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,21 @@ import { UnexpectedToken, ErrorWithLocation, UnexpectedEOF } from "./errors.js";
// Typedefs
//-----------------------------------------------------------------------------

/** @typedef {import("./typings").Location} Location */
/** @typedef {import("./typings").Token} Token */
/** @typedef {import("./typings").TokenType} TokenType */
/** @typedef {import("./typings").Node} Node */
/** @typedef {import("./typings").Mode} Mode */
/** @typedef {import("./typings").ParseOptions} ParseOptions */
/** @typedef {import("./typings").DocumentNode} DocumentNode */
/** @typedef {import("./typings").StringNode} StringNode */
/** @typedef {import("./typings").NumberNode} NumberNode */
/** @typedef {import("./typings").BooleanNode} BooleanNode */
/** @typedef {import("./typings").MemberNode} MemberNode */
/** @typedef {import("./typings").ObjectNode} ObjectNode */
/** @typedef {import("./typings").ElementNode} ElementNode */
/** @typedef {import("./typings").ArrayNode} ArrayNode */
/** @typedef {import("./typings").NullNode} NullNode */
/** @typedef {import("./typedefs").Location} Location */
/** @typedef {import("./typedefs").Token} Token */
/** @typedef {import("./typedefs").TokenType} TokenType */
/** @typedef {import("./typedefs").Node} Node */
/** @typedef {import("./typedefs").Mode} Mode */
/** @typedef {import("./typedefs").ParseOptions} ParseOptions */
/** @typedef {import("./typedefs").DocumentNode} DocumentNode */
/** @typedef {import("./typedefs").StringNode} StringNode */
/** @typedef {import("./typedefs").NumberNode} NumberNode */
/** @typedef {import("./typedefs").BooleanNode} BooleanNode */
/** @typedef {import("./typedefs").MemberNode} MemberNode */
/** @typedef {import("./typedefs").ObjectNode} ObjectNode */
/** @typedef {import("./typedefs").ElementNode} ElementNode */
/** @typedef {import("./typedefs").ArrayNode} ArrayNode */
/** @typedef {import("./typedefs").NullNode} NullNode */

//-----------------------------------------------------------------------------
// Helpers
Expand Down
4 changes: 2 additions & 2 deletions js/src/print.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ import { evaluate } from "./evaluate.js";
// Typedefs
//-----------------------------------------------------------------------------

/** @typedef {import("./typings").Location} Location */
/** @typedef {import("./typings").AnyNode} AnyNode */
/** @typedef {import("./typedefs").Location} Location */
/** @typedef {import("./typedefs").AnyNode} AnyNode */

//-----------------------------------------------------------------------------
// Exports
Expand Down
2 changes: 1 addition & 1 deletion js/src/syntax.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
// Types
//-----------------------------------------------------------------------------

/** @typedef {import("./typings").TokenType} TokenType */
/** @typedef {import("./typedefs").TokenType} TokenType */

//-----------------------------------------------------------------------------
// Predefined Tokens
Expand Down
8 changes: 4 additions & 4 deletions js/src/tokens.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ import { UnexpectedChar, UnexpectedEOF } from "./errors.js";
// Typedefs
//-----------------------------------------------------------------------------

/** @typedef {import("./typings").Location} Location */
/** @typedef {import("./typings").Token} Token */
/** @typedef {import("./typings").TokenType} TokenType */
/** @typedef {import("./typings").TokenizeOptions} TokenizeOptions */
/** @typedef {import("./typedefs").Location} Location */
/** @typedef {import("./typedefs").Token} Token */
/** @typedef {import("./typedefs").TokenType} TokenType */
/** @typedef {import("./typedefs").TokenizeOptions} TokenizeOptions */

//-----------------------------------------------------------------------------
// Helpers
Expand Down
5 changes: 3 additions & 2 deletions js/src/traversal.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
// Typedefs
//-----------------------------------------------------------------------------

/** @typedef {import("./typings").Node} Node */
/** @typedef {import("./typedefs").Node} Node */
/** @typedef {import("./typedefs").TraversalPhase} TraversalPhase */

//-----------------------------------------------------------------------------
// Data
Expand Down Expand Up @@ -103,7 +104,7 @@ export function traverse(root, visitor) {
* @param {Node} root The root AST node to traverse.
* @param {FilterPredicate} [filter] A filter function to determine which steps to
* return;
* @returns {Iterator} An iterator over the AST.
* @returns {IterableIterator<{node:Node,parent:Node|undefined,phase:TraversalPhase}>} An iterator over the AST.
*/
export function iterator(root, filter = () => true) {

Expand Down
6 changes: 6 additions & 0 deletions js/src/typings.d.ts → js/src/typedefs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@
*/
export type Mode = "json" | "jsonc";

/**
* The phase of the traversal step.
*/
export type TraversalPhase = "enter" | "exit";

/**
* Tokenization options.
*/
Expand Down Expand Up @@ -64,6 +69,7 @@ export interface Node {
export interface DocumentNode extends Node {
type: "Document";
body: ValueNode;
tokens?: Array<Token>;
}

export interface NullNode extends Node {
Expand Down
24 changes: 12 additions & 12 deletions js/src/types.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@
// Typedefs
//-----------------------------------------------------------------------------

/** @typedef {import("./typings").Location} Location */
/** @typedef {import("./typings").NodeParts} NodeParts */
/** @typedef {import("./typings").DocumentNode} DocumentNode */
/** @typedef {import("./typings").StringNode} StringNode */
/** @typedef {import("./typings").NumberNode} NumberNode */
/** @typedef {import("./typings").BooleanNode} BooleanNode */
/** @typedef {import("./typings").MemberNode} MemberNode */
/** @typedef {import("./typings").ObjectNode} ObjectNode */
/** @typedef {import("./typings").ElementNode} ElementNode */
/** @typedef {import("./typings").ArrayNode} ArrayNode */
/** @typedef {import("./typings").NullNode} NullNode */
/** @typedef {import("./typings").ValueNode} ValueNode */
/** @typedef {import("./typedefs").Location} Location */
/** @typedef {import("./typedefs").NodeParts} NodeParts */
/** @typedef {import("./typedefs").DocumentNode} DocumentNode */
/** @typedef {import("./typedefs").StringNode} StringNode */
/** @typedef {import("./typedefs").NumberNode} NumberNode */
/** @typedef {import("./typedefs").BooleanNode} BooleanNode */
/** @typedef {import("./typedefs").MemberNode} MemberNode */
/** @typedef {import("./typedefs").ObjectNode} ObjectNode */
/** @typedef {import("./typedefs").ElementNode} ElementNode */
/** @typedef {import("./typedefs").ArrayNode} ArrayNode */
/** @typedef {import("./typedefs").NullNode} NullNode */
/** @typedef {import("./typedefs").ValueNode} ValueNode */

//-----------------------------------------------------------------------------
// Exports
Expand Down

0 comments on commit 9c41c91

Please sign in to comment.