Compare commits
31 Commits
Author | SHA1 | Date | |
---|---|---|---|
c2a4f05b33 | |||
3858127968 | |||
68d0124c24 | |||
16f41a7d63 | |||
d13dfc9e76 | |||
942f6b37cf | |||
211c7c3308 | |||
a55d6d2221 | |||
98ca73d0c7 | |||
ffedc7f601 | |||
8344fdf7b1 | |||
543dc98961 | |||
9c60105685 | |||
bdccf2c3a1 | |||
34d6df0923 | |||
3d3b07b7cb | |||
00004f70d6 | |||
2d263244c7 | |||
8cb1405d99 | |||
d357d6e52d | |||
c124f90a91 | |||
4bcf9f941e | |||
afb204325b | |||
cefbb6eecd | |||
c6a1a45812 | |||
00a892ee82 | |||
0eb6d13be9 | |||
c34f9611f9 | |||
820360a220 | |||
3893985bb2 | |||
33e19c54d9 |
9
.gitignore
vendored
9
.gitignore
vendored
@ -1,7 +1,4 @@
|
|||||||
.idea/
|
|
||||||
coverage/
|
coverage/
|
||||||
docs/
|
pages/
|
||||||
node_modules
|
public/
|
||||||
ts/**/*.js
|
node_modules/
|
||||||
ts/**/*.js.map
|
|
||||||
ts/typings/
|
|
||||||
|
@ -1,8 +1,18 @@
|
|||||||
image: hosttoday/ht-docker-node:latest
|
image: hosttoday/ht-docker-node:npmts
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- test
|
- test
|
||||||
- release
|
- release
|
||||||
|
- trigger
|
||||||
|
- pages
|
||||||
|
|
||||||
|
testLEGACY:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- npmci test legacy
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
allow_failure: true
|
||||||
|
|
||||||
testLTS:
|
testLTS:
|
||||||
stage: test
|
stage: test
|
||||||
@ -26,3 +36,24 @@ release:
|
|||||||
- tags
|
- tags
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
stage: trigger
|
||||||
|
script:
|
||||||
|
- npmci trigger
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
pages:
|
||||||
|
image: hosttoday/ht-docker-node:npmpage
|
||||||
|
stage: pages
|
||||||
|
script:
|
||||||
|
- npmci command npmpage --host gitlab
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
artifacts:
|
||||||
|
expire_in: 1 week
|
||||||
|
paths:
|
||||||
|
- public
|
||||||
|
21
README.md
21
README.md
@ -1,12 +1,21 @@
|
|||||||
# smartstring
|
# smartstring
|
||||||
handle strings in smart ways. TypeScript ready.
|
handle strings in smart ways. TypeScript ready.
|
||||||
|
|
||||||
## Status
|
## Availabililty
|
||||||
[](https://travis-ci.org/pushrocks/smartstring)
|
[](https://www.npmjs.com/package/smartstring)
|
||||||
[](https://ci.appveyor.com/project/philkunz/smartstring/branch/master)
|
[](https://gitlab.com/pushrocks/smartstring)
|
||||||
|
[](https://github.com/pushrocks/smartstring)
|
||||||
|
[](https://pushrocks.gitlab.io/smartstring/)
|
||||||
|
|
||||||
|
## Status for master
|
||||||
|
[](https://gitlab.com/pushrocks/smartstring/commits/master)
|
||||||
|
[](https://gitlab.com/pushrocks/smartstring/commits/master)
|
||||||
[](https://david-dm.org/pushrocks/smartstring)
|
[](https://david-dm.org/pushrocks/smartstring)
|
||||||
[](https://www.bithound.io/github/pushrocks/smartstring/master/dependencies/npm)
|
[](https://www.bithound.io/github/pushrocks/smartstring/master/dependencies/npm)
|
||||||
[](https://www.bithound.io/github/pushrocks/smartstring)
|
[](https://www.bithound.io/github/pushrocks/smartstring)
|
||||||
|
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||||
|
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||||
|
[](http://standardjs.com/)
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
Use TypeScript for intellisense.
|
Use TypeScript for intellisense.
|
||||||
@ -30,10 +39,6 @@ myDomain.level2 // "main"
|
|||||||
// level3 , level 4 and so on...
|
// level3 , level 4 and so on...
|
||||||
myDomain.zoneName // "main.tld"
|
myDomain.zoneName // "main.tld"
|
||||||
myDOmain.protocol // "https"
|
myDOmain.protocol // "https"
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## About the authors:
|
[](https://push.rocks)
|
||||||
[](https://lossless.com/)
|
|
||||||
|
|
||||||
[](https://paypal.me/lossless)
|
|
||||||
|
10
appveyor.yml
10
appveyor.yml
@ -1,10 +0,0 @@
|
|||||||
environment:
|
|
||||||
nodejs_version: "4"
|
|
||||||
install:
|
|
||||||
- ps: Install-Product node $env:nodejs_version
|
|
||||||
- npm install
|
|
||||||
test_script:
|
|
||||||
- node --version
|
|
||||||
- npm --version
|
|
||||||
- npm test
|
|
||||||
build: off
|
|
14
dist/index.d.ts
vendored
14
dist/index.d.ts
vendored
@ -1,7 +1,7 @@
|
|||||||
import "typings-global";
|
import * as docker from './smartstring.docker';
|
||||||
import SmartstringDocker = require("./smartstring.docker");
|
import * as indent from './smartstring.indent';
|
||||||
import SmartstringTypescript = require("./smartstring.typescript");
|
import * as typescript from './smartstring.typescript';
|
||||||
export { Domain } from "./smartstring.domain";
|
export { docker, typescript, indent };
|
||||||
export { GitRepo } from "./smartstring.git";
|
export { Base64 } from './smartstring.base64';
|
||||||
export declare let docker: typeof SmartstringDocker;
|
export { Domain } from './smartstring.domain';
|
||||||
export declare let typescript: typeof SmartstringTypescript;
|
export { GitRepo } from './smartstring.git';
|
||||||
|
16
dist/index.js
vendored
16
dist/index.js
vendored
@ -1,12 +1,14 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-global");
|
const docker = require("./smartstring.docker");
|
||||||
var SmartstringDocker = require("./smartstring.docker");
|
exports.docker = docker;
|
||||||
var SmartstringTypescript = require("./smartstring.typescript");
|
const indent = require("./smartstring.indent");
|
||||||
|
exports.indent = indent;
|
||||||
|
const typescript = require("./smartstring.typescript");
|
||||||
|
exports.typescript = typescript;
|
||||||
|
var smartstring_base64_1 = require("./smartstring.base64");
|
||||||
|
exports.Base64 = smartstring_base64_1.Base64;
|
||||||
var smartstring_domain_1 = require("./smartstring.domain");
|
var smartstring_domain_1 = require("./smartstring.domain");
|
||||||
exports.Domain = smartstring_domain_1.Domain;
|
exports.Domain = smartstring_domain_1.Domain;
|
||||||
var smartstring_git_1 = require("./smartstring.git");
|
var smartstring_git_1 = require("./smartstring.git");
|
||||||
exports.GitRepo = smartstring_git_1.GitRepo;
|
exports.GitRepo = smartstring_git_1.GitRepo;
|
||||||
exports.docker = SmartstringDocker;
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0NBQThDO0FBSzFDLHdCQUFNO0FBSlYsK0NBQThDO0FBTTFDLHdCQUFNO0FBTFYsdURBQXNEO0FBSWxELGdDQUFVO0FBSWQsMkRBQTZDO0FBQXBDLHNDQUFBLE1BQU0sQ0FBQTtBQUNmLDJEQUE2QztBQUFwQyxzQ0FBQSxNQUFNLENBQUE7QUFDZixxREFBMkM7QUFBbEMsb0NBQUEsT0FBTyxDQUFBIn0=
|
||||||
exports.typescript = SmartstringTypescript;
|
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUNQLENBQUMsQ0FEc0I7QUFDdkIsSUFBTyxpQkFBaUIsV0FBVyxzQkFBc0IsQ0FBQyxDQUFDO0FBQzNELElBQU8scUJBQXFCLFdBQVcsMEJBQTBCLENBQUMsQ0FBQztBQUVuRSxtQ0FBcUIsc0JBQXNCLENBQUM7QUFBcEMsNkNBQW9DO0FBQzVDLGdDQUFzQixtQkFBbUIsQ0FBQztBQUFsQyw0Q0FBa0M7QUFDL0IsY0FBTSxHQUFHLGlCQUFpQixDQUFDO0FBQzNCLGtCQUFVLEdBQUcscUJBQXFCLENBQUMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiXG5pbXBvcnQgU21hcnRzdHJpbmdEb2NrZXIgPSByZXF1aXJlKFwiLi9zbWFydHN0cmluZy5kb2NrZXJcIik7XG5pbXBvcnQgU21hcnRzdHJpbmdUeXBlc2NyaXB0ID0gcmVxdWlyZShcIi4vc21hcnRzdHJpbmcudHlwZXNjcmlwdFwiKTtcblxuZXhwb3J0IHtEb21haW59IGZyb20gXCIuL3NtYXJ0c3RyaW5nLmRvbWFpblwiO1xuZXhwb3J0IHtHaXRSZXBvfSBmcm9tIFwiLi9zbWFydHN0cmluZy5naXRcIjtcbmV4cG9ydCBsZXQgZG9ja2VyID0gU21hcnRzdHJpbmdEb2NrZXI7XG5leHBvcnQgbGV0IHR5cGVzY3JpcHQgPSBTbWFydHN0cmluZ1R5cGVzY3JpcHQ7Il19
|
|
23
dist/smartstring.base64.d.ts
vendored
Normal file
23
dist/smartstring.base64.d.ts
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/**
|
||||||
|
* the type for base 64
|
||||||
|
*/
|
||||||
|
export declare type TBase64Input = 'string' | 'base64' | 'base64uri';
|
||||||
|
/**
|
||||||
|
* handle base64 strings
|
||||||
|
*/
|
||||||
|
export declare class Base64 {
|
||||||
|
private refString;
|
||||||
|
constructor(inputStringArg: any, typeArg: TBase64Input);
|
||||||
|
/**
|
||||||
|
* the simple string (unencoded)
|
||||||
|
*/
|
||||||
|
readonly simpleString: string;
|
||||||
|
/**
|
||||||
|
* the base64 encoded version of the original string
|
||||||
|
*/
|
||||||
|
readonly base64String: any;
|
||||||
|
/**
|
||||||
|
* the base64uri encoded version of the original string
|
||||||
|
*/
|
||||||
|
readonly base64StringUri: any;
|
||||||
|
}
|
39
dist/smartstring.base64.js
vendored
Normal file
39
dist/smartstring.base64.js
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
"use strict";
|
||||||
|
const plugins = require("./smartstring.plugins");
|
||||||
|
/**
|
||||||
|
* handle base64 strings
|
||||||
|
*/
|
||||||
|
class Base64 {
|
||||||
|
constructor(inputStringArg, typeArg) {
|
||||||
|
switch (typeArg) {
|
||||||
|
case 'string':
|
||||||
|
this.refString = inputStringArg;
|
||||||
|
break;
|
||||||
|
case 'base64':
|
||||||
|
this.refString = plugins.jsBase64.decode(inputStringArg);
|
||||||
|
break;
|
||||||
|
case 'base64uri':
|
||||||
|
this.refString = plugins.jsBase64.decode(inputStringArg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* the simple string (unencoded)
|
||||||
|
*/
|
||||||
|
get simpleString() {
|
||||||
|
return this.refString;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* the base64 encoded version of the original string
|
||||||
|
*/
|
||||||
|
get base64String() {
|
||||||
|
return plugins.jsBase64.encode(this.refString);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* the base64uri encoded version of the original string
|
||||||
|
*/
|
||||||
|
get base64StringUri() {
|
||||||
|
return plugins.jsBase64.encodeURI(this.refString);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports.Base64 = Base64;
|
||||||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcuYmFzZTY0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzdHJpbmcuYmFzZTY0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxpREFBZ0Q7QUFPaEQ7O0dBRUc7QUFDSDtJQUVJLFlBQVksY0FBYyxFQUFFLE9BQXFCO1FBQzdDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDZCxLQUFLLFFBQVE7Z0JBQ1QsSUFBSSxDQUFDLFNBQVMsR0FBRyxjQUFjLENBQUE7Z0JBQy9CLEtBQUssQ0FBQTtZQUNULEtBQUssUUFBUTtnQkFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO2dCQUN4RCxLQUFLLENBQUE7WUFDVCxLQUFLLFdBQVc7Z0JBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUNoRSxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxZQUFZO1FBQ1osTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUE7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxZQUFZO1FBQ1osTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLGVBQWU7UUFDZixNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3JELENBQUM7Q0FDSjtBQW5DRCx3QkFtQ0MifQ==
|
1
dist/smartstring.docker.d.ts
vendored
1
dist/smartstring.docker.d.ts
vendored
@ -1,4 +1,3 @@
|
|||||||
import "typings-global";
|
|
||||||
/**
|
/**
|
||||||
* converts an erray of env strings from docker remote api to an usable object.
|
* converts an erray of env strings from docker remote api to an usable object.
|
||||||
* @param envArrayArg
|
* @param envArrayArg
|
||||||
|
14
dist/smartstring.docker.js
vendored
14
dist/smartstring.docker.js
vendored
@ -1,19 +1,19 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-global");
|
|
||||||
/**
|
/**
|
||||||
* converts an erray of env strings from docker remote api to an usable object.
|
* converts an erray of env strings from docker remote api to an usable object.
|
||||||
* @param envArrayArg
|
* @param envArrayArg
|
||||||
* @returns {}
|
* @returns {}
|
||||||
*/
|
*/
|
||||||
exports.makeEnvObject = function (envArrayArg) {
|
exports.makeEnvObject = function (envArrayArg) {
|
||||||
var returnObject = {};
|
let returnObject = {};
|
||||||
var regexString = /(.*)=(.*)/;
|
let regexString = /(.*)=(.*)/;
|
||||||
for (var envKey in envArrayArg) {
|
if (typeof envArrayArg !== 'undefined') {
|
||||||
var regexMatches = regexString.exec(envArrayArg[envKey]);
|
for (let envKey in envArrayArg) {
|
||||||
|
let regexMatches = regexString.exec(envArrayArg[envKey]);
|
||||||
returnObject[regexMatches[1]] = regexMatches[2];
|
returnObject[regexMatches[1]] = regexMatches[2];
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
}
|
||||||
return returnObject;
|
return returnObject;
|
||||||
};
|
};
|
||||||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcuZG9ja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzdHJpbmcuZG9ja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQTs7OztHQUlHO0FBQ1EsUUFBQSxhQUFhLEdBQUcsVUFBVSxXQUFxQjtJQUN0RCxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUE7SUFDckIsSUFBSSxXQUFXLEdBQUcsV0FBVyxDQUFBO0lBQzdCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sV0FBVyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDckMsR0FBRyxDQUFDLENBQUMsSUFBSSxNQUFNLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQztZQUM3QixJQUFJLFlBQVksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1lBQ3hELFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbkQsQ0FBQztRQUFBLENBQUM7SUFDTixDQUFDO0lBQ0QsTUFBTSxDQUFDLFlBQVksQ0FBQTtBQUN2QixDQUFDLENBQUEifQ==
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3RyaW5nLmRvY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFDUCxDQUFDLENBRHNCO0FBR3ZCOzs7O0dBSUc7QUFDUSxxQkFBYSxHQUFHLFVBQVMsV0FBb0I7SUFDcEQsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLElBQUksV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUM5QixHQUFHLENBQUEsQ0FBQyxJQUFJLE1BQU0sSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQzNCLElBQUksWUFBWSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDekQsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQUEsQ0FBQztJQUNGLE1BQU0sQ0FBQyxZQUFZLENBQUM7QUFDeEIsQ0FBQyxDQUFDIiwiZmlsZSI6InNtYXJ0c3RyaW5nLmRvY2tlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCJcbmltcG9ydCBwbHVnaW5zID0gcmVxdWlyZShcIi4vc21hcnRzdHJpbmcucGx1Z2luc1wiKTtcblxuLyoqXG4gKiBjb252ZXJ0cyBhbiBlcnJheSBvZiBlbnYgc3RyaW5ncyBmcm9tIGRvY2tlciByZW1vdGUgYXBpIHRvIGFuIHVzYWJsZSBvYmplY3QuXG4gKiBAcGFyYW0gZW52QXJyYXlBcmdcbiAqIEByZXR1cm5zIHt9XG4gKi9cbmV4cG9ydCBsZXQgbWFrZUVudk9iamVjdCA9IGZ1bmN0aW9uKGVudkFycmF5QXJnOnN0cmluZ1tdKXtcbiAgICBsZXQgcmV0dXJuT2JqZWN0ID0ge307XG4gICAgbGV0IHJlZ2V4U3RyaW5nID0gLyguKik9KC4qKS87XG4gICAgZm9yKGxldCBlbnZLZXkgaW4gZW52QXJyYXlBcmcpe1xuICAgICAgICBsZXQgcmVnZXhNYXRjaGVzID0gcmVnZXhTdHJpbmcuZXhlYyhlbnZBcnJheUFyZ1tlbnZLZXldKTtcbiAgICAgICAgcmV0dXJuT2JqZWN0W3JlZ2V4TWF0Y2hlc1sxXV0gPSByZWdleE1hdGNoZXNbMl07XG4gICAgfTtcbiAgICByZXR1cm4gcmV0dXJuT2JqZWN0O1xufTsiXX0=
|
|
1
dist/smartstring.domain.d.ts
vendored
1
dist/smartstring.domain.d.ts
vendored
@ -1,4 +1,3 @@
|
|||||||
import "typings-global";
|
|
||||||
export declare class Domain {
|
export declare class Domain {
|
||||||
fullName: string;
|
fullName: string;
|
||||||
level1: string;
|
level1: string;
|
||||||
|
68
dist/smartstring.domain.js
vendored
68
dist/smartstring.domain.js
vendored
@ -1,38 +1,52 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-global");
|
class Domain {
|
||||||
var Domain = (function () {
|
constructor(domainStringArg) {
|
||||||
function Domain(domainStringArg) {
|
let regexMatches = domainRegex(domainStringArg);
|
||||||
this.fullName = domainStringArg;
|
this.fullName = '';
|
||||||
var regexMatches = domainRegex(domainStringArg);
|
for (let i = 1; i <= 5; i++) {
|
||||||
this.level1 = regexMatches[0];
|
if (regexMatches[i - 1]) {
|
||||||
this.level2 = regexMatches[1];
|
let localMatch = regexMatches[i - 1];
|
||||||
this.level3 = regexMatches[2];
|
this['level' + i.toString()] = localMatch;
|
||||||
this.level4 = regexMatches[3];
|
if (this.fullName === '') {
|
||||||
this.level5 = regexMatches[4];
|
this.fullName = localMatch;
|
||||||
this.protocol = protocolRegex(domainStringArg)[1];
|
}
|
||||||
this.zoneName = this.level2 + "." + this.level1;
|
else {
|
||||||
|
this.fullName = localMatch + '.' + this.fullName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this['level' + i.toString()] = undefined;
|
||||||
|
}
|
||||||
|
;
|
||||||
|
}
|
||||||
|
;
|
||||||
|
this.protocol = protocolRegex(domainStringArg);
|
||||||
|
this.zoneName = this.level2 + '.' + this.level1;
|
||||||
// aliases
|
// aliases
|
||||||
this.topLevel = this.level1;
|
this.topLevel = this.level1;
|
||||||
this.domainName = this.level2;
|
this.domainName = this.level2;
|
||||||
this.subDomain = this.level3;
|
this.subDomain = this.level3;
|
||||||
}
|
}
|
||||||
return Domain;
|
}
|
||||||
}());
|
|
||||||
exports.Domain = Domain;
|
exports.Domain = Domain;
|
||||||
var domainRegex = function (stringArg) {
|
let 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}$/;
|
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}$/;
|
||||||
var regexMatches = regexString.exec(stringArg);
|
let regexMatches = regexString.exec(stringArg);
|
||||||
regexMatches.reverse();
|
regexMatches.reverse(); //make sure we build the domain from toplevel to subdomain (reversed order)
|
||||||
var regexMatchesFiltered = regexMatches.filter(function (stringArg) {
|
regexMatches.pop(); // pop the last element, which is, since we reversed the Array, the full String of matched elements
|
||||||
return (stringArg != "");
|
let regexMatchesFiltered = regexMatches.filter(function (stringArg) {
|
||||||
|
return (stringArg !== '');
|
||||||
});
|
});
|
||||||
return regexMatchesFiltered;
|
return regexMatchesFiltered;
|
||||||
};
|
};
|
||||||
var protocolRegex = function (stringArg) {
|
let protocolRegex = function (stringArg) {
|
||||||
var regexString = /^([a-zA-Z0-9]*):\/\//;
|
let regexString = /^([a-zA-Z0-9]*):\/\//;
|
||||||
var regexMatches = regexString.exec(stringArg);
|
let regexMatches = regexString.exec(stringArg);
|
||||||
console.log(regexMatches);
|
if (regexMatches) {
|
||||||
return regexMatches;
|
return regexMatches[1];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcuZG9tYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzdHJpbmcuZG9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQTtJQWFJLFlBQVksZUFBc0I7UUFDOUIsSUFBSSxZQUFZLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFBO1FBQ2xCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUIsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksVUFBVSxHQUFHLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7Z0JBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFBO2dCQUN6QyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLEVBQUUsQ0FBQyxDQUFBLENBQUM7b0JBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFBO2dCQUM5QixDQUFDO2dCQUFDLElBQUksQ0FBQyxDQUFDO29CQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFBO2dCQUNwRCxDQUFDO1lBQ0wsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFBO1lBQzVDLENBQUM7WUFBQSxDQUFDO1FBQ04sQ0FBQztRQUFBLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUM5QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7UUFFL0MsVUFBVTtRQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO0lBQ2hDLENBQUM7Q0FDSjtBQXJDRCx3QkFxQ0M7QUFHRCxJQUFJLFdBQVcsR0FBRyxVQUFTLFNBQWdCO0lBQ3ZDLElBQUksV0FBVyxHQUFHLGdJQUFnSSxDQUFBO0lBQ2xKLElBQUksWUFBWSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDOUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFBLENBQUMsMkVBQTJFO0lBQ2xHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQSxDQUFDLG1HQUFtRztJQUN0SCxJQUFJLG9CQUFvQixHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBUyxTQUFnQjtRQUNwRSxNQUFNLENBQUEsQ0FBQyxTQUFTLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsb0JBQW9CLENBQUE7QUFDL0IsQ0FBQyxDQUFDO0FBRUYsSUFBSSxhQUFhLEdBQUcsVUFBUyxTQUFnQjtJQUN6QyxJQUFJLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQTtJQUN4QyxJQUFJLFlBQVksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzlDLEVBQUUsQ0FBQSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDZCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzFCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE1BQU0sQ0FBQyxTQUFTLENBQUE7SUFDcEIsQ0FBQztBQUNMLENBQUMsQ0FBQSJ9
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3RyaW5nLmRvbWFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFDUCxDQUFDLENBRHNCO0FBR3ZCO0lBYUksZ0JBQVksZUFBc0I7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUM7UUFDaEMsSUFBSSxZQUFZLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUVoRCxVQUFVO1FBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUNMLGFBQUM7QUFBRCxDQTdCQSxBQTZCQyxJQUFBO0FBN0JZLGNBQU0sU0E2QmxCLENBQUE7QUFHRCxJQUFJLFdBQVcsR0FBRyxVQUFTLFNBQWdCO0lBQ3ZDLElBQUksV0FBVyxHQUFHLDRHQUE0RyxDQUFDO0lBQy9ILElBQUksWUFBWSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLElBQUksb0JBQW9CLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFTLFNBQWdCO1FBQ3BFLE1BQU0sQ0FBQSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztBQUNoQyxDQUFDLENBQUM7QUFFRixJQUFJLGFBQWEsR0FBRyxVQUFTLFNBQWdCO0lBQ3pDLElBQUksV0FBVyxHQUFHLHNCQUFzQixDQUFDO0lBQ3pDLElBQUksWUFBWSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQixNQUFNLENBQUMsWUFBWSxDQUFDO0FBQ3hCLENBQUMsQ0FBQSIsImZpbGUiOiJzbWFydHN0cmluZy5kb21haW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiXG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3NtYXJ0c3RyaW5nLnBsdWdpbnNcIik7XG5cbmV4cG9ydCBjbGFzcyBEb21haW4ge1xuICAgIGZ1bGxOYW1lOnN0cmluZztcbiAgICBsZXZlbDE6c3RyaW5nO1xuICAgIGxldmVsMjpzdHJpbmc7XG4gICAgbGV2ZWwzOnN0cmluZztcbiAgICBsZXZlbDQ6c3RyaW5nO1xuICAgIGxldmVsNTpzdHJpbmc7XG4gICAgcHJvdG9jb2w6c3RyaW5nO1xuICAgIHpvbmVOYW1lOnN0cmluZztcbiAgICAvL2FsaWFzZXNcbiAgICB0b3BMZXZlbDpzdHJpbmc7XG4gICAgZG9tYWluTmFtZTtcbiAgICBzdWJEb21haW47XG4gICAgY29uc3RydWN0b3IoZG9tYWluU3RyaW5nQXJnOnN0cmluZyl7XG4gICAgICAgIHRoaXMuZnVsbE5hbWUgPSBkb21haW5TdHJpbmdBcmc7XG4gICAgICAgIGxldCByZWdleE1hdGNoZXMgPSBkb21haW5SZWdleChkb21haW5TdHJpbmdBcmcpO1xuICAgICAgICB0aGlzLmxldmVsMSA9IHJlZ2V4TWF0Y2hlc1swXTtcbiAgICAgICAgdGhpcy5sZXZlbDIgPSByZWdleE1hdGNoZXNbMV07XG4gICAgICAgIHRoaXMubGV2ZWwzID0gcmVnZXhNYXRjaGVzWzJdO1xuICAgICAgICB0aGlzLmxldmVsNCA9IHJlZ2V4TWF0Y2hlc1szXTtcbiAgICAgICAgdGhpcy5sZXZlbDUgPSByZWdleE1hdGNoZXNbNF07XG4gICAgICAgIHRoaXMucHJvdG9jb2wgPSBwcm90b2NvbFJlZ2V4KGRvbWFpblN0cmluZ0FyZylbMV07XG4gICAgICAgIHRoaXMuem9uZU5hbWUgPSB0aGlzLmxldmVsMiArIFwiLlwiICsgdGhpcy5sZXZlbDE7IFxuICAgICAgICBcbiAgICAgICAgLy8gYWxpYXNlc1xuICAgICAgICB0aGlzLnRvcExldmVsID0gdGhpcy5sZXZlbDE7XG4gICAgICAgIHRoaXMuZG9tYWluTmFtZSA9IHRoaXMubGV2ZWwyO1xuICAgICAgICB0aGlzLnN1YkRvbWFpbiA9IHRoaXMubGV2ZWwzO1xuICAgIH1cbn1cblxuXG5sZXQgZG9tYWluUmVnZXggPSBmdW5jdGlvbihzdHJpbmdBcmc6c3RyaW5nKXtcbiAgICBsZXQgcmVnZXhTdHJpbmcgPSAvKFthLXpBLVowLTldKilcXC57MCwxfShbYS16QS1aMC05XSopXFwuezAsMX0oW2EtekEtWjAtOV0qKVxcLnswLDF9KFthLXpBLVowLTldKilcXC57MCwxfShbYS16QS1aMC05XSopXFwuezAsMX0kLztcbiAgICBsZXQgcmVnZXhNYXRjaGVzID0gcmVnZXhTdHJpbmcuZXhlYyhzdHJpbmdBcmcpO1xuICAgIHJlZ2V4TWF0Y2hlcy5yZXZlcnNlKCk7XG4gICAgbGV0IHJlZ2V4TWF0Y2hlc0ZpbHRlcmVkID0gcmVnZXhNYXRjaGVzLmZpbHRlcihmdW5jdGlvbihzdHJpbmdBcmc6c3RyaW5nKXtcbiAgICAgICAgcmV0dXJuKHN0cmluZ0FyZyAhPSBcIlwiKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVnZXhNYXRjaGVzRmlsdGVyZWQ7XG59O1xuXG5sZXQgcHJvdG9jb2xSZWdleCA9IGZ1bmN0aW9uKHN0cmluZ0FyZzpzdHJpbmcpe1xuICAgIGxldCByZWdleFN0cmluZyA9IC9eKFthLXpBLVowLTldKik6XFwvXFwvLztcbiAgICBsZXQgcmVnZXhNYXRjaGVzID0gcmVnZXhTdHJpbmcuZXhlYyhzdHJpbmdBcmcpO1xuICAgIGNvbnNvbGUubG9nKHJlZ2V4TWF0Y2hlcyk7XG4gICAgcmV0dXJuIHJlZ2V4TWF0Y2hlcztcbn0iXX0=
|
|
1
dist/smartstring.git.d.ts
vendored
1
dist/smartstring.git.d.ts
vendored
@ -1,4 +1,3 @@
|
|||||||
import "typings-global";
|
|
||||||
export declare class GitRepo {
|
export declare class GitRepo {
|
||||||
host: string;
|
host: string;
|
||||||
user: string;
|
user: string;
|
||||||
|
48
dist/smartstring.git.js
vendored
48
dist/smartstring.git.js
vendored
@ -1,51 +1,45 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-global");
|
|
||||||
var plugins = require("./smartstring.plugins");
|
|
||||||
/* ---------------------------------------------- *
|
/* ---------------------------------------------- *
|
||||||
* ------------------ classes ------------------- *
|
* ------------------ classes ------------------- *
|
||||||
* ---------------------------------------------- */
|
* ---------------------------------------------- */
|
||||||
var GitRepo = (function () {
|
class GitRepo {
|
||||||
function GitRepo(stringArg, tokenArg) {
|
constructor(stringArg, tokenArg) {
|
||||||
var regexMatches = gitRegex(stringArg);
|
let regexMatches = gitRegex(stringArg);
|
||||||
this.host = regexMatches[1];
|
this.host = regexMatches[1];
|
||||||
this.user = regexMatches[2];
|
this.user = regexMatches[2];
|
||||||
this.repo = regexMatches[3];
|
this.repo = regexMatches[3];
|
||||||
this.accessToken = tokenArg;
|
this.accessToken = tokenArg;
|
||||||
this.sshUrl = gitLink(this.host, this.user, this.repo, this.accessToken, "ssh");
|
this.sshUrl = gitLink(this.host, this.user, this.repo, this.accessToken, 'ssh');
|
||||||
this.httpsUrl = gitLink(this.host, this.user, this.repo, this.accessToken, "https");
|
this.httpsUrl = gitLink(this.host, this.user, this.repo, this.accessToken, 'https');
|
||||||
}
|
}
|
||||||
;
|
}
|
||||||
return GitRepo;
|
|
||||||
}());
|
|
||||||
exports.GitRepo = GitRepo;
|
exports.GitRepo = GitRepo;
|
||||||
/* ---------------------------------------------- *
|
/* ---------------------------------------------- *
|
||||||
* ------------------ helpers ------------------- *
|
* ------------------ helpers ------------------- *
|
||||||
* ---------------------------------------------- */
|
* ---------------------------------------------- */
|
||||||
var gitRegex = function (stringArg) {
|
let gitRegex = function (stringArg) {
|
||||||
var regexString = /([a-zA-Z0-9\-\.]*)(?:\/|\:)([a-zA-Z0-9\-]*)(?:\/)([a-zA-Z0-9\-]*)(?:\.git)/;
|
let regexString = /([a-zA-Z0-9\-\.]*)(?:\/|\:)([a-zA-Z0-9\-]*)(?:\/)([a-zA-Z0-9\-]*)(?:\.git)/;
|
||||||
var regexMatches = regexString.exec(stringArg);
|
let regexMatches = regexString.exec(stringArg);
|
||||||
return regexMatches;
|
return regexMatches;
|
||||||
};
|
};
|
||||||
var gitLink = function (hostArg, userArg, repoArg, tokenArg, linkTypeArg) {
|
let gitLink = function (hostArg, userArg, repoArg, tokenArg = '', linkTypeArg) {
|
||||||
if (tokenArg === void 0) { tokenArg = ""; }
|
let returnString;
|
||||||
var returnString;
|
if (tokenArg !== '') {
|
||||||
if (tokenArg !== "") {
|
tokenArg = tokenArg + '@';
|
||||||
tokenArg = tokenArg + "@";
|
|
||||||
}
|
}
|
||||||
switch (linkTypeArg) {
|
switch (linkTypeArg) {
|
||||||
case "https":
|
case 'https':
|
||||||
returnString = "https://" +
|
returnString = 'https://' +
|
||||||
tokenArg + hostArg + "/" + userArg + "/" + repoArg + ".git";
|
tokenArg + hostArg + '/' + userArg + '/' + repoArg + '.git';
|
||||||
break;
|
break;
|
||||||
case "ssh":
|
case 'ssh':
|
||||||
returnString = "git@" +
|
returnString = 'git@' +
|
||||||
hostArg + ":" + userArg + "/" + repoArg + ".git";
|
hostArg + ':' + userArg + '/' + repoArg + '.git';
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
plugins.beautylog.error("Link Type " + linkTypeArg + " not known");
|
console.error('Link Type ' + linkTypeArg + ' not known');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return returnString;
|
return returnString;
|
||||||
};
|
};
|
||||||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcuZ2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzdHJpbmcuZ2l0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQTs7b0RBRW9EO0FBQ3BEO0lBT0ksWUFBWSxTQUFpQixFQUFDLFFBQWlCO1FBQzNDLElBQUksWUFBWSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQTtRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQzVFLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDcEYsQ0FBQztDQUNKO0FBaEJELDBCQWdCQztBQUVEOztvREFFb0Q7QUFDcEQsSUFBSSxRQUFRLEdBQUcsVUFBUyxTQUFnQjtJQUNwQyxJQUFJLFdBQVcsR0FBRyw0RUFBNEUsQ0FBQTtJQUM5RixJQUFJLFlBQVksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzlDLE1BQU0sQ0FBQyxZQUFZLENBQUE7QUFDdkIsQ0FBQyxDQUFBO0FBRUQsSUFBSSxPQUFPLEdBQUcsVUFBUyxPQUFlLEVBQUUsT0FBZSxFQUFFLE9BQWUsRUFBRSxXQUFtQixFQUFFLEVBQUUsV0FBVztJQUN4RyxJQUFJLFlBQVksQ0FBQTtJQUNoQixFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsQixRQUFRLEdBQUcsUUFBUSxHQUFHLEdBQUcsQ0FBQTtJQUM3QixDQUFDO0lBQ0QsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNsQixLQUFLLE9BQU87WUFDUixZQUFZLEdBQUcsVUFBVTtnQkFDckIsUUFBUSxHQUFHLE9BQU8sR0FBRyxHQUFHLEdBQUcsT0FBTyxHQUFHLEdBQUcsR0FBRyxPQUFPLEdBQUcsTUFBTSxDQUFBO1lBQy9ELEtBQUssQ0FBQTtRQUNULEtBQUssS0FBSztZQUNOLFlBQVksR0FBRyxNQUFNO2dCQUNqQixPQUFPLEdBQUcsR0FBRyxHQUFHLE9BQU8sR0FBRyxHQUFHLEdBQUcsT0FBTyxHQUFHLE1BQU0sQ0FBQztZQUNyRCxLQUFLLENBQUE7UUFDVDtZQUNJLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLFdBQVcsR0FBRyxZQUFZLENBQUMsQ0FBQTtZQUN4RCxLQUFLLENBQUE7SUFDYixDQUFDO0lBQ0QsTUFBTSxDQUFDLFlBQVksQ0FBQTtBQUN2QixDQUFDLENBQUEifQ==
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3RyaW5nLmdpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFDUCxDQUFDLENBRHNCO0FBQ3ZCLElBQU8sT0FBTyxXQUFXLHVCQUF1QixDQUFDLENBQUM7QUFFbEQ7O29EQUVvRDtBQUNwRDtJQU9JLGlCQUFZLFNBQWdCLEVBQUMsUUFBZ0I7UUFDekMsSUFBSSxZQUFZLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRixDQUFDOztJQUNMLGNBQUM7QUFBRCxDQWhCQSxBQWdCQyxJQUFBO0FBaEJZLGVBQU8sVUFnQm5CLENBQUE7QUFFRDs7b0RBRW9EO0FBQ3BELElBQUksUUFBUSxHQUFHLFVBQVMsU0FBZ0I7SUFDcEMsSUFBSSxXQUFXLEdBQUcsNEVBQTRFLENBQUM7SUFDL0YsSUFBSSxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxNQUFNLENBQUMsWUFBWSxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGLElBQUksT0FBTyxHQUFHLFVBQVMsT0FBYyxFQUFFLE9BQWMsRUFBRSxPQUFjLEVBQUUsUUFBb0IsRUFBRSxXQUFXO0lBQWpDLHdCQUFvQixHQUFwQixhQUFvQjtJQUN2RixJQUFJLFlBQVksQ0FBQztJQUNqQixFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssRUFBRSxDQUFDLENBQUEsQ0FBQztRQUNqQixRQUFRLEdBQUcsUUFBUSxHQUFHLEdBQUcsQ0FBQTtJQUM3QixDQUFDO0lBQ0QsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNsQixLQUFLLE9BQU87WUFDUixZQUFZLEdBQUksVUFBVTtnQkFDdEIsUUFBUSxHQUFHLE9BQU8sR0FBRyxHQUFHLEdBQUcsT0FBTyxHQUFHLEdBQUcsR0FBRyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ2hFLEtBQUssQ0FBQztRQUNWLEtBQUssS0FBSztZQUNOLFlBQVksR0FBRyxNQUFNO2dCQUNqQixPQUFPLEdBQUcsR0FBRyxHQUFHLE9BQU8sR0FBRyxHQUFHLEdBQUcsT0FBTyxHQUFHLE1BQU0sQ0FBQztZQUNyRCxLQUFLLENBQUM7UUFDVjtZQUNJLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxXQUFXLEdBQUcsWUFBWSxDQUFDLENBQUM7WUFDbkUsS0FBSyxDQUFDO0lBQ2QsQ0FBQztJQUNELE1BQU0sQ0FBQyxZQUFZLENBQUM7QUFDeEIsQ0FBQyxDQUFDIiwiZmlsZSI6InNtYXJ0c3RyaW5nLmdpdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCJcbmltcG9ydCBwbHVnaW5zID0gcmVxdWlyZShcIi4vc21hcnRzdHJpbmcucGx1Z2luc1wiKTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0gY2xhc3NlcyAtLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmV4cG9ydCBjbGFzcyBHaXRSZXBvIHtcbiAgICBob3N0OnN0cmluZztcbiAgICB1c2VyOnN0cmluZztcbiAgICByZXBvOnN0cmluZztcbiAgICBhY2Nlc3NUb2tlbjpzdHJpbmc7XG4gICAgc3NoVXJsOnN0cmluZztcbiAgICBodHRwc1VybDpzdHJpbmc7XG4gICAgY29uc3RydWN0b3Ioc3RyaW5nQXJnOnN0cmluZyx0b2tlbkFyZz86c3RyaW5nKXtcbiAgICAgICAgbGV0IHJlZ2V4TWF0Y2hlcyA9IGdpdFJlZ2V4KHN0cmluZ0FyZyk7XG4gICAgICAgIHRoaXMuaG9zdCA9IHJlZ2V4TWF0Y2hlc1sxXTtcbiAgICAgICAgdGhpcy51c2VyID0gcmVnZXhNYXRjaGVzWzJdO1xuICAgICAgICB0aGlzLnJlcG8gPSByZWdleE1hdGNoZXNbM107XG4gICAgICAgIHRoaXMuYWNjZXNzVG9rZW4gPSB0b2tlbkFyZztcbiAgICAgICAgdGhpcy5zc2hVcmwgPSBnaXRMaW5rKHRoaXMuaG9zdCx0aGlzLnVzZXIsdGhpcy5yZXBvLHRoaXMuYWNjZXNzVG9rZW4sIFwic3NoXCIpO1xuICAgICAgICB0aGlzLmh0dHBzVXJsID0gZ2l0TGluayh0aGlzLmhvc3QsdGhpcy51c2VyLHRoaXMucmVwbyx0aGlzLmFjY2Vzc1Rva2VuLCBcImh0dHBzXCIpO1xuICAgIH07XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tIGhlbHBlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5sZXQgZ2l0UmVnZXggPSBmdW5jdGlvbihzdHJpbmdBcmc6c3RyaW5nKXtcbiAgICBsZXQgcmVnZXhTdHJpbmcgPSAvKFthLXpBLVowLTlcXC1cXC5dKikoPzpcXC98XFw6KShbYS16QS1aMC05XFwtXSopKD86XFwvKShbYS16QS1aMC05XFwtXSopKD86XFwuZ2l0KS87XG4gICAgbGV0IHJlZ2V4TWF0Y2hlcyA9IHJlZ2V4U3RyaW5nLmV4ZWMoc3RyaW5nQXJnKTtcbiAgICByZXR1cm4gcmVnZXhNYXRjaGVzO1xufTtcblxubGV0IGdpdExpbmsgPSBmdW5jdGlvbihob3N0QXJnOnN0cmluZywgdXNlckFyZzpzdHJpbmcsIHJlcG9Bcmc6c3RyaW5nLCB0b2tlbkFyZzpzdHJpbmcgPSBcIlwiLCBsaW5rVHlwZUFyZyk6c3RyaW5ne1xuICAgIGxldCByZXR1cm5TdHJpbmc7XG4gICAgaWYgKHRva2VuQXJnICE9PSBcIlwiKXtcbiAgICAgICAgdG9rZW5BcmcgPSB0b2tlbkFyZyArIFwiQFwiXG4gICAgfVxuICAgIHN3aXRjaCAobGlua1R5cGVBcmcpIHtcbiAgICAgICAgY2FzZSBcImh0dHBzXCI6XG4gICAgICAgICAgICByZXR1cm5TdHJpbmcgPSAgXCJodHRwczovL1wiICtcbiAgICAgICAgICAgICAgICB0b2tlbkFyZyArIGhvc3RBcmcgKyBcIi9cIiArIHVzZXJBcmcgKyBcIi9cIiArIHJlcG9BcmcgKyBcIi5naXRcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwic3NoXCI6XG4gICAgICAgICAgICByZXR1cm5TdHJpbmcgPSBcImdpdEBcIiArXG4gICAgICAgICAgICAgICAgaG9zdEFyZyArIFwiOlwiICsgdXNlckFyZyArIFwiL1wiICsgcmVwb0FyZyArIFwiLmdpdFwiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5lcnJvcihcIkxpbmsgVHlwZSBcIiArIGxpbmtUeXBlQXJnICsgXCIgbm90IGtub3duXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiByZXR1cm5TdHJpbmc7XG59OyJdfQ==
|
|
3
dist/smartstring.indent.d.ts
vendored
Normal file
3
dist/smartstring.indent.d.ts
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
export declare let indent: (stringArg: string, spaceAmount: number) => string;
|
||||||
|
export declare let indentWithPrefix: (stringArg: string, prefixArg: string) => string;
|
||||||
|
export declare let normalize: (stringArg: string) => string;
|
61
dist/smartstring.indent.js
vendored
Normal file
61
dist/smartstring.indent.js
vendored
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
"use strict";
|
||||||
|
let splitString = (stringArg) => {
|
||||||
|
let resultArray = stringArg.split('\n');
|
||||||
|
return cleanStringArray(resultArray);
|
||||||
|
};
|
||||||
|
let joinString = (stringArrayArg) => {
|
||||||
|
let resultString = '';
|
||||||
|
for (let line of stringArrayArg) {
|
||||||
|
resultString = resultString + line + '\n';
|
||||||
|
}
|
||||||
|
return resultString;
|
||||||
|
};
|
||||||
|
let cleanStringArray = (stringArrayArg) => {
|
||||||
|
let testRegex = /^[\s]*$/;
|
||||||
|
if (testRegex.test(stringArrayArg[0])) {
|
||||||
|
stringArrayArg.shift();
|
||||||
|
}
|
||||||
|
if (testRegex.test(stringArrayArg[stringArrayArg.length - 1])) {
|
||||||
|
stringArrayArg.pop();
|
||||||
|
}
|
||||||
|
;
|
||||||
|
return stringArrayArg;
|
||||||
|
};
|
||||||
|
exports.indent = (stringArg, spaceAmount) => {
|
||||||
|
let resultString;
|
||||||
|
return resultString;
|
||||||
|
};
|
||||||
|
exports.indentWithPrefix = (stringArg, prefixArg) => {
|
||||||
|
let resultString;
|
||||||
|
let stringArray = splitString(stringArg);
|
||||||
|
let resultArray = [];
|
||||||
|
for (let stringItem of stringArray) {
|
||||||
|
resultArray.push(prefixArg + stringItem);
|
||||||
|
}
|
||||||
|
;
|
||||||
|
resultString = joinString(resultArray);
|
||||||
|
return resultString;
|
||||||
|
};
|
||||||
|
exports.normalize = (stringArg) => {
|
||||||
|
let resultString;
|
||||||
|
let splitStringArray = splitString(stringArg);
|
||||||
|
let minCommonLeftOffset;
|
||||||
|
let deIndentRegex = /^(\s*)/;
|
||||||
|
let emptyLineRegex = /^(\s*)$/;
|
||||||
|
for (let stringItem of splitStringArray) {
|
||||||
|
let offsetString = deIndentRegex.exec(stringItem)[1];
|
||||||
|
if ((typeof minCommonLeftOffset === 'undefined' || offsetString.length < minCommonLeftOffset)
|
||||||
|
&& !emptyLineRegex.test(stringItem)) {
|
||||||
|
minCommonLeftOffset = offsetString.length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
;
|
||||||
|
let resultSplitStringArray = [];
|
||||||
|
for (let stringItem of splitStringArray) {
|
||||||
|
resultSplitStringArray.push(stringItem.substr(minCommonLeftOffset));
|
||||||
|
}
|
||||||
|
;
|
||||||
|
resultString = joinString(resultSplitStringArray);
|
||||||
|
return resultString;
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcuaW5kZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzdHJpbmcuaW5kZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxJQUFJLFdBQVcsR0FBRyxDQUFDLFNBQWlCO0lBQ2hDLElBQUksV0FBVyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDdkMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBQ3hDLENBQUMsQ0FBQztBQUVGLElBQUksVUFBVSxHQUFHLENBQUMsY0FBd0I7SUFDdEMsSUFBSSxZQUFZLEdBQVcsRUFBRSxDQUFBO0lBQzdCLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLGNBQWMsQ0FBQyxDQUFBLENBQUM7UUFDN0IsWUFBWSxHQUFHLFlBQVksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFBO0lBQzdDLENBQUM7SUFDRCxNQUFNLENBQUMsWUFBWSxDQUFBO0FBQ3ZCLENBQUMsQ0FBQTtBQUVELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxjQUF3QjtJQUM1QyxJQUFJLFNBQVMsR0FBRyxTQUFTLENBQUE7SUFDekIsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFDRCxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBQUEsQ0FBQztJQUNGLE1BQU0sQ0FBQyxjQUFjLENBQUE7QUFDekIsQ0FBQyxDQUFBO0FBRVUsUUFBQSxNQUFNLEdBQUcsQ0FBQyxTQUFpQixFQUFFLFdBQW1CO0lBQ3ZELElBQUksWUFBb0IsQ0FBQTtJQUN4QixNQUFNLENBQUMsWUFBWSxDQUFBO0FBQ3ZCLENBQUMsQ0FBQTtBQUVVLFFBQUEsZ0JBQWdCLEdBQUcsQ0FBQyxTQUFpQixFQUFDLFNBQWlCO0lBQzlELElBQUksWUFBb0IsQ0FBQTtJQUN4QixJQUFJLFdBQVcsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDeEMsSUFBSSxXQUFXLEdBQWEsRUFBRSxDQUFBO0lBQzlCLEdBQUcsQ0FBQyxDQUFDLElBQUksVUFBVSxJQUFJLFdBQVcsQ0FBQyxDQUFBLENBQUM7UUFDaEMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUFBLENBQUM7SUFDRixZQUFZLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ3RDLE1BQU0sQ0FBQyxZQUFZLENBQUE7QUFDdkIsQ0FBQyxDQUFBO0FBRVUsUUFBQSxTQUFTLEdBQUcsQ0FBQyxTQUFpQjtJQUNyQyxJQUFJLFlBQW9CLENBQUE7SUFDeEIsSUFBSSxnQkFBZ0IsR0FBYSxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDdkQsSUFBSSxtQkFBMkIsQ0FBQTtJQUMvQixJQUFJLGFBQWEsR0FBRyxRQUFRLENBQUE7SUFDNUIsSUFBSSxjQUFjLEdBQUcsU0FBUyxDQUFBO0lBQzlCLEdBQUcsQ0FBQyxDQUFDLElBQUksVUFBVSxJQUFJLGdCQUFnQixDQUFDLENBQUEsQ0FBQztRQUNyQyxJQUFJLFlBQVksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3BELEVBQUUsQ0FBQyxDQUNDLENBQUMsT0FBTyxtQkFBbUIsS0FBSyxXQUFXLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQztlQUN0RixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUN0QyxDQUFDLENBQUMsQ0FBQztZQUNDLG1CQUFtQixHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUE7UUFDN0MsQ0FBQztJQUNMLENBQUM7SUFBQSxDQUFDO0lBQ0YsSUFBSSxzQkFBc0IsR0FBRyxFQUFFLENBQUE7SUFDL0IsR0FBRyxDQUFDLENBQUMsSUFBSSxVQUFVLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQTtJQUN2RSxDQUFDO0lBQUEsQ0FBQztJQUNGLFlBQVksR0FBRyxVQUFVLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtJQUNqRCxNQUFNLENBQUMsWUFBWSxDQUFBO0FBQ3ZCLENBQUMsQ0FBQSJ9
|
4
dist/smartstring.plugins.d.ts
vendored
4
dist/smartstring.plugins.d.ts
vendored
@ -1,2 +1,2 @@
|
|||||||
import "typings-global";
|
import 'typings-global';
|
||||||
export import beautylog = require("beautylog");
|
export declare let jsBase64: any;
|
||||||
|
5
dist/smartstring.plugins.js
vendored
5
dist/smartstring.plugins.js
vendored
@ -1,5 +1,4 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-global");
|
require("typings-global");
|
||||||
exports.beautylog = require("beautylog");
|
exports.jsBase64 = require('js-base64').Base64;
|
||||||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c3RyaW5nLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBCQUF1QjtBQUNaLFFBQUEsUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUEifQ==
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3RyaW5nLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBRVAsQ0FBQyxDQUZzQjtBQUVULGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUMiLCJmaWxlIjoic21hcnRzdHJpbmcucGx1Z2lucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCJcblxuZXhwb3J0IGltcG9ydCBiZWF1dHlsb2cgPSByZXF1aXJlKFwiYmVhdXR5bG9nXCIpOyJdfQ==
|
|
1
dist/smartstring.typescript.d.ts
vendored
1
dist/smartstring.typescript.d.ts
vendored
@ -1,2 +1 @@
|
|||||||
import "typings-global";
|
|
||||||
export declare let regexReferencePath: RegExp;
|
export declare let regexReferencePath: RegExp;
|
||||||
|
4
dist/smartstring.typescript.js
vendored
4
dist/smartstring.typescript.js
vendored
@ -1,5 +1,3 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-global");
|
|
||||||
exports.regexReferencePath = /\/\/\/\s*<reference\s+path\s*=\s*["|'].*["|']\s*\/>\s*[\\n]?/;
|
exports.regexReferencePath = /\/\/\/\s*<reference\s+path\s*=\s*["|'].*["|']\s*\/>\s*[\\n]?/;
|
||||||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcudHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c3RyaW5nLnR5cGVzY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVXLFFBQUEsa0JBQWtCLEdBQUcsOERBQThELENBQUEifQ==
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3RyaW5nLnR5cGVzY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQ1AsQ0FBQyxDQURzQjtBQUdaLDBCQUFrQixHQUFHLDhEQUE4RCxDQUFBIiwiZmlsZSI6InNtYXJ0c3RyaW5nLnR5cGVzY3JpcHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiXG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3NtYXJ0c3RyaW5nLnBsdWdpbnNcIik7XG5cbmV4cG9ydCBsZXQgcmVnZXhSZWZlcmVuY2VQYXRoID0gL1xcL1xcL1xcL1xccyo8cmVmZXJlbmNlXFxzK3BhdGhcXHMqPVxccypbXCJ8J10uKltcInwnXVxccypcXC8+XFxzKltcXFxcbl0/LyJdfQ==
|
|
14
package.json
14
package.json
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "smartstring",
|
"name": "smartstring",
|
||||||
"version": "2.0.5",
|
"version": "2.0.18",
|
||||||
"description": "handle strings in smart ways. TypeScript ready.",
|
"description": "handle strings in smart ways. TypeScript ready.",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"typings": "dist/index.d.ts",
|
"typings": "dist/index.d.ts",
|
||||||
@ -22,12 +22,14 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://gitlab.com/pushrocks/smartstring#readme",
|
"homepage": "https://gitlab.com/pushrocks/smartstring#readme",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"npmts": "^5.2.1",
|
"@types/should": "^8.1.30",
|
||||||
"should": "^9.0.0",
|
"beautylog": "^6.0.0",
|
||||||
"typings-test": "^1.0.1"
|
"npmts-g": "^5.2.8",
|
||||||
|
"should": "^11.1.1",
|
||||||
|
"typings-test": "^1.0.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"beautylog": "^5.0.8",
|
"js-base64": "^2.1.9",
|
||||||
"typings-global": "^1.0.3"
|
"typings-global": "^1.0.14"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2
test/test.d.ts
vendored
2
test/test.d.ts
vendored
@ -1 +1 @@
|
|||||||
import "typings-test";
|
import 'typings-test';
|
||||||
|
148
test/test.js
148
test/test.js
File diff suppressed because one or more lines are too long
166
test/test.ts
166
test/test.ts
@ -1,77 +1,115 @@
|
|||||||
import "typings-test"
|
import 'typings-test'
|
||||||
import * as smartstring from "../dist/index";
|
import * as smartstring from '../dist/index'
|
||||||
let should = require("should");
|
import * as should from 'should'
|
||||||
|
|
||||||
describe("smartstring",function(){
|
describe('smartstring',function(){
|
||||||
describe(".Domain class",function(){
|
describe('.Base64 class', function(){
|
||||||
let testDomain:smartstring.Domain;
|
let testBase64: smartstring.Base64
|
||||||
it("should create a new Domain object",function(){
|
it('should create a valid instance of Base64', function(){
|
||||||
testDomain = new smartstring.Domain("https://level3D.level2D.level1D");
|
testBase64 = new smartstring.Base64('somestring', 'string')
|
||||||
testDomain.should.be.instanceof(smartstring.Domain);
|
should(testBase64).be.instanceOf(smartstring.Base64)
|
||||||
});
|
|
||||||
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(){
|
it('should read output a file as base64 and base64uri', function(){
|
||||||
testDomain.protocol.should.equal("https");
|
should(testBase64.base64String).not.equal(testBase64.base64StringUri)
|
||||||
|
let testBase64_2 = new smartstring.Base64(testBase64.base64StringUri, 'base64uri')
|
||||||
|
should(testBase64_2.simpleString).equal(testBase64.simpleString)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
describe(".Git class",function(){
|
describe('.Domain class',function(){
|
||||||
let testGit:smartstring.GitRepo;
|
let testDomain:smartstring.Domain
|
||||||
it("should create a new Git class GitRepo",function(){
|
let testDomain2:smartstring.Domain
|
||||||
testGit = new smartstring.GitRepo("git+https://github.com/pushrocks/smartstring.git");
|
it('should create a new Domain object',function(){
|
||||||
testGit.should.be.instanceof(smartstring.GitRepo);
|
testDomain = new smartstring.Domain('https://level3D.level2D.level1D')
|
||||||
|
should(testDomain).be.instanceof(smartstring.Domain)
|
||||||
|
console.log(testDomain)
|
||||||
})
|
})
|
||||||
it("should return a .host",function(){
|
it('should have a .topLevel',function(){
|
||||||
testGit.host
|
should(testDomain.topLevel).equal('level1D')
|
||||||
.should.equal("github.com");
|
|
||||||
});
|
|
||||||
it("should return a .user",function(){
|
|
||||||
testGit.user
|
|
||||||
.should.equal("pushrocks");
|
|
||||||
});
|
|
||||||
it("should return a .repo",function(){
|
|
||||||
testGit.repo
|
|
||||||
.should.equal("smartstring");
|
|
||||||
});
|
|
||||||
it("should return a .httpsUrl",function(){
|
|
||||||
testGit.httpsUrl
|
|
||||||
.should.equal("https://github.com/pushrocks/smartstring.git");
|
|
||||||
});
|
|
||||||
it("should return a .sshUrl",function(){
|
|
||||||
testGit.sshUrl
|
|
||||||
.should.equal("git@github.com:pushrocks/smartstring.git");
|
|
||||||
});
|
|
||||||
})
|
})
|
||||||
describe(".docker",function(){
|
it('should have a .level2',function(){
|
||||||
describe(".makeEnvObject",function(){
|
should(testDomain.level2).equal('level2D')
|
||||||
it("should create a Env Object",function(){
|
})
|
||||||
let envStringArray = ["VIRTUAL_HOST=sub.domain.tld","DEFAULT_HOST=some.domain.com"];
|
it('should have a .level3',function(){
|
||||||
let envObject = smartstring.docker.makeEnvObject(envStringArray);
|
should(testDomain.level3).equal('level3D')
|
||||||
envObject.VIRTUAL_HOST.should.equal("sub.domain.tld");
|
})
|
||||||
envObject.DEFAULT_HOST.should.equal("some.domain.com");
|
it('should have the correct dns zone name',function(){
|
||||||
|
should(testDomain.zoneName).equal('level2D.level1D')
|
||||||
|
})
|
||||||
|
it ('should have the correct protocol',function(){
|
||||||
|
should(testDomain.protocol).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')
|
||||||
|
should(testGit).be.instanceof(smartstring.GitRepo)
|
||||||
|
})
|
||||||
|
it('should return a .host',function(){
|
||||||
|
should(testGit.host).equal('github.com')
|
||||||
|
})
|
||||||
|
it('should return a .user',function(){
|
||||||
|
should(testGit.user).equal('pushrocks')
|
||||||
|
})
|
||||||
|
it('should return a .repo',function(){
|
||||||
|
should(testGit.repo).equal('smartstring')
|
||||||
|
})
|
||||||
|
it('should return a .httpsUrl',function(){
|
||||||
|
should(testGit.httpsUrl).equal('https://github.com/pushrocks/smartstring.git')
|
||||||
|
})
|
||||||
|
it('should return a .sshUrl',function(){
|
||||||
|
should(testGit.sshUrl).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('.indent',function(){
|
||||||
describe(".referenceRegex",function(){
|
let testString = `
|
||||||
it("should match reference paths",function(){
|
base
|
||||||
smartstring.typescript.regexReferencePath.test("/// <reference path=\"\" />")
|
should be indented
|
||||||
.should.be.true();
|
some more
|
||||||
|
|
||||||
|
base
|
||||||
|
indented
|
||||||
|
`
|
||||||
|
describe('.normalize()',function(){
|
||||||
|
it('should normalize a string',function(){
|
||||||
|
testString = smartstring.indent.normalize(testString)
|
||||||
|
console.log(testString)
|
||||||
|
let zoneNameArg = 'test1'
|
||||||
|
let destinationIpArg = '111'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('.indentWithPrefix',function(){
|
||||||
|
it('should indent',function(){
|
||||||
|
testString = smartstring.indent.indentWithPrefix(testString,'>> ')
|
||||||
|
console.log(testString)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
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='' />")
|
smartstring.typescript.regexReferencePath.test("/// <reference path='' />")
|
||||||
.should.be.true();
|
.should.be.true()
|
||||||
smartstring.typescript.regexReferencePath.test("/// <referencepath=\"\" />")
|
smartstring.typescript.regexReferencePath.test('/// <referencepath=\"\" />')
|
||||||
.should.be.false();
|
.should.be.false()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
});
|
})
|
||||||
|
19
ts/index.ts
19
ts/index.ts
@ -1,8 +1,13 @@
|
|||||||
import "typings-global"
|
import * as docker from './smartstring.docker'
|
||||||
import SmartstringDocker = require("./smartstring.docker");
|
import * as indent from './smartstring.indent'
|
||||||
import SmartstringTypescript = require("./smartstring.typescript");
|
import * as typescript from './smartstring.typescript'
|
||||||
|
|
||||||
export {Domain} from "./smartstring.domain";
|
export {
|
||||||
export {GitRepo} from "./smartstring.git";
|
docker,
|
||||||
export let docker = SmartstringDocker;
|
typescript,
|
||||||
export let typescript = SmartstringTypescript;
|
indent
|
||||||
|
}
|
||||||
|
|
||||||
|
export { Base64 } from './smartstring.base64'
|
||||||
|
export { Domain } from './smartstring.domain'
|
||||||
|
export { GitRepo } from './smartstring.git'
|
||||||
|
46
ts/smartstring.base64.ts
Normal file
46
ts/smartstring.base64.ts
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
import * as plugins from './smartstring.plugins'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* the type for base 64
|
||||||
|
*/
|
||||||
|
export type TBase64Input = 'string' | 'base64' | 'base64uri'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* handle base64 strings
|
||||||
|
*/
|
||||||
|
export class Base64 {
|
||||||
|
private refString: string
|
||||||
|
constructor(inputStringArg, typeArg: TBase64Input) {
|
||||||
|
switch (typeArg) {
|
||||||
|
case 'string': // easiest case
|
||||||
|
this.refString = inputStringArg
|
||||||
|
break
|
||||||
|
case 'base64':
|
||||||
|
this.refString = plugins.jsBase64.decode(inputStringArg)
|
||||||
|
break
|
||||||
|
case 'base64uri':
|
||||||
|
this.refString = plugins.jsBase64.decode(inputStringArg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* the simple string (unencoded)
|
||||||
|
*/
|
||||||
|
get simpleString() {
|
||||||
|
return this.refString
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* the base64 encoded version of the original string
|
||||||
|
*/
|
||||||
|
get base64String() {
|
||||||
|
return plugins.jsBase64.encode(this.refString)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* the base64uri encoded version of the original string
|
||||||
|
*/
|
||||||
|
get base64StringUri() {
|
||||||
|
return plugins.jsBase64.encodeURI(this.refString)
|
||||||
|
}
|
||||||
|
}
|
@ -1,17 +1,18 @@
|
|||||||
import "typings-global"
|
import * as plugins from './smartstring.plugins'
|
||||||
import plugins = require("./smartstring.plugins");
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* converts an erray of env strings from docker remote api to an usable object.
|
* converts an erray of env strings from docker remote api to an usable object.
|
||||||
* @param envArrayArg
|
* @param envArrayArg
|
||||||
* @returns {}
|
* @returns {}
|
||||||
*/
|
*/
|
||||||
export let makeEnvObject = function(envArrayArg:string[]){
|
export let makeEnvObject = function (envArrayArg: string[]) {
|
||||||
let returnObject = {};
|
let returnObject = {}
|
||||||
let regexString = /(.*)=(.*)/;
|
let regexString = /(.*)=(.*)/
|
||||||
for(let envKey in envArrayArg){
|
if (typeof envArrayArg !== 'undefined') {
|
||||||
let regexMatches = regexString.exec(envArrayArg[envKey]);
|
for (let envKey in envArrayArg) {
|
||||||
returnObject[regexMatches[1]] = regexMatches[2];
|
let regexMatches = regexString.exec(envArrayArg[envKey])
|
||||||
|
returnObject[regexMatches[1]] = regexMatches[2]
|
||||||
};
|
};
|
||||||
return returnObject;
|
}
|
||||||
};
|
return returnObject
|
||||||
|
}
|
||||||
|
@ -1,51 +1,62 @@
|
|||||||
import "typings-global"
|
import * as plugins from './smartstring.plugins';
|
||||||
import plugins = require("./smartstring.plugins");
|
|
||||||
|
|
||||||
export class Domain {
|
export class Domain {
|
||||||
fullName:string;
|
fullName: string
|
||||||
level1:string;
|
level1: string
|
||||||
level2:string;
|
level2: string
|
||||||
level3:string;
|
level3: string
|
||||||
level4:string;
|
level4: string
|
||||||
level5:string;
|
level5: string
|
||||||
protocol:string;
|
protocol: string
|
||||||
zoneName:string;
|
zoneName: string
|
||||||
//aliases
|
// aliases
|
||||||
topLevel:string;
|
topLevel: string
|
||||||
domainName;
|
domainName
|
||||||
subDomain;
|
subDomain
|
||||||
constructor(domainStringArg:string){
|
constructor(domainStringArg:string){
|
||||||
this.fullName = domainStringArg;
|
|
||||||
let regexMatches = domainRegex(domainStringArg);
|
let regexMatches = domainRegex(domainStringArg);
|
||||||
this.level1 = regexMatches[0];
|
this.fullName = ''
|
||||||
this.level2 = regexMatches[1];
|
for (let i = 1; i <= 5; i++) {
|
||||||
this.level3 = regexMatches[2];
|
if (regexMatches[i - 1]) {
|
||||||
this.level4 = regexMatches[3];
|
let localMatch = regexMatches[i - 1]
|
||||||
this.level5 = regexMatches[4];
|
this['level' + i.toString()] = localMatch
|
||||||
this.protocol = protocolRegex(domainStringArg)[1];
|
if (this.fullName === ''){
|
||||||
this.zoneName = this.level2 + "." + this.level1;
|
this.fullName = localMatch
|
||||||
|
} else {
|
||||||
|
this.fullName = localMatch + '.' + this.fullName
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this['level' + i.toString()] = undefined
|
||||||
|
};
|
||||||
|
};
|
||||||
|
this.protocol = protocolRegex(domainStringArg)
|
||||||
|
this.zoneName = this.level2 + '.' + this.level1
|
||||||
|
|
||||||
// aliases
|
// aliases
|
||||||
this.topLevel = this.level1;
|
this.topLevel = this.level1
|
||||||
this.domainName = this.level2;
|
this.domainName = this.level2
|
||||||
this.subDomain = this.level3;
|
this.subDomain = this.level3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let domainRegex = function(stringArg:string){
|
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 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);
|
let regexMatches = regexString.exec(stringArg)
|
||||||
regexMatches.reverse();
|
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){
|
let regexMatchesFiltered = regexMatches.filter(function(stringArg:string){
|
||||||
return(stringArg != "");
|
return(stringArg !== '')
|
||||||
});
|
});
|
||||||
return regexMatchesFiltered;
|
return regexMatchesFiltered
|
||||||
};
|
};
|
||||||
|
|
||||||
let protocolRegex = function(stringArg:string){
|
let protocolRegex = function(stringArg:string){
|
||||||
let regexString = /^([a-zA-Z0-9]*):\/\//;
|
let regexString = /^([a-zA-Z0-9]*):\/\//
|
||||||
let regexMatches = regexString.exec(stringArg);
|
let regexMatches = regexString.exec(stringArg)
|
||||||
console.log(regexMatches);
|
if(regexMatches) {
|
||||||
return regexMatches;
|
return regexMatches[1]
|
||||||
|
} else {
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,53 +1,52 @@
|
|||||||
import "typings-global"
|
import * as plugins from './smartstring.plugins'
|
||||||
import plugins = require("./smartstring.plugins");
|
|
||||||
|
|
||||||
/* ---------------------------------------------- *
|
/* ---------------------------------------------- *
|
||||||
* ------------------ classes ------------------- *
|
* ------------------ classes ------------------- *
|
||||||
* ---------------------------------------------- */
|
* ---------------------------------------------- */
|
||||||
export class GitRepo {
|
export class GitRepo {
|
||||||
host:string;
|
host: string
|
||||||
user:string;
|
user: string
|
||||||
repo:string;
|
repo: string
|
||||||
accessToken:string;
|
accessToken: string
|
||||||
sshUrl:string;
|
sshUrl: string
|
||||||
httpsUrl:string;
|
httpsUrl: string
|
||||||
constructor(stringArg:string,tokenArg?:string){
|
constructor(stringArg: string,tokenArg?: string) {
|
||||||
let regexMatches = gitRegex(stringArg);
|
let regexMatches = gitRegex(stringArg)
|
||||||
this.host = regexMatches[1];
|
this.host = regexMatches[1]
|
||||||
this.user = regexMatches[2];
|
this.user = regexMatches[2]
|
||||||
this.repo = regexMatches[3];
|
this.repo = regexMatches[3]
|
||||||
this.accessToken = tokenArg;
|
this.accessToken = tokenArg
|
||||||
this.sshUrl = gitLink(this.host,this.user,this.repo,this.accessToken, "ssh");
|
this.sshUrl = gitLink(this.host,this.user,this.repo,this.accessToken, 'ssh')
|
||||||
this.httpsUrl = gitLink(this.host,this.user,this.repo,this.accessToken, "https");
|
this.httpsUrl = gitLink(this.host,this.user,this.repo,this.accessToken, 'https')
|
||||||
};
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------- *
|
/* ---------------------------------------------- *
|
||||||
* ------------------ helpers ------------------- *
|
* ------------------ helpers ------------------- *
|
||||||
* ---------------------------------------------- */
|
* ---------------------------------------------- */
|
||||||
let gitRegex = function(stringArg:string){
|
let gitRegex = function(stringArg:string){
|
||||||
let regexString = /([a-zA-Z0-9\-\.]*)(?:\/|\:)([a-zA-Z0-9\-]*)(?:\/)([a-zA-Z0-9\-]*)(?:\.git)/;
|
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
|
||||||
};
|
}
|
||||||
|
|
||||||
let gitLink = function(hostArg:string, userArg:string, repoArg:string, tokenArg:string = "", linkTypeArg):string{
|
let gitLink = function(hostArg: string, userArg: string, repoArg: string, tokenArg: string = '', linkTypeArg): string{
|
||||||
let returnString;
|
let returnString
|
||||||
if (tokenArg !== ""){
|
if (tokenArg !== '') {
|
||||||
tokenArg = tokenArg + "@"
|
tokenArg = tokenArg + '@'
|
||||||
}
|
}
|
||||||
switch (linkTypeArg) {
|
switch (linkTypeArg) {
|
||||||
case "https":
|
case 'https':
|
||||||
returnString = "https://" +
|
returnString = 'https://' +
|
||||||
tokenArg + hostArg + "/" + userArg + "/" + repoArg + ".git";
|
tokenArg + hostArg + '/' + userArg + '/' + repoArg + '.git'
|
||||||
break;
|
break
|
||||||
case "ssh":
|
case 'ssh':
|
||||||
returnString = "git@" +
|
returnString = 'git@' +
|
||||||
hostArg + ":" + userArg + "/" + repoArg + ".git";
|
hostArg + ':' + userArg + '/' + repoArg + '.git';
|
||||||
break;
|
break
|
||||||
default:
|
default:
|
||||||
plugins.beautylog.error("Link Type " + linkTypeArg + " not known");
|
console.error('Link Type ' + linkTypeArg + ' not known')
|
||||||
break;
|
break
|
||||||
}
|
}
|
||||||
return returnString;
|
return returnString
|
||||||
};
|
}
|
||||||
|
64
ts/smartstring.indent.ts
Normal file
64
ts/smartstring.indent.ts
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
import * as plugins from './smartstring.plugins'
|
||||||
|
|
||||||
|
let splitString = (stringArg: string): string[] => {
|
||||||
|
let resultArray = stringArg.split('\n')
|
||||||
|
return cleanStringArray(resultArray)
|
||||||
|
};
|
||||||
|
|
||||||
|
let joinString = (stringArrayArg: string[]): string => {
|
||||||
|
let resultString: string = ''
|
||||||
|
for (let line of stringArrayArg){
|
||||||
|
resultString = resultString + line + '\n'
|
||||||
|
}
|
||||||
|
return resultString
|
||||||
|
}
|
||||||
|
|
||||||
|
let cleanStringArray = (stringArrayArg: string[]): string[] => {
|
||||||
|
let testRegex = /^[\s]*$/
|
||||||
|
if (testRegex.test(stringArrayArg[0])) {
|
||||||
|
stringArrayArg.shift()
|
||||||
|
}
|
||||||
|
if (testRegex.test(stringArrayArg[stringArrayArg.length - 1])) {
|
||||||
|
stringArrayArg.pop()
|
||||||
|
};
|
||||||
|
return stringArrayArg
|
||||||
|
}
|
||||||
|
|
||||||
|
export let indent = (stringArg: string, spaceAmount: number): string => {
|
||||||
|
let resultString: string
|
||||||
|
return resultString
|
||||||
|
}
|
||||||
|
|
||||||
|
export let indentWithPrefix = (stringArg: string,prefixArg: string): string => {
|
||||||
|
let resultString: string
|
||||||
|
let stringArray = splitString(stringArg)
|
||||||
|
let resultArray: string[] = []
|
||||||
|
for (let stringItem of stringArray){
|
||||||
|
resultArray.push(prefixArg + stringItem)
|
||||||
|
};
|
||||||
|
resultString = joinString(resultArray)
|
||||||
|
return resultString
|
||||||
|
}
|
||||||
|
|
||||||
|
export let normalize = (stringArg: string): string => {
|
||||||
|
let resultString: string
|
||||||
|
let splitStringArray: string[] = splitString(stringArg)
|
||||||
|
let minCommonLeftOffset: number
|
||||||
|
let deIndentRegex = /^(\s*)/
|
||||||
|
let emptyLineRegex = /^(\s*)$/
|
||||||
|
for (let stringItem of splitStringArray){
|
||||||
|
let offsetString = deIndentRegex.exec(stringItem)[1]
|
||||||
|
if (
|
||||||
|
(typeof minCommonLeftOffset === 'undefined' || offsetString.length < minCommonLeftOffset)
|
||||||
|
&& !emptyLineRegex.test(stringItem)
|
||||||
|
) {
|
||||||
|
minCommonLeftOffset = offsetString.length
|
||||||
|
}
|
||||||
|
};
|
||||||
|
let resultSplitStringArray = []
|
||||||
|
for (let stringItem of splitStringArray) {
|
||||||
|
resultSplitStringArray.push(stringItem.substr(minCommonLeftOffset))
|
||||||
|
};
|
||||||
|
resultString = joinString(resultSplitStringArray)
|
||||||
|
return resultString
|
||||||
|
}
|
@ -1,3 +1,2 @@
|
|||||||
import "typings-global"
|
import 'typings-global'
|
||||||
|
export let jsBase64 = require('js-base64').Base64
|
||||||
export import beautylog = require("beautylog");
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import "typings-global"
|
import * as plugins from './smartstring.plugins'
|
||||||
import plugins = require("./smartstring.plugins");
|
|
||||||
|
|
||||||
export let regexReferencePath = /\/\/\/\s*<reference\s+path\s*=\s*["|'].*["|']\s*\/>\s*[\\n]?/
|
export let regexReferencePath = /\/\/\/\s*<reference\s+path\s*=\s*["|'].*["|']\s*\/>\s*[\\n]?/
|
@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"ambientDependencies": {
|
|
||||||
"node": "github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts",
|
|
||||||
"mocha": "github:Bartvds/tsd-deftools/typings/DefinitelyTyped/mocha/mocha.d.ts",
|
|
||||||
"colors": "github:DefinitelyTyped/DefinitelyTyped/colors/colors.d.ts"
|
|
||||||
}
|
|
||||||
}
|
|
3
tslint.json
Normal file
3
tslint.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": "tslint-config-standard"
|
||||||
|
}
|
Reference in New Issue
Block a user