slack-message-parser
Advanced tools
Comparing version 1.0.7 to 1.1.0
@@ -10,2 +10,8 @@ # Changelog | ||
## [1.1.0] - 2021-05-25 | ||
### Added | ||
- Add `source` property to all node types (Issue: [#29](https://github.com/pocka/slack-message-parser/issues/29)). | ||
## [1.0.7] - 2020-12-10 | ||
@@ -12,0 +18,0 @@ |
@@ -27,5 +27,6 @@ # API | ||
| Name | Type | Description | | ||
| ---- | ---------------- | ---------------- | | ||
| type | Number(NodeType) | Type of the node | | ||
| Name | Type | Description | | ||
| ------ | ---------------- | ---------------------- | | ||
| type | Number(NodeType) | Type of the node | | ||
| source | String | Raw string of the node | | ||
@@ -32,0 +33,0 @@ You can test the type with `NodeType` object (which is actually TypeScript enum). |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.topOfLine = exports.explicit = exports.regexp = exports.or = void 0; | ||
exports.or = (parsers) => { | ||
const or = (parsers) => { | ||
const { length } = parsers; | ||
@@ -16,3 +16,4 @@ return (text, position, rootParser) => { | ||
}; | ||
exports.regexp = (pattern, callback) => (text, position, parseText) => { | ||
exports.or = or; | ||
const regexp = (pattern, callback) => (text, position, parseText) => { | ||
const match = text.substring(position).match(pattern); | ||
@@ -24,3 +25,4 @@ if (!match) { | ||
}; | ||
exports.explicit = (parser) => (text, position, parseText) => { | ||
exports.regexp = regexp; | ||
const explicit = (parser) => (text, position, parseText) => { | ||
const prevChar = text.charAt(position - 1); | ||
@@ -32,3 +34,4 @@ if (prevChar && !prevChar.match(/[\s.,([{!?\-=]/)) { | ||
}; | ||
exports.topOfLine = (parser) => (text, position, parseText) => { | ||
exports.explicit = explicit; | ||
const topOfLine = (parser) => (text, position, parseText) => { | ||
if (position > 0 && text.charAt(position - 1) !== '\n') { | ||
@@ -39,2 +42,3 @@ return null; | ||
}; | ||
exports.topOfLine = topOfLine; | ||
//# sourceMappingURL=combinator.js.map |
@@ -10,3 +10,3 @@ "use strict"; | ||
var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); | ||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
}; | ||
@@ -26,3 +26,4 @@ Object.defineProperty(exports, "__esModule", { value: true }); | ||
type: Node_1.NodeType.Text, | ||
text: textBuffer | ||
text: textBuffer, | ||
source: textBuffer | ||
}); | ||
@@ -48,10 +49,12 @@ textBuffer = ''; | ||
}; | ||
exports.parse = (message) => { | ||
const parse = (message) => { | ||
return { | ||
type: Node_1.NodeType.Root, | ||
children: parseText(message) | ||
children: parseText(message), | ||
source: message | ||
}; | ||
}; | ||
exports.parse = parse; | ||
exports.default = exports.parse; | ||
__exportStar(require("./types/Node"), exports); | ||
//# sourceMappingURL=index.js.map |
@@ -10,3 +10,4 @@ "use strict"; | ||
type: Node_1.NodeType.Bold, | ||
children: parseText(content) | ||
children: parseText(content), | ||
source: matchedText | ||
}, | ||
@@ -21,3 +22,4 @@ position + matchedText.length | ||
type: Node_1.NodeType.Code, | ||
text: content | ||
text: content, | ||
source: matchedText | ||
}, | ||
@@ -32,3 +34,4 @@ position + matchedText.length | ||
type: Node_1.NodeType.PreText, | ||
text: content | ||
text: content, | ||
source: matchedText | ||
}, | ||
@@ -43,3 +46,4 @@ position + matchedText.length | ||
type: Node_1.NodeType.Italic, | ||
children: parseText(content) | ||
children: parseText(content), | ||
source: matchedText | ||
}, | ||
@@ -54,3 +58,4 @@ position + matchedText.length | ||
type: Node_1.NodeType.Strike, | ||
children: parseText(content) | ||
children: parseText(content), | ||
source: matchedText | ||
}, | ||
@@ -70,7 +75,9 @@ position + matchedText.length | ||
type: Node_1.NodeType.Text, | ||
text: repeatedGt[1] | ||
text: repeatedGt[1], | ||
source: repeatedGt[1] | ||
}, | ||
...parseText(repeatedGt[3]) | ||
] | ||
: parseText(content) | ||
: parseText(content), | ||
source: matchedText | ||
}, | ||
@@ -85,3 +92,4 @@ position + matchedText.length | ||
type: Node_1.NodeType.Quote, | ||
children: parseText(content) | ||
children: parseText(content), | ||
source: matchedText | ||
}, | ||
@@ -97,3 +105,4 @@ position + matchedText.length | ||
name, | ||
variation | ||
variation, | ||
source: matchedText | ||
}, | ||
@@ -113,3 +122,4 @@ position + matchedText.length | ||
userID: link.slice(1), | ||
label: labelNodes | ||
label: labelNodes, | ||
source: matchedText | ||
}, | ||
@@ -123,3 +133,4 @@ nextPosition | ||
channelID: link.slice(1), | ||
label: labelNodes | ||
label: labelNodes, | ||
source: matchedText | ||
}, | ||
@@ -135,3 +146,4 @@ nextPosition | ||
arguments: args, | ||
label: labelNodes | ||
label: labelNodes, | ||
source: matchedText | ||
}, | ||
@@ -145,3 +157,4 @@ nextPosition | ||
url: link, | ||
label: labelNodes | ||
label: labelNodes, | ||
source: matchedText | ||
}, | ||
@@ -148,0 +161,0 @@ nextPosition |
@@ -19,2 +19,3 @@ export declare enum NodeType { | ||
type: NodeType; | ||
source: string; | ||
} | ||
@@ -21,0 +22,0 @@ export interface Text extends NodeBase { |
{ | ||
"name": "slack-message-parser", | ||
"version": "1.0.7", | ||
"version": "1.1.0", | ||
"description": "Parser for Slack message", | ||
@@ -37,3 +37,3 @@ "main": "lib/index.js", | ||
"tslint-config-prettier": "^1.15.0", | ||
"typescript": "^3.0.3", | ||
"typescript": "^4.2.4", | ||
"vuepress": "^1.2.0", | ||
@@ -40,0 +40,0 @@ "yarn": "^1.9.4" |
@@ -35,3 +35,4 @@ # slack-message-parser | ||
// type: NodeType.Text, | ||
// text: "Slack " | ||
// text: "Slack ", | ||
// . source: "Slack " | ||
// }, | ||
@@ -45,6 +46,8 @@ // { | ||
// } | ||
// ] | ||
// ], | ||
// . source: "*message*" | ||
// }, | ||
// ... | ||
// ] | ||
// ], | ||
// source: "Slack *message* ~to~ _parse_" | ||
// } | ||
@@ -66,3 +69,4 @@ | ||
default: | ||
return '' | ||
// You can use `source` property, which every nodes have, to serialize unknown nodes as-is | ||
return node.source | ||
} | ||
@@ -69,0 +73,0 @@ } |
@@ -17,3 +17,4 @@ import { Node, NodeType } from './types/Node' | ||
type: NodeType.Text, | ||
text: textBuffer | ||
text: textBuffer, | ||
source: textBuffer | ||
}) | ||
@@ -51,3 +52,4 @@ | ||
type: NodeType.Root, | ||
children: parseText(message) | ||
children: parseText(message), | ||
source: message | ||
} | ||
@@ -54,0 +56,0 @@ } |
@@ -14,3 +14,4 @@ import { NodeType } from './types/Node' | ||
type: NodeType.Bold, | ||
children: parseText(content) | ||
children: parseText(content), | ||
source: matchedText | ||
}, | ||
@@ -30,3 +31,4 @@ position + matchedText.length | ||
type: NodeType.Code, | ||
text: content | ||
text: content, | ||
source: matchedText | ||
}, | ||
@@ -47,3 +49,4 @@ position + matchedText.length | ||
type: NodeType.PreText, | ||
text: content | ||
text: content, | ||
source: matchedText | ||
}, | ||
@@ -65,3 +68,4 @@ position + matchedText.length | ||
type: NodeType.Italic, | ||
children: parseText(content) | ||
children: parseText(content), | ||
source: matchedText | ||
}, | ||
@@ -83,3 +87,4 @@ position + matchedText.length | ||
type: NodeType.Strike, | ||
children: parseText(content) | ||
children: parseText(content), | ||
source: matchedText | ||
}, | ||
@@ -105,7 +110,9 @@ position + matchedText.length | ||
type: NodeType.Text, | ||
text: repeatedGt[1] | ||
text: repeatedGt[1], | ||
source: repeatedGt[1] | ||
}, | ||
...parseText(repeatedGt[3]) | ||
] | ||
: parseText(content) | ||
: parseText(content), | ||
source: matchedText | ||
}, | ||
@@ -124,3 +131,4 @@ position + matchedText.length | ||
type: NodeType.Quote, | ||
children: parseText(content) | ||
children: parseText(content), | ||
source: matchedText | ||
}, | ||
@@ -141,3 +149,4 @@ position + matchedText.length | ||
name, | ||
variation | ||
variation, | ||
source: matchedText | ||
}, | ||
@@ -162,3 +171,4 @@ position + matchedText.length | ||
userID: link.slice(1), | ||
label: labelNodes | ||
label: labelNodes, | ||
source: matchedText | ||
}, | ||
@@ -172,3 +182,4 @@ nextPosition | ||
channelID: link.slice(1), | ||
label: labelNodes | ||
label: labelNodes, | ||
source: matchedText | ||
}, | ||
@@ -185,3 +196,4 @@ nextPosition | ||
arguments: args, | ||
label: labelNodes | ||
label: labelNodes, | ||
source: matchedText | ||
}, | ||
@@ -195,3 +207,4 @@ nextPosition | ||
url: link, | ||
label: labelNodes | ||
label: labelNodes, | ||
source: matchedText | ||
}, | ||
@@ -198,0 +211,0 @@ nextPosition |
@@ -34,2 +34,7 @@ export enum NodeType { | ||
type: NodeType | ||
/** | ||
* Raw node text. | ||
*/ | ||
source: string | ||
} | ||
@@ -36,0 +41,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
42334
32
779
77