Compare commits
29 Commits
Author | SHA1 | Date | |
---|---|---|---|
c34f9611f9 | |||
820360a220 | |||
3893985bb2 | |||
33e19c54d9 | |||
074996433e | |||
6a803f1db9 | |||
927262d6d4 | |||
df39887de9 | |||
2b52b76ac6 | |||
136a06ff68 | |||
44bb4fa9ae | |||
93d5fc3070 | |||
08cd48b7bc | |||
bb17908ef5 | |||
3b8e31c8b0 | |||
a990c5ca32 | |||
2d4c480c1b | |||
05cd515824 | |||
bd4de36143 | |||
6a1fb1ec50 | |||
930f351626 | |||
9f6ab54a05 | |||
dcd7423921 | |||
5de7c2517d | |||
203a31addd | |||
2db9ba50d2 | |||
0a6724d80e | |||
1ed96d6d16 | |||
4c42bab6b9 |
28
.gitlab-ci.yml
Normal file
28
.gitlab-ci.yml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
image: hosttoday/ht-docker-node:npmci
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- test
|
||||||
|
- release
|
||||||
|
|
||||||
|
testLTS:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- npmci test lts
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
testSTABLE:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- npmci test stable
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
release:
|
||||||
|
stage: release
|
||||||
|
script:
|
||||||
|
- npmci publish
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
tags:
|
||||||
|
- docker
|
12
.travis.yml
12
.travis.yml
@ -1,12 +0,0 @@
|
|||||||
language: node_js
|
|
||||||
node_js:
|
|
||||||
- '4.3.0'
|
|
||||||
- 'stable'
|
|
||||||
deploy:
|
|
||||||
provider: npm
|
|
||||||
email: npm@lossless.digital
|
|
||||||
api_key:
|
|
||||||
secure: oKx1gdYYBnaoUcpxn3WM4SdZdInIYaa3ZgbXLSh88K+PjbcSw3NNbYEnAtWFV1eAQQchDjOHId4D1Ne68DtJb5umahvhYoejtZzawjPaa6Uyi46VPk31wXYzZJyadiyefuwOhLLMM4i3yzYwEC2BeTpbU8Tvaj6B42DoySKNGUnSF9+K2wsFNp13mRje6PLe+fjo+9H4CEKLwf74alwvAWd/PLzv47KKdCZ4/9zX7TxevrIBNie+n6VxjqXm/dTv9k7J3dCunojehBr9X9sn1sd8mR+FexjcgfCA2dz8ViP8qZCslzZixGVuasmjpQH9OabrlOfQ6e+Hs4puv+U7s53SVa9nWntiYHloT29UKCPG6ofuDFq5Nd+1PCNvPfrh99F87IKTOw9DQ9Lx7Q//To4LrbnsC85/uHgkWHhbr/ZGax7wuX9og1rem1MSjYr7gQ1sx9edtDSQe3Yjhi22xDREL5/uCbnThmrd1P44CtAU7UG4TQvnHADFqi4Oogf/VBQvsC+aUJPSfZuoxX31yCYuNToH65j1Vblj9tYuPdHSriPj2OdxbuWh68lpgsh7K64Imb++3oKjh3fKZEzeJsByI+QytyUwO/Qu1c6whlkyv8yMyoaD0WARufU+zcG4P7j4rFlAO/CoezSd6l5HBUiXJNe7XniIi6KZjA1zkZc=
|
|
||||||
on:
|
|
||||||
tags: true
|
|
||||||
repo: pushrocks/smartstring
|
|
39
README.md
39
README.md
@ -1,2 +1,39 @@
|
|||||||
# smartstring
|
# smartstring
|
||||||
handle strings in smart ways.
|
handle strings in smart ways. TypeScript ready.
|
||||||
|
|
||||||
|
## Status
|
||||||
|
[](https://travis-ci.org/pushrocks/smartstring)
|
||||||
|
[](https://ci.appveyor.com/project/philkunz/smartstring/branch/master)
|
||||||
|
[](https://david-dm.org/pushrocks/smartstring)
|
||||||
|
[](https://www.bithound.io/github/pushrocks/smartstring/master/dependencies/npm)
|
||||||
|
[](https://www.bithound.io/github/pushrocks/smartstring)
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
Use TypeScript for intellisense.
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
import * as smartstring from "smartstring";
|
||||||
|
|
||||||
|
// smartstring.GitRepo class
|
||||||
|
let myGitRepo = new smartstring.GitRepo("git@github.com:someorg/somerepo.git"); // takes https and git and npm repo URL versions
|
||||||
|
myGitRepo.host // "github.com"
|
||||||
|
myGitRepo.user // "someorg"
|
||||||
|
myGitRepo.repo // "somerepo"
|
||||||
|
myGitRepo.accessToken // accessToken if specified with https
|
||||||
|
myGitRepo.sshUrl // "git@github.com:someorg/somerepo.git" (computed also from https)
|
||||||
|
myGitRepo.httpsUrl // "https://github.com/someorg/somerepo.git" (computed also from ssh)
|
||||||
|
|
||||||
|
// smartstring.Domain class
|
||||||
|
let myDomain = new smartstring.Domain("https://sub.main.tld");
|
||||||
|
myDomain.level1 // "tld"
|
||||||
|
myDomain.level2 // "main"
|
||||||
|
// level3 , level 4 and so on...
|
||||||
|
myDomain.zoneName // "main.tld"
|
||||||
|
myDOmain.protocol // "https"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## About the authors:
|
||||||
|
[](https://lossless.com/)
|
||||||
|
|
||||||
|
[](https://paypal.me/lossless)
|
||||||
|
10
appveyor.yml
Normal file
10
appveyor.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
environment:
|
||||||
|
nodejs_version: "4"
|
||||||
|
install:
|
||||||
|
- ps: Install-Product node $env:nodejs_version
|
||||||
|
- npm install
|
||||||
|
test_script:
|
||||||
|
- node --version
|
||||||
|
- npm --version
|
||||||
|
- npm test
|
||||||
|
build: off
|
7
dist/index.d.ts
vendored
Normal file
7
dist/index.d.ts
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import "typings-global";
|
||||||
|
import SmartstringDocker = require("./smartstring.docker");
|
||||||
|
import SmartstringTypescript = require("./smartstring.typescript");
|
||||||
|
export { Domain } from "./smartstring.domain";
|
||||||
|
export { GitRepo } from "./smartstring.git";
|
||||||
|
export declare let docker: typeof SmartstringDocker;
|
||||||
|
export declare let typescript: typeof SmartstringTypescript;
|
18
dist/index.js
vendored
18
dist/index.js
vendored
@ -1,8 +1,12 @@
|
|||||||
/// <reference path="./typings/main.d.ts" />
|
"use strict";
|
||||||
var git = require("./smartstring.git");
|
require("typings-global");
|
||||||
var smartstring = {
|
var SmartstringDocker = require("./smartstring.docker");
|
||||||
git: git
|
var SmartstringTypescript = require("./smartstring.typescript");
|
||||||
};
|
var smartstring_domain_1 = require("./smartstring.domain");
|
||||||
module.exports = smartstring;
|
exports.Domain = smartstring_domain_1.Domain;
|
||||||
|
var smartstring_git_1 = require("./smartstring.git");
|
||||||
|
exports.GitRepo = smartstring_git_1.GitRepo;
|
||||||
|
exports.docker = SmartstringDocker;
|
||||||
|
exports.typescript = SmartstringTypescript;
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRDQUE0QztBQUM1QyxJQUFPLEdBQUcsV0FBVyxtQkFBbUIsQ0FBQyxDQUFDO0FBRTFDLElBQUksV0FBVyxHQUFHO0lBQ2QsR0FBRyxFQUFHLEdBQUc7Q0FDWixDQUFDO0FBRUYsaUJBQVMsV0FBVyxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vdHlwaW5ncy9tYWluLmQudHNcIiAvPlxuaW1wb3J0IGdpdCA9IHJlcXVpcmUoXCIuL3NtYXJ0c3RyaW5nLmdpdFwiKTtcblxubGV0IHNtYXJ0c3RyaW5nID0ge1xuICAgIGdpdCA6IGdpdFxufTtcblxuZXhwb3J0ID0gc21hcnRzdHJpbmc7Il0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUNQLENBQUMsQ0FEc0I7QUFDdkIsSUFBTyxpQkFBaUIsV0FBVyxzQkFBc0IsQ0FBQyxDQUFDO0FBQzNELElBQU8scUJBQXFCLFdBQVcsMEJBQTBCLENBQUMsQ0FBQztBQUVuRSxtQ0FBcUIsc0JBQXNCLENBQUM7QUFBcEMsNkNBQW9DO0FBQzVDLGdDQUFzQixtQkFBbUIsQ0FBQztBQUFsQyw0Q0FBa0M7QUFDL0IsY0FBTSxHQUFHLGlCQUFpQixDQUFDO0FBQzNCLGtCQUFVLEdBQUcscUJBQXFCLENBQUMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiXG5pbXBvcnQgU21hcnRzdHJpbmdEb2NrZXIgPSByZXF1aXJlKFwiLi9zbWFydHN0cmluZy5kb2NrZXJcIik7XG5pbXBvcnQgU21hcnRzdHJpbmdUeXBlc2NyaXB0ID0gcmVxdWlyZShcIi4vc21hcnRzdHJpbmcudHlwZXNjcmlwdFwiKTtcblxuZXhwb3J0IHtEb21haW59IGZyb20gXCIuL3NtYXJ0c3RyaW5nLmRvbWFpblwiO1xuZXhwb3J0IHtHaXRSZXBvfSBmcm9tIFwiLi9zbWFydHN0cmluZy5naXRcIjtcbmV4cG9ydCBsZXQgZG9ja2VyID0gU21hcnRzdHJpbmdEb2NrZXI7XG5leHBvcnQgbGV0IHR5cGVzY3JpcHQgPSBTbWFydHN0cmluZ1R5cGVzY3JpcHQ7Il19
|
||||||
|
7
dist/smartstring.docker.d.ts
vendored
Normal file
7
dist/smartstring.docker.d.ts
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import "typings-global";
|
||||||
|
/**
|
||||||
|
* converts an erray of env strings from docker remote api to an usable object.
|
||||||
|
* @param envArrayArg
|
||||||
|
* @returns {}
|
||||||
|
*/
|
||||||
|
export declare let makeEnvObject: (envArrayArg: string[]) => {};
|
19
dist/smartstring.docker.js
vendored
Normal file
19
dist/smartstring.docker.js
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
"use strict";
|
||||||
|
require("typings-global");
|
||||||
|
/**
|
||||||
|
* converts an erray of env strings from docker remote api to an usable object.
|
||||||
|
* @param envArrayArg
|
||||||
|
* @returns {}
|
||||||
|
*/
|
||||||
|
exports.makeEnvObject = function (envArrayArg) {
|
||||||
|
var returnObject = {};
|
||||||
|
var regexString = /(.*)=(.*)/;
|
||||||
|
for (var envKey in envArrayArg) {
|
||||||
|
var regexMatches = regexString.exec(envArrayArg[envKey]);
|
||||||
|
returnObject[regexMatches[1]] = regexMatches[2];
|
||||||
|
}
|
||||||
|
;
|
||||||
|
return returnObject;
|
||||||
|
};
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3RyaW5nLmRvY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFDUCxDQUFDLENBRHNCO0FBR3ZCOzs7O0dBSUc7QUFDUSxxQkFBYSxHQUFHLFVBQVMsV0FBb0I7SUFDcEQsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLElBQUksV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUM5QixHQUFHLENBQUEsQ0FBQyxJQUFJLE1BQU0sSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQzNCLElBQUksWUFBWSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDekQsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQUEsQ0FBQztJQUNGLE1BQU0sQ0FBQyxZQUFZLENBQUM7QUFDeEIsQ0FBQyxDQUFDIiwiZmlsZSI6InNtYXJ0c3RyaW5nLmRvY2tlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCJcbmltcG9ydCBwbHVnaW5zID0gcmVxdWlyZShcIi4vc21hcnRzdHJpbmcucGx1Z2luc1wiKTtcblxuLyoqXG4gKiBjb252ZXJ0cyBhbiBlcnJheSBvZiBlbnYgc3RyaW5ncyBmcm9tIGRvY2tlciByZW1vdGUgYXBpIHRvIGFuIHVzYWJsZSBvYmplY3QuXG4gKiBAcGFyYW0gZW52QXJyYXlBcmdcbiAqIEByZXR1cm5zIHt9XG4gKi9cbmV4cG9ydCBsZXQgbWFrZUVudk9iamVjdCA9IGZ1bmN0aW9uKGVudkFycmF5QXJnOnN0cmluZ1tdKXtcbiAgICBsZXQgcmV0dXJuT2JqZWN0ID0ge307XG4gICAgbGV0IHJlZ2V4U3RyaW5nID0gLyguKik9KC4qKS87XG4gICAgZm9yKGxldCBlbnZLZXkgaW4gZW52QXJyYXlBcmcpe1xuICAgICAgICBsZXQgcmVnZXhNYXRjaGVzID0gcmVnZXhTdHJpbmcuZXhlYyhlbnZBcnJheUFyZ1tlbnZLZXldKTtcbiAgICAgICAgcmV0dXJuT2JqZWN0W3JlZ2V4TWF0Y2hlc1sxXV0gPSByZWdleE1hdGNoZXNbMl07XG4gICAgfTtcbiAgICByZXR1cm4gcmV0dXJuT2JqZWN0O1xufTsiXX0=
|
15
dist/smartstring.domain.d.ts
vendored
Normal file
15
dist/smartstring.domain.d.ts
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import "typings-global";
|
||||||
|
export declare class Domain {
|
||||||
|
fullName: string;
|
||||||
|
level1: string;
|
||||||
|
level2: string;
|
||||||
|
level3: string;
|
||||||
|
level4: string;
|
||||||
|
level5: string;
|
||||||
|
protocol: string;
|
||||||
|
zoneName: string;
|
||||||
|
topLevel: string;
|
||||||
|
domainName: any;
|
||||||
|
subDomain: any;
|
||||||
|
constructor(domainStringArg: string);
|
||||||
|
}
|
48
dist/smartstring.domain.js
vendored
Normal file
48
dist/smartstring.domain.js
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
"use strict";
|
||||||
|
require("typings-global");
|
||||||
|
var Domain = (function () {
|
||||||
|
function Domain(domainStringArg) {
|
||||||
|
this.fullName = domainStringArg;
|
||||||
|
var regexMatches = domainRegex(domainStringArg);
|
||||||
|
for (var i = 1; i <= 5; i++) {
|
||||||
|
if (regexMatches[i - 1]) {
|
||||||
|
this["level" + i.toString()] = regexMatches[i - 1];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this["level" + i.toString()] = undefined;
|
||||||
|
}
|
||||||
|
;
|
||||||
|
}
|
||||||
|
;
|
||||||
|
this.protocol = protocolRegex(domainStringArg);
|
||||||
|
this.zoneName = this.level2 + "." + this.level1;
|
||||||
|
// aliases
|
||||||
|
this.topLevel = this.level1;
|
||||||
|
this.domainName = this.level2;
|
||||||
|
this.subDomain = this.level3;
|
||||||
|
}
|
||||||
|
return Domain;
|
||||||
|
}());
|
||||||
|
exports.Domain = Domain;
|
||||||
|
var domainRegex = function (stringArg) {
|
||||||
|
var regexString = /([a-zA-Z0-9]*)\.{0,1}([a-zA-Z0-9]*)\.{0,1}([a-zA-Z0-9]*)\.{0,1}([a-zA-Z0-9]*)\.{0,1}([a-zA-Z0-9]*)\.{0,1}$/;
|
||||||
|
var regexMatches = regexString.exec(stringArg);
|
||||||
|
regexMatches.reverse(); //make sure we build the domain from toplevel to subdomain (reversed order)
|
||||||
|
regexMatches.pop(); // pop the last element, which is, since we reversed the Array, the full String of matched elements
|
||||||
|
var regexMatchesFiltered = regexMatches.filter(function (stringArg) {
|
||||||
|
return (stringArg != "");
|
||||||
|
});
|
||||||
|
return regexMatchesFiltered;
|
||||||
|
};
|
||||||
|
var protocolRegex = function (stringArg) {
|
||||||
|
var regexString = /^([a-zA-Z0-9]*):\/\//;
|
||||||
|
var regexMatches = regexString.exec(stringArg);
|
||||||
|
if (regexMatches) {
|
||||||
|
return regexMatches[1];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3RyaW5nLmRvbWFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFDUCxDQUFDLENBRHNCO0FBR3ZCO0lBYUksZ0JBQVksZUFBc0I7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUM7UUFDaEMsSUFBSSxZQUFZLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hELEdBQUcsQ0FBQSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFDLENBQUM7WUFDeEIsRUFBRSxDQUFBLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtZQUN0RCxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7WUFDN0MsQ0FBQztZQUFBLENBQUM7UUFDTixDQUFDO1FBQUEsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUVoRCxVQUFVO1FBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUNMLGFBQUM7QUFBRCxDQS9CQSxBQStCQyxJQUFBO0FBL0JZLGNBQU0sU0ErQmxCLENBQUE7QUFHRCxJQUFJLFdBQVcsR0FBRyxVQUFTLFNBQWdCO0lBQ3ZDLElBQUksV0FBVyxHQUFHLDRHQUE0RyxDQUFDO0lBQy9ILElBQUksWUFBWSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsMkVBQTJFO0lBQ25HLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLG1HQUFtRztJQUN2SCxJQUFJLG9CQUFvQixHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBUyxTQUFnQjtRQUNwRSxNQUFNLENBQUEsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsb0JBQW9CLENBQUM7QUFDaEMsQ0FBQyxDQUFDO0FBRUYsSUFBSSxhQUFhLEdBQUcsVUFBUyxTQUFnQjtJQUN6QyxJQUFJLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQztJQUN6QyxJQUFJLFlBQVksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLEVBQUUsQ0FBQSxDQUFDLFlBQVksQ0FBQyxDQUFBLENBQUM7UUFDYixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDckIsQ0FBQztBQUNMLENBQUMsQ0FBQSIsImZpbGUiOiJzbWFydHN0cmluZy5kb21haW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiXG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3NtYXJ0c3RyaW5nLnBsdWdpbnNcIik7XG5cbmV4cG9ydCBjbGFzcyBEb21haW4ge1xuICAgIGZ1bGxOYW1lOnN0cmluZztcbiAgICBsZXZlbDE6c3RyaW5nO1xuICAgIGxldmVsMjpzdHJpbmc7XG4gICAgbGV2ZWwzOnN0cmluZztcbiAgICBsZXZlbDQ6c3RyaW5nO1xuICAgIGxldmVsNTpzdHJpbmc7XG4gICAgcHJvdG9jb2w6c3RyaW5nO1xuICAgIHpvbmVOYW1lOnN0cmluZztcbiAgICAvL2FsaWFzZXNcbiAgICB0b3BMZXZlbDpzdHJpbmc7XG4gICAgZG9tYWluTmFtZTtcbiAgICBzdWJEb21haW47XG4gICAgY29uc3RydWN0b3IoZG9tYWluU3RyaW5nQXJnOnN0cmluZyl7XG4gICAgICAgIHRoaXMuZnVsbE5hbWUgPSBkb21haW5TdHJpbmdBcmc7XG4gICAgICAgIGxldCByZWdleE1hdGNoZXMgPSBkb21haW5SZWdleChkb21haW5TdHJpbmdBcmcpO1xuICAgICAgICBmb3IobGV0IGkgPSAxOyBpIDw9IDU7IGkrKyl7XG4gICAgICAgICAgICBpZihyZWdleE1hdGNoZXNbaSAtIDFdKSB7XG4gICAgICAgICAgICAgICAgdGhpc1tcImxldmVsXCIgKyBpLnRvU3RyaW5nKCldID0gcmVnZXhNYXRjaGVzW2kgLSAxXVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzW1wibGV2ZWxcIiArIGkudG9TdHJpbmcoKV0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnByb3RvY29sID0gcHJvdG9jb2xSZWdleChkb21haW5TdHJpbmdBcmcpO1xuICAgICAgICB0aGlzLnpvbmVOYW1lID0gdGhpcy5sZXZlbDIgKyBcIi5cIiArIHRoaXMubGV2ZWwxOyBcbiAgICAgICAgXG4gICAgICAgIC8vIGFsaWFzZXNcbiAgICAgICAgdGhpcy50b3BMZXZlbCA9IHRoaXMubGV2ZWwxO1xuICAgICAgICB0aGlzLmRvbWFpbk5hbWUgPSB0aGlzLmxldmVsMjtcbiAgICAgICAgdGhpcy5zdWJEb21haW4gPSB0aGlzLmxldmVsMztcbiAgICB9XG59XG5cblxubGV0IGRvbWFpblJlZ2V4ID0gZnVuY3Rpb24oc3RyaW5nQXJnOnN0cmluZyl7XG4gICAgbGV0IHJlZ2V4U3RyaW5nID0gLyhbYS16QS1aMC05XSopXFwuezAsMX0oW2EtekEtWjAtOV0qKVxcLnswLDF9KFthLXpBLVowLTldKilcXC57MCwxfShbYS16QS1aMC05XSopXFwuezAsMX0oW2EtekEtWjAtOV0qKVxcLnswLDF9JC87XG4gICAgbGV0IHJlZ2V4TWF0Y2hlcyA9IHJlZ2V4U3RyaW5nLmV4ZWMoc3RyaW5nQXJnKTtcbiAgICByZWdleE1hdGNoZXMucmV2ZXJzZSgpOyAvL21ha2Ugc3VyZSB3ZSBidWlsZCB0aGUgZG9tYWluIGZyb20gdG9wbGV2ZWwgdG8gc3ViZG9tYWluIChyZXZlcnNlZCBvcmRlcilcbiAgICByZWdleE1hdGNoZXMucG9wKCk7IC8vIHBvcCB0aGUgbGFzdCBlbGVtZW50LCB3aGljaCBpcywgc2luY2Ugd2UgcmV2ZXJzZWQgdGhlIEFycmF5LCB0aGUgZnVsbCBTdHJpbmcgb2YgbWF0Y2hlZCBlbGVtZW50c1xuICAgIGxldCByZWdleE1hdGNoZXNGaWx0ZXJlZCA9IHJlZ2V4TWF0Y2hlcy5maWx0ZXIoZnVuY3Rpb24oc3RyaW5nQXJnOnN0cmluZyl7XG4gICAgICAgIHJldHVybihzdHJpbmdBcmcgIT0gXCJcIik7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlZ2V4TWF0Y2hlc0ZpbHRlcmVkO1xufTtcblxubGV0IHByb3RvY29sUmVnZXggPSBmdW5jdGlvbihzdHJpbmdBcmc6c3RyaW5nKXtcbiAgICBsZXQgcmVnZXhTdHJpbmcgPSAvXihbYS16QS1aMC05XSopOlxcL1xcLy87XG4gICAgbGV0IHJlZ2V4TWF0Y2hlcyA9IHJlZ2V4U3RyaW5nLmV4ZWMoc3RyaW5nQXJnKTtcbiAgICBpZihyZWdleE1hdGNoZXMpe1xuICAgICAgICByZXR1cm4gcmVnZXhNYXRjaGVzWzFdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxufSJdfQ==
|
10
dist/smartstring.git.d.ts
vendored
Normal file
10
dist/smartstring.git.d.ts
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
import "typings-global";
|
||||||
|
export declare class GitRepo {
|
||||||
|
host: string;
|
||||||
|
user: string;
|
||||||
|
repo: string;
|
||||||
|
accessToken: string;
|
||||||
|
sshUrl: string;
|
||||||
|
httpsUrl: string;
|
||||||
|
constructor(stringArg: string, tokenArg?: string);
|
||||||
|
}
|
24
dist/smartstring.git.js
vendored
24
dist/smartstring.git.js
vendored
File diff suppressed because one or more lines are too long
2
dist/smartstring.plugins.d.ts
vendored
Normal file
2
dist/smartstring.plugins.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
import "typings-global";
|
||||||
|
export import beautylog = require("beautylog");
|
10
dist/smartstring.plugins.js
vendored
10
dist/smartstring.plugins.js
vendored
@ -1,7 +1,5 @@
|
|||||||
/// <reference path="./typings/main.d.ts" />
|
"use strict";
|
||||||
var plugins = {
|
require("typings-global");
|
||||||
beautylog: require("beautylog")
|
exports.beautylog = require("beautylog");
|
||||||
};
|
|
||||||
module.exports = plugins;
|
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3RyaW5nLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNENBQTRDO0FBQzVDLElBQUksT0FBTyxHQUFHO0lBQ1YsU0FBUyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7Q0FDbEMsQ0FBQztBQUVGLGlCQUFTLE9BQU8sQ0FBQyIsImZpbGUiOiJzbWFydHN0cmluZy5wbHVnaW5zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vdHlwaW5ncy9tYWluLmQudHNcIiAvPlxubGV0IHBsdWdpbnMgPSB7XG4gICAgYmVhdXR5bG9nOiByZXF1aXJlKFwiYmVhdXR5bG9nXCIpXG59O1xuXG5leHBvcnQgPSBwbHVnaW5zOyJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3RyaW5nLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBRVAsQ0FBQyxDQUZzQjtBQUVULGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUMiLCJmaWxlIjoic21hcnRzdHJpbmcucGx1Z2lucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCJcblxuZXhwb3J0IGltcG9ydCBiZWF1dHlsb2cgPSByZXF1aXJlKFwiYmVhdXR5bG9nXCIpOyJdfQ==
|
||||||
|
2
dist/smartstring.typescript.d.ts
vendored
Normal file
2
dist/smartstring.typescript.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
import "typings-global";
|
||||||
|
export declare let regexReferencePath: RegExp;
|
5
dist/smartstring.typescript.js
vendored
Normal file
5
dist/smartstring.typescript.js
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
"use strict";
|
||||||
|
require("typings-global");
|
||||||
|
exports.regexReferencePath = /\/\/\/\s*<reference\s+path\s*=\s*["|'].*["|']\s*\/>\s*[\\n]?/;
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3RyaW5nLnR5cGVzY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQ1AsQ0FBQyxDQURzQjtBQUdaLDBCQUFrQixHQUFHLDhEQUE4RCxDQUFBIiwiZmlsZSI6InNtYXJ0c3RyaW5nLnR5cGVzY3JpcHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiXG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3NtYXJ0c3RyaW5nLnBsdWdpbnNcIik7XG5cbmV4cG9ydCBsZXQgcmVnZXhSZWZlcmVuY2VQYXRoID0gL1xcL1xcL1xcL1xccyo8cmVmZXJlbmNlXFxzK3BhdGhcXHMqPVxccypbXCJ8J10uKltcInwnXVxccypcXC8+XFxzKltcXFxcbl0/LyJdfQ==
|
19
package.json
19
package.json
@ -1,14 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "smartstring",
|
"name": "smartstring",
|
||||||
"version": "0.0.2",
|
"version": "2.0.7",
|
||||||
"description": "bundles a bunch of (regex) matching and altering methods.",
|
"description": "handle strings in smart ways. TypeScript ready.",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
|
"typings": "dist/index.d.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "(npmts)"
|
"test": "(npmts)"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/pushrocks/smartstring.git"
|
"url": "git+https://gitlab.com/pushrocks/smartstring.git"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"regex",
|
"regex",
|
||||||
@ -17,14 +18,16 @@
|
|||||||
"author": "Lossless GmbH",
|
"author": "Lossless GmbH",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/pushrocks/smartstring/issues"
|
"url": "https://gitlab.com/pushrocks/smartstring/issues"
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/pushrocks/smartstring#readme",
|
"homepage": "https://gitlab.com/pushrocks/smartstring#readme",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"npmts": "^3.1.2",
|
"npmts-g": "^5.2.6",
|
||||||
"should": "^8.2.2"
|
"should": "^9.0.2",
|
||||||
|
"typings-test": "^1.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"beautylog": "^3.0.2"
|
"beautylog": "^5.0.12",
|
||||||
|
"typings-global": "^1.0.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1
test/test.d.ts
vendored
Normal file
1
test/test.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
import "typings-test";
|
66
test/test.js
66
test/test.js
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
|||||||
{"version":3,"file":"test.js","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,IAAI,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC9C,IAAI,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE/B,QAAQ,CAAC,aAAa,EAAC;IACnB,QAAQ,CAAC,QAAQ,EAAC;QACd,IAAI,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAClF,EAAE,CAAC,uBAAuB,EAAC;YACvB,OAAO,CAAC,IAAI;iBACP,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uBAAuB,EAAC;YACvB,OAAO,CAAC,IAAI;iBACP,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uBAAuB,EAAC;YACvB,OAAO,CAAC,IAAI;iBACP,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2BAA2B,EAAC;YAC3B,OAAO,CAAC,QAAQ;iBACX,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,yBAAyB,EAAC;YACzB,OAAO,CAAC,MAAM;iBACT,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAC"}
|
{"version":3,"file":"test.js","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,IAAI,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC9C,IAAI,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE/B,QAAQ,CAAC,aAAa,EAAC;IACnB,QAAQ,CAAC,QAAQ,EAAC;QACd,IAAI,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAClF,EAAE,CAAC,uBAAuB,EAAC;YACvB,OAAO,CAAC,IAAI;iBACP,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uBAAuB,EAAC;YACvB,OAAO,CAAC,IAAI;iBACP,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uBAAuB,EAAC;YACvB,OAAO,CAAC,IAAI;iBACP,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2BAA2B,EAAC;YAC3B,OAAO,CAAC,QAAQ;iBACX,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,yBAAyB,EAAC;YACzB,OAAO,CAAC,MAAM;iBACT,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAA;IACF,QAAQ,CAAC,SAAS,EAAC;QACf,QAAQ,CAAC,gBAAgB,EAAC;YACtB,EAAE,CAAC,4BAA4B,EAAC;gBAC5B,IAAI,cAAc,GAAG,CAAC,6BAA6B,EAAC,8BAA8B,CAAC,CAAC;gBACpF,IAAI,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBACjE,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACtD,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAC"}
|
62
test/test.ts
62
test/test.ts
@ -1,10 +1,42 @@
|
|||||||
/// <reference path="../ts/typings/main.d.ts" />
|
import "typings-test"
|
||||||
let smartstring = require("../dist/index.js");
|
import * as smartstring from "../dist/index";
|
||||||
let should = require("should");
|
let should = require("should");
|
||||||
|
|
||||||
describe("smartstring",function(){
|
describe("smartstring",function(){
|
||||||
describe(".git()",function(){
|
describe(".Domain class",function(){
|
||||||
let testGit = smartstring.git("git+https://github.com/pushrocks/smartstring.git");
|
let testDomain:smartstring.Domain;
|
||||||
|
let testDomain2:smartstring.Domain;
|
||||||
|
it("should create a new Domain object",function(){
|
||||||
|
testDomain = new smartstring.Domain("https://level3D.level2D.level1D");
|
||||||
|
testDomain.should.be.instanceof(smartstring.Domain);
|
||||||
|
console.log(testDomain);
|
||||||
|
});
|
||||||
|
it("should have a .topLevel",function(){
|
||||||
|
testDomain.topLevel.should.equal("level1D");
|
||||||
|
});
|
||||||
|
it("should have a .level2",function(){
|
||||||
|
testDomain.level2.should.equal("level2D");
|
||||||
|
});
|
||||||
|
it("should have a .level3",function(){
|
||||||
|
testDomain.level3.should.equal("level3D");
|
||||||
|
});
|
||||||
|
it("should have the correct dns zone name",function(){
|
||||||
|
testDomain.zoneName.should.equal("level2D.level1D");
|
||||||
|
})
|
||||||
|
it ("should have the correct protocol",function(){
|
||||||
|
testDomain.protocol.should.equal("https");
|
||||||
|
})
|
||||||
|
it("testDomain2 should be a basic domain",function(){
|
||||||
|
testDomain2 = new smartstring.Domain("bleu.de");
|
||||||
|
console.log(testDomain2);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
describe(".Git class",function(){
|
||||||
|
let testGit:smartstring.GitRepo;
|
||||||
|
it("should create a new Git class GitRepo",function(){
|
||||||
|
testGit = new smartstring.GitRepo("git+https://github.com/pushrocks/smartstring.git");
|
||||||
|
testGit.should.be.instanceof(smartstring.GitRepo);
|
||||||
|
})
|
||||||
it("should return a .host",function(){
|
it("should return a .host",function(){
|
||||||
testGit.host
|
testGit.host
|
||||||
.should.equal("github.com");
|
.should.equal("github.com");
|
||||||
@ -26,4 +58,26 @@ describe("smartstring",function(){
|
|||||||
.should.equal("git@github.com:pushrocks/smartstring.git");
|
.should.equal("git@github.com:pushrocks/smartstring.git");
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
describe(".docker",function(){
|
||||||
|
describe(".makeEnvObject",function(){
|
||||||
|
it("should create a Env Object",function(){
|
||||||
|
let envStringArray = ["VIRTUAL_HOST=sub.domain.tld","DEFAULT_HOST=some.domain.com"];
|
||||||
|
let envObject:any = smartstring.docker.makeEnvObject(envStringArray);
|
||||||
|
envObject.VIRTUAL_HOST.should.equal("sub.domain.tld");
|
||||||
|
envObject.DEFAULT_HOST.should.equal("some.domain.com");
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
describe(".typescript",function(){
|
||||||
|
describe(".referenceRegex",function(){
|
||||||
|
it("should match reference paths",function(){
|
||||||
|
smartstring.typescript.regexReferencePath.test("/// <reference path=\"\" />")
|
||||||
|
.should.be.true();
|
||||||
|
smartstring.typescript.regexReferencePath.test("/// <reference path='' />")
|
||||||
|
.should.be.true();
|
||||||
|
smartstring.typescript.regexReferencePath.test("/// <referencepath=\"\" />")
|
||||||
|
.should.be.false();
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
});
|
});
|
14
ts/index.ts
14
ts/index.ts
@ -1,8 +1,8 @@
|
|||||||
/// <reference path="./typings/main.d.ts" />
|
import "typings-global"
|
||||||
import git = require("./smartstring.git");
|
import SmartstringDocker = require("./smartstring.docker");
|
||||||
|
import SmartstringTypescript = require("./smartstring.typescript");
|
||||||
|
|
||||||
let smartstring = {
|
export {Domain} from "./smartstring.domain";
|
||||||
git : git
|
export {GitRepo} from "./smartstring.git";
|
||||||
};
|
export let docker = SmartstringDocker;
|
||||||
|
export let typescript = SmartstringTypescript;
|
||||||
export = smartstring;
|
|
17
ts/smartstring.docker.ts
Normal file
17
ts/smartstring.docker.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import "typings-global"
|
||||||
|
import plugins = require("./smartstring.plugins");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* converts an erray of env strings from docker remote api to an usable object.
|
||||||
|
* @param envArrayArg
|
||||||
|
* @returns {}
|
||||||
|
*/
|
||||||
|
export let makeEnvObject = function(envArrayArg:string[]){
|
||||||
|
let returnObject = {};
|
||||||
|
let regexString = /(.*)=(.*)/;
|
||||||
|
for(let envKey in envArrayArg){
|
||||||
|
let regexMatches = regexString.exec(envArrayArg[envKey]);
|
||||||
|
returnObject[regexMatches[1]] = regexMatches[2];
|
||||||
|
};
|
||||||
|
return returnObject;
|
||||||
|
};
|
57
ts/smartstring.domain.ts
Normal file
57
ts/smartstring.domain.ts
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
import "typings-global"
|
||||||
|
import plugins = require("./smartstring.plugins");
|
||||||
|
|
||||||
|
export class Domain {
|
||||||
|
fullName:string;
|
||||||
|
level1:string;
|
||||||
|
level2:string;
|
||||||
|
level3:string;
|
||||||
|
level4:string;
|
||||||
|
level5:string;
|
||||||
|
protocol:string;
|
||||||
|
zoneName:string;
|
||||||
|
//aliases
|
||||||
|
topLevel:string;
|
||||||
|
domainName;
|
||||||
|
subDomain;
|
||||||
|
constructor(domainStringArg:string){
|
||||||
|
this.fullName = domainStringArg;
|
||||||
|
let regexMatches = domainRegex(domainStringArg);
|
||||||
|
for(let i = 1; i <= 5; i++){
|
||||||
|
if(regexMatches[i - 1]) {
|
||||||
|
this["level" + i.toString()] = regexMatches[i - 1]
|
||||||
|
} else {
|
||||||
|
this["level" + i.toString()] = undefined;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
this.protocol = protocolRegex(domainStringArg);
|
||||||
|
this.zoneName = this.level2 + "." + this.level1;
|
||||||
|
|
||||||
|
// aliases
|
||||||
|
this.topLevel = this.level1;
|
||||||
|
this.domainName = this.level2;
|
||||||
|
this.subDomain = this.level3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
let domainRegex = function(stringArg:string){
|
||||||
|
let regexString = /([a-zA-Z0-9]*)\.{0,1}([a-zA-Z0-9]*)\.{0,1}([a-zA-Z0-9]*)\.{0,1}([a-zA-Z0-9]*)\.{0,1}([a-zA-Z0-9]*)\.{0,1}$/;
|
||||||
|
let regexMatches = regexString.exec(stringArg);
|
||||||
|
regexMatches.reverse(); //make sure we build the domain from toplevel to subdomain (reversed order)
|
||||||
|
regexMatches.pop(); // pop the last element, which is, since we reversed the Array, the full String of matched elements
|
||||||
|
let regexMatchesFiltered = regexMatches.filter(function(stringArg:string){
|
||||||
|
return(stringArg != "");
|
||||||
|
});
|
||||||
|
return regexMatchesFiltered;
|
||||||
|
};
|
||||||
|
|
||||||
|
let protocolRegex = function(stringArg:string){
|
||||||
|
let regexString = /^([a-zA-Z0-9]*):\/\//;
|
||||||
|
let regexMatches = regexString.exec(stringArg);
|
||||||
|
if(regexMatches){
|
||||||
|
return regexMatches[1];
|
||||||
|
} else {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
}
|
@ -1,10 +1,10 @@
|
|||||||
/// <reference path="./typings/main.d.ts" />
|
import "typings-global"
|
||||||
import plugins = require("./smartstring.plugins");
|
import plugins = require("./smartstring.plugins");
|
||||||
|
|
||||||
/* ---------------------------------------------- *
|
/* ---------------------------------------------- *
|
||||||
* ------------------ classes ------------------- *
|
* ------------------ classes ------------------- *
|
||||||
* ---------------------------------------------- */
|
* ---------------------------------------------- */
|
||||||
class gitRepo {
|
export class GitRepo {
|
||||||
host:string;
|
host:string;
|
||||||
user:string;
|
user:string;
|
||||||
repo:string;
|
repo:string;
|
||||||
@ -26,7 +26,7 @@ class gitRepo {
|
|||||||
* ------------------ helpers ------------------- *
|
* ------------------ helpers ------------------- *
|
||||||
* ---------------------------------------------- */
|
* ---------------------------------------------- */
|
||||||
let gitRegex = function(stringArg:string){
|
let gitRegex = function(stringArg:string){
|
||||||
let regexString = /(?:git\+|git\@|https\:\/\/|)(?:https\:\/\/|)([^\/|\:]*)(?:\/|:)([^\/]+)*(?:\/|:)([^\.]+)/;
|
let regexString = /([a-zA-Z0-9\-\.]*)(?:\/|\:)([a-zA-Z0-9\-]*)(?:\/)([a-zA-Z0-9\-]*)(?:\.git)/;
|
||||||
let regexMatches = regexString.exec(stringArg);
|
let regexMatches = regexString.exec(stringArg);
|
||||||
return regexMatches;
|
return regexMatches;
|
||||||
};
|
};
|
||||||
@ -51,13 +51,3 @@ let gitLink = function(hostArg:string, userArg:string, repoArg:string, tokenArg:
|
|||||||
}
|
}
|
||||||
return returnString;
|
return returnString;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ---------------------------------------------- *
|
|
||||||
* ------------------ exports ------------------- *
|
|
||||||
* ---------------------------------------------- */
|
|
||||||
let git = function(stringArg:string,tokenArg?:string){
|
|
||||||
let localGitRepo = new gitRepo(stringArg,tokenArg);
|
|
||||||
return localGitRepo;
|
|
||||||
};
|
|
||||||
|
|
||||||
export = git;
|
|
@ -1,6 +1,3 @@
|
|||||||
/// <reference path="./typings/main.d.ts" />
|
import "typings-global"
|
||||||
let plugins = {
|
|
||||||
beautylog: require("beautylog")
|
|
||||||
};
|
|
||||||
|
|
||||||
export = plugins;
|
export import beautylog = require("beautylog");
|
4
ts/smartstring.typescript.ts
Normal file
4
ts/smartstring.typescript.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
import "typings-global"
|
||||||
|
import plugins = require("./smartstring.plugins");
|
||||||
|
|
||||||
|
export let regexReferencePath = /\/\/\/\s*<reference\s+path\s*=\s*["|'].*["|']\s*\/>\s*[\\n]?/
|
Reference in New Issue
Block a user