diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..c7fb5e9 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,53 @@ +version: 2.0 +jobs: + build: + + docker: + - image: circleci/php:7.1.9-browsers + working_directory: ~/repo + steps: + - checkout + - run: + name: Setup dependencies + command: | + sudo composer self-update + composer install -n --prefer-dist + - run: + name: Setup Code Climate test-reporter + command: | + curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter + chmod +x ./cc-test-reporter + - run: + name: Run tests + command: | + sudo docker-php-ext-enable xdebug + ./cc-test-reporter before-build + sudo vendor/bin/phpunit --coverage-clover clover.xml + ./cc-test-reporter after-build --coverage-input-type clover --exit-code $? + +version: 2 +jobs: + build: + environment: + CC_TEST_REPORTER_ID: b291228f0a903ae688099b7d801a631cf3a0929d6c0b7792010c52192ee5d50f + docker: + - image: circleci/node:7.10 + working_directory: ~/repo + + steps: + - checkout + - restore_cache: + keys: + - v1-dependencies-{{ checksum "package.json" }} + - v1-dependencies- + + - run: npm install + + - save_cache: + paths: + - node_modules + key: v1-dependencies-{{ checksum "package.json" }} + + - run: npm run test + + # publish to npm diff --git a/.gitignore b/.gitignore index 3091757..a4916e6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules -coverage \ No newline at end of file +coverage +dist \ No newline at end of file diff --git a/dist/client.d.ts b/dist/client.d.ts deleted file mode 100644 index 846d2ac..0000000 --- a/dist/client.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Module } from 'snabbdom/modules/module'; -export declare const makeModule: (styleElementSelector?: string | undefined) => Module; -declare const _default: Module; -export default _default; diff --git a/dist/client.js b/dist/client.js deleted file mode 100644 index bf014d7..0000000 --- a/dist/client.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var utils_1 = require("./utils"); -var removeServersideStyles = function (styleElementSelector) { - var previousStyleTarget = document.querySelector(styleElementSelector); - if (previousStyleTarget) { - previousStyleTarget.remove(); - } -}; -var makeDomUpdater = function (styleElementSelector) { - if (styleElementSelector === void 0) { styleElementSelector = undefined; } - return function (oldNode, newNode) { - if (newNode.elm) { - var elm_1 = newNode.elm; - utils_1.updateVNode(newNode, function (name, value) { return elm_1.setAttribute(name, value); }); - } - if (typeof styleElementSelector !== 'undefined') { - removeServersideStyles(styleElementSelector); - } - }; -}; -exports.makeModule = function (styleElementSelector) { - if (styleElementSelector === void 0) { styleElementSelector = undefined; } - // Serverside styles are only removed the first time updateDOM is called - var domUpdater = utils_1.alternateFirstInvocation(function () { return makeDomUpdater(styleElementSelector); }, function () { return makeDomUpdater(); }); - var updateDOM = function (oldNode, newNode) { return domUpdater.next().value(oldNode, newNode); }; - return { - create: updateDOM, - update: updateDOM, - }; -}; -exports.default = exports.makeModule(); diff --git a/dist/server.d.ts b/dist/server.d.ts deleted file mode 100644 index 3d4370e..0000000 --- a/dist/server.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { VNode } from 'snabbdom/vnode'; -export declare const serverSideCssModule: (node: VNode, attributes: Map) => void; -export declare const collectStyles: (node: VNode) => string; diff --git a/dist/server.js b/dist/server.js deleted file mode 100644 index 13f92b7..0000000 --- a/dist/server.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var typestyle_1 = require("typestyle"); -var utils_1 = require("./utils"); -exports.serverSideCssModule = function (node, attributes) { - return utils_1.updateVNode(node, function (name, value) { return attributes.set(name, value); }); -}; -exports.collectStyles = function (node) { - var instance = typestyle_1.createTypeStyle(); - traverseVNode(node, instance); - return instance.getStyles(); -}; -var traverseVNode = function (node, instance) { - var data = node.data; - if (data.css) { - instance.style(data.css); - } - if (node.children) { - node.children.forEach(function (child) { return traverseVNode(child, instance); }); - } -}; diff --git a/dist/snabbdom-typestyle.d.ts b/dist/snabbdom-typestyle.d.ts deleted file mode 100644 index 0197d66..0000000 --- a/dist/snabbdom-typestyle.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Module } from 'snabbdom/modules/module'; -import { default as cssModule } from './client'; -export * from './types'; -export * from './server'; -export declare const makeClientSideCssModule: (styleElementSelector?: string | undefined) => Module; -export default cssModule; diff --git a/dist/snabbdom-typestyle.js b/dist/snabbdom-typestyle.js deleted file mode 100644 index 66502f3..0000000 --- a/dist/snabbdom-typestyle.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -var client_1 = require("./client"); -__export(require("./server")); -exports.makeClientSideCssModule = client_1.makeModule; -exports.default = client_1.default; diff --git a/dist/types.d.ts b/dist/types.d.ts deleted file mode 100644 index 802e519..0000000 --- a/dist/types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { VNodeData } from 'snabbdom/vnode'; -import { types } from 'typestyle'; -export interface StyledVNodeData extends VNodeData { - css?: types.NestedCSSProperties; -} -export declare type Style = types.NestedCSSProperties; diff --git a/dist/types.js b/dist/types.js deleted file mode 100644 index c8ad2e5..0000000 --- a/dist/types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/dist/utils.d.ts b/dist/utils.d.ts deleted file mode 100644 index 8370217..0000000 --- a/dist/utils.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { VNode } from 'snabbdom/vnode'; -export declare const makeClassName: (oldClassName: string, newClassName: string) => string; -export declare const updateVNode: (node: VNode, attributeAccessor: (attribute: string, className: string) => void) => void; -export declare function alternateFirstInvocation(first: () => any, subsequent: () => any): IterableIterator; diff --git a/dist/utils.js b/dist/utils.js deleted file mode 100644 index dfd8618..0000000 --- a/dist/utils.js +++ /dev/null @@ -1,58 +0,0 @@ -"use strict"; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [0, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var typestyle_1 = require("typestyle"); -exports.makeClassName = function (oldClassName, newClassName) { - return (oldClassName + " " + newClassName).trim(); -}; -exports.updateVNode = function (node, attributeAccessor) { - var data = node.data; - if (data.css) { - data.props = data.props || {}; - attributeAccessor('class', exports.makeClassName(data.props.className || '', typestyle_1.style(data.css))); - } -}; -function alternateFirstInvocation(first, subsequent) { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, first()]; - case 1: - _a.sent(); - _a.label = 2; - case 2: - if (!true) return [3 /*break*/, 4]; - return [4 /*yield*/, subsequent()]; - case 3: - _a.sent(); - return [3 /*break*/, 2]; - case 4: return [2 /*return*/]; - } - }); -} -exports.alternateFirstInvocation = alternateFirstInvocation;