codesearch
v0.1.2
Published
Searches and retrieves matching code snippets from GitHub
Downloads
1
Readme
Code Search
Searches and retrieves matching code snippets from GitHub
Installation
npm install codesearch --save
Get a Token
Sign up on GitHub and generate a personal access token from the Developer Settings page
Functions
.token('TOKEN')
- pass your personal access token as an argument.search('TERM', 'LANGUAGE', callback)
- returns a JSON with the results of the search via a callbackTERM
: the term/word/function to search (ex: math.pow, addUser, setCookie etc.)LANGUAGE
: the programming language to search in (ex: javascript, php, ruby etc.)
Usage
const codeSearch = require('codesearch');
codeSearch.token('TOKEN');
codeSearch.search('math.pow', 'javascript', function (result) {
// Use the result
});
JSON Structure
The following is the structure of the resulting JSON file
{
searchTerm: 'The search term used',
searchLanguage: 'The search language used',
generatedBy: 'The module name',
generatedOn: 'The date in ISO format',
searchResults: [
{
similarityScore: 'The similarity of the result to the search term',
codeAuthor: 'The author of the result',
codeSnippet: 'The stringified version of the raw code snippet'
}
]
}
Example Result
The value of the codeSnippet
key can be parsed into normal text (without escape characters and other characters like \n
and \t
) by using JSON.parse()
{
searchTerm: 'setcookie',
searchLanguage: 'php',
generatedBy: 'codesearch',
generatedOn: '2018-02-22T02:12:38.813Z',
searchResults: [
{
similarityScore: 5.360942,
codeAuthor: 'ManWangIT',
codeSnippet: 'setCookie();'
},
{
similarityScore: 5.315576,
codeAuthor: 'eric1234',
codeSnippet: '<?php\n setcookie(\'cookie1\');\n setcookie(\'cookie2\');\n?>\n'
},
{
similarityScore: 5.0985513,
codeAuthor: 'hugoribeiroab',
codeSnippet: '<?php\r\n\t\t\t\tsetcookie("id");\r\n\t\t\t\tsetcookie("nome");\r\n\t\t\t\tsetcookie("sobrenome");\r\n\t\t\t\tsetcookie("ag");\r\n\t\t\t\tsetcookie("conta");\r\n\t\t\t\tsetcookie("ativo");\r\n\t\t\t\tsetcookie("agenciamoeda");\r\n\t\t\t\tsetcookie("agencianome");\r\n\t\t\t\theader("location: ./");\r\n?>'
}
]
}
Tests
Pass in your personal access token to run the tests
npm test TOKEN