Typescript class decorators for vuex modules

Overview

vuex-class-modules

This is yet another package to introduce a simple type-safe class style syntax for your vuex modules, inspired by vue-class-component.

npm

Installation

npm install vuex-class-modules

And make sure to have the --experimentalDecorators flag enabled.

Both a commonjs and a esm module build are published. If you have a webpack-based setup, it will use the esm modules by default.

Usage

Vuex modules can be written using decorators as a class:

// user-module.ts
import { VuexModule, Module, Mutation, Action } from "vuex-class-modules";

@Module
class UserModule extends VuexModule {
  // state
  firstName = "Foo";
  lastName = "Bar";

  // getters
  get fullName() {
    return this.firstName + " " + this.lastName;
  }

  // mutations
  @Mutation
  setFirstName(firstName: string) {
    this.firstName = firstName;
  }
  @Mutation
  setLastName(lastName: string) {
    this.lastName = lastName;
  }

  // actions
  @Action
  async loadUser() {
    const user = await fetchUser();
    this.setFirstName(user.firstName);
    this.setLastName(user.lastName);
  }
}

// register module (could be in any file)
import store from "path/to/store";
export const userModule = new UserModule({ store, name: "user" });

The module will automatically be registered to the store as a namespaced dynamic module when it is instantiated. (The modules are namespaced to avoid name conflicts between modules for getters/mutations/actions.)

The module can then be used in vue components as follows:

// MyComponent.vue
import Vue from "vue";
import { userModule } from "path/to/user-module.ts";

export class MyComponent extends Vue {
  get firstName() {
    return userModule.firstName; // -> store.state.user.firstName
  }
  get fullName() {
    return userModule.fullName; // -> store.getters["user/fullName]
  }

  created() {
    userModule.setFirstName("Foo"); // -> store.commit("user/setFirstName", "Foo")
    userModule.loadUser(); // -> store.dispatch("user/loadUser")
  }
}

What about rootState and rootGetters?

There are two ways to access other modules within a module, or dispatch actions to other modules.

  1. Simply import the instantiated module (suitable if the modules are instantiated in the same file as they are defined):
// my-module.ts

// import the module instance
import { otherModule } from "./other-module";

@Module
class MyModule extends VuexModule {
  get myGetter() {
    return otherModule.foo;
  }

  @Action
  async myAction() {
    await otherModule.someAction();
    // ...
  }
}
  1. The other module can be registered through the constructor (suitable if the modules are instantiated elsewhere)
// my-module.ts

// import the class, not the instance
import { OtherModule } from "./other-module";

@Module
export class MyModule extends VuexModule {
  private otherModule: OtherModule;

  constructor(otherModule: OtherModule, options: RegisterOptions) {
    super(options);
    this.otherModule = otherModule;
  }

  get myGetter() {
    return this.otherModule.foo;
  }

  @Action
  async myAction() {
    await this.otherModule.someAction();
    // ...
  }
}

// register-modules.ts
import store from "path/to/store";
import { OtherModule } from "path/to/other-module";
import { MyModule } from "path/to/my-module";

export const otherModule = new OtherModule({ store, name: "otherModule" });
export const myModule = new MyModule(otherModule, { store, name: "myModule" });

The local modules will not be part of the state and cannot be accessed from the outside, so they should always be declared private.

myModule.otherModule; // -> undefined

The store.watch function

Vuex can also be used ouside of vue modules. To listen for changes to the state, vuex provides a watch method.

This api is also provided by vuex-class-modules under the method name $watch to prevent name collisions. For example you can do:

import store from "./store";
import { MyModule } from "./my-module";

const myModule = new MyModule({ store, name: "MyModule" });
myModule.$watch(
  (theModule) => theModule.fullName,
  (newName: string, oldName: string) => {
    // ...
  },
  {
    deep: false,
    immediate: false,
  }
);

and to unwatch:

const unwatch = myModule.$watch(...);
unwatch();

Register options

  • name [required]: Name of the module
  • store [required]: The vuex store - which can just be instantiated as empty:
// store.ts
import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);
const store = new Vuex.Store({});

Module options

The module decorator can also accept options:

  • generateMutationSetters [optional, default=false]: Whether automatic mutation setters for the state properties should be generated, see Generate Mutation Setters.

Example

The vuex shopping cart example rewritten using vue-class-component and vuex-class-modules can be found in the example directory. Build the example using:

npm run example

Caveats of this

As for vue-class-component this inside the module is just a proxy object to the store. It can therefore only access what the corresponding vuex module function would be able to access:

@Module
class MyModule extends VuexModule {
  foo = "bar";

  get someGetter() {
    return 123;
  }
  get myGetter() {
    this.foo; // -> "bar"
    this.someGetter; // -> 123
    this.someMutation(); // undefined, getters cannot call mutations
    this.someAction(); // -> undefined, getters cannot call actions
  }

  @Mutation
  someMutation() {
    /* ... */
  }
  @Mutation
  myMutation() {
    this.foo; // -> "bar"
    this.someGetter; // -> undefined, mutations dont have access to getters
    this.someMutation(); // -> undefined, mutations cannot call other mutations
    this.someAction(); // -> undefined, mutations cannot call actions
  }

  @Action
  async someAction() {
    /* ... */
  }
  @Action
  async myAction() {
    this.foo; // -> "bar"
    this.someGetter; // -> 123
    this.myMutation(); // Ok
    await this.someAction(); // Ok
  }
}

Local Functions

The module can have non-mutation/action functions which can be used inside the module. As for local modules, these functions will not be exposed outside the module and should therefore be private. this will be passed on to the local function from the getter/mutation/action.

@Module
class MyModule extends VuexModule {
  get myGetter() {
    return myGetterHelper();
  }
  private myGetterHelper() {
    // same 'this' context as myGetter
  }

  @Mutation
  myMutation() {
    this.myMutationHelper();
  }

  // should be private
  myMutationHelper() { /* ... */}
}
const myModule = new MyModule({ store, name: "myModule });
myModule.myMutationHelper // -> undefined.

Generate Mutation Setters

As I often find myself writing a lot of simple setter mutations like

@Module
class UserModule extends VuexModule {
  firstName = "Foo";
  lastName = "Bar";

  @Mutation
  setFirstName(firstName: string) {
    this.firstName = firstName;
  }
  @Mutation
  setLastName(lastName: string) {
    this.lastName = lastName;
  }
}

a module option generateMutationSetters has been added, which when enabled will generate a setter mutation for each state property. The state can then be modified directly from the actions:

@Module({ generateMutationSetters: true })
class UserModule extends VuexModule {
  firstName = "Foo";
  lastName = "Bar";

  // Auto generated:
  // @Mutation set__firstName(val: any) { this.firstName = val }
  // @Mutation set__lastName(val: any) { this.lastName = val }

  @Action
  async loadUser() {
    const user = await fetchUser();
    this.firstName = user.firstName; // -> this.set__firstName(user.firstName);
    this.lastName = user.lastName; // -> this.set__lastName(user.lastName);
  }
}

NOTE: Setters are only generated for root-level state properties, so in order to update a property of an object you have to use a mutation or replace the entire object:

@Module({ generateMutationSetters: true })
class UserModule extends VuexModule {
  user = {
    id: 123,
    name: "Foo",
  };

  @Mutation
  setUserName() {
    this.user.name = "Bar"; // OK!
  }

  @Action
  async loadUser() {
    this.user.name = "Bar"; // Bad, the state is mutated outside a mutation
    this.user = { ...this.user, name: "Bar" }; // OK!
  }
}

License

MIT

Comments
  • Implement watch function

    Implement watch function

    So this is a basic implementation which works for me and does not give any type errors so far :-D It’s missing documentation and tests, which I can do as soon as the implementation is finished.

    I’m not completely happy with parts of this yet though.

    • Defining an empty prototype in VuexModule seems weird.
    • Also the types in the actual implementation are not perfect, as I was not able use generics there. Maybe it makes sense to use function instead of => at that point; or could that pose a problem?

    Concerns #4

    opened by bodograumann 12
  • Cannot read property 'state' of undefined

    Cannot read property 'state' of undefined

    This is not a bug, but a small problem I encountered myself, but I will encounter the cause of this problem, I think it may be due to

    // register module (could be in any file)

    This sentence is ambiguous, so please change it to

    //suggest to write it in the store.js file'

    When I write this code in the AppModule.ts file, I will be prompted Cannot read property 'state' of undefined

    AppModule.ts file content

    import {VuexModule, Module} from "vuex-class-modules"
    
    @Module({generateMutationSetters: true})
    export default class AppModule extends VuexModule {
      name:string = ''
    }
    
    // register module (could be in any file)
    import store from "./index"
    export const appModule = new AppModule({store, name: 'app'})
    
    

    And when I write this code into '@plugins/store/index', everything works fine

    import Vue from 'vue'
    import Vuex from 'vuex'
    import AppModule from "@/plugins/store/AppModule"
    import TalkModule from "@/plugins/store/TalkModule"
    import UserModule from "@/plugins/store/UserModule"
    
    Vue.use(Vuex)
    
    const store = new Vuex.Store({
      modules: {}
    })
    
    export const appModule = new AppModule({store, name: 'app'})
    export const talkModule = new TalkModule({store, name: 'talk'})
    export const userModule = new UserModule({store, name: 'user'})
    
    export default store
    

    I think the reason for this problem may be that you must instantiate the appModule before using it. If you write this paragraph in AppModule.ts, it will not be called, so you cannot instantiate the appModule object

    question 
    opened by social-uni 8
  • Testing Vuex actions returns undefined

    Testing Vuex actions returns undefined

    Hey there,

    I couldn't find anything on SO so I'd like to ask here about. I recently moved from plain JS to TS and therefore started using vuex-class-modules. However, all of my tests using VueX that were working previously just stopped working with vuex-class-modules.

    Is there anything special to take care about using vuex-class-modules?

    I'm running tests on Jest.


    After some more digging into vuex-class-modules I have to extend my question.

    Using plain Vuex actions get triggered in my test and do what they are supposed to do. However, when I set up my test with vuex-class-module, by defining a VuexModule and putting in everything I need, my test still breaks. Is there by any chance some kind of 'how to' for working with vuex-class-module?

    question 
    opened by yasin-mesut 8
  • $watch should return unwatch function

    $watch should return unwatch function

    https://vuex.vuejs.org/api/#watch

    To stop watching, call the returned unwatch function.

    I call $watch in a component created, and wanna stop it when destroyed

    opened by alsotang 8
  • Use commonjs module

    Use commonjs module

    This PR solves issue with using vuex-class-modules along with jest testing framework. Unfortunately Jest does not play well with ES6 module syntax. You can read more here: https://github.com/facebook/jest/issues/2550#issuecomment-381718006

    I think it's common approach to use commonjs module instead of es6 one.

    opened by budziam 7
  • Fix issue with getters when inheriting

    Fix issue with getters when inheriting

    This PR solves a problem with using getters in inherited classes. Problem is solved by iterating over prototype chain until VuexModule class.

    This PR solves https://github.com/gertqin/vuex-class-modules/issues/13

    opened by budziam 7
  • Memoization technique with vuex-class-modules

    Memoization technique with vuex-class-modules

    Hi, thanks for this awsome library. I would like to use it with memoizee to get some TTL caching. I am trying to use it this way:

    import memoize from "memoizee"
    import { VuexModule, Module, Mutation, Action } from "vuex-class-modules"
    import { Backend } from "@/store/modules/backends/models"
    import { BackendsAPI } from "./api"
    import store from "@/store"
    
    @Module
    class BackendsModule extends VuexModule {
      private _backends: Array<Backend> = []
    
      private _getBackendsMemoized = memoize(BackendsAPI.getBackends)
    
      public get backends() {
        return this._backends
      }
    
      @Mutation
      private setBackends(backends: Array<Backend>) {
        this._backends = backends
      }
    
      @Action
      public async fetchBackends() {
        const backends = await this._getBackendsMemoized()
        this.setBackends(backends)
      }
    }
    

    However, I get an error saying: TypeError: this._getBackendsMemoized is not a function. Any ideas how can I use memoization in a smart way with vuex-class-modules?

    opened by jacek-jablonski 7
  • Error when using hmr with vite

    Error when using hmr with vite

    Error: [vuex-class-module]: A module with name 'appModule' already exists.
        at VuexClassModuleFactory3.registerVuexModule (module-factory.js:137)
        at new accessor (module.js:28)
        at appModule.ts:66
    

    When doing a hot-reload,the above gets logged and the hot-reload is aborted.

    Im exporting the module like this: export const appModule = new AppModule({ store, name: 'appModule' })

    Any idea how i can"supress" this error and make it replace the module correctly?

    enhancement help wanted 
    opened by MartB 6
  • Create independent modules

    Create independent modules

    I really like the way this feature looks. Unfortunately I can not use it as-is.

    Afaics with vuex-class-modules you always have to import the applications main vuex store object. When the application is composed from multiple packages and the store assembled with store.registerModule, this is not possible.

    Do you think there is a way to define the vuex module independently of the main store and register it later?

    opened by bodograumann 6
  • Does it work with typescript module libs like vuex-class-modules?

    Does it work with typescript module libs like vuex-class-modules?

    the modules are dynamically loaded, nothing is being saved.

    import { VuexModule, Module, Mutation, Action } from 'vuex-class-modules';
    import store from '@/store';
    @Module
    export default class QuoteModule extends VuexModule {
    }
    export const quoteModule = new QuoteModule({ store, name: 'quote' });
    
    const vuexLocal = new VuexPersistence({
      storage: window.localStorage,
      modules: ['quote'],
    });
    
    export default new Vuex.Store({
      strict: true,
      /*
      Ideally if all your modules are dynamic
      then your store is registered initially
      as a completely empty object
      */
      plugins: [vuexLocal.plugin],
    });
    
    question 
    opened by pancake-boy 5
  • Vue Devtools not working

    Vue Devtools not working

    I recently switched to class based Vuex modules with this package. However, the Vuex tab of Vue Devtools doesn't seem to work anymore. It just shows the base state and no modules or mutations are recorded.

    Is this a known issue or just my project?

    Knipsel

    opened by reynard80 4
  • Bump json5, css-loader, ts-loader, vue-loader, webpack and webpack-cli

    Bump json5, css-loader, ts-loader, vue-loader, webpack and webpack-cli

    Bumps json5 to 2.2.3 and updates ancestor dependencies json5, css-loader, ts-loader, vue-loader, webpack and webpack-cli. These dependencies need to be updated together.

    Updates json5 from 2.1.3 to 2.2.3

    Release notes

    Sourced from json5's releases.

    v2.2.3

    v2.2.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)

    v2.2.0

    • New: Accurate and documented TypeScript declarations are now included. There is no need to install @types/json5. (#236, #244)
    Changelog

    Sourced from json5's changelog.

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1 [code, diff]

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)

    v2.2.0 [code, diff]

    • New: Accurate and documented TypeScript declarations are now included. There is no need to install @types/json5. (#236, #244)
    Commits
    • c3a7524 2.2.3
    • 94fd06d docs: update CHANGELOG for v2.2.3
    • 3b8cebf docs(security): use GitHub security advisories
    • f0fd9e1 docs: publish a security policy
    • 6a91a05 docs(template): bug -> bug report
    • 14f8cb1 2.2.2
    • 10cc7ca docs: update CHANGELOG for v2.2.2
    • 7774c10 fix: add proto to objects and arrays
    • edde30a Readme: slight tweak to intro
    • 97286f8 Improve example in readme
    • Additional commits viewable in compare view

    Updates css-loader from 3.2.0 to 6.7.3

    Release notes

    Sourced from css-loader's releases.

    v6.7.3

    6.7.3 (2022-12-14)

    Bug Fixes

    v6.7.2

    6.7.2 (2022-11-13)

    Bug Fixes

    • css modules generation with inline syntax (#1480) (2f4c273)

    v6.7.1

    6.7.1 (2022-03-08)

    Bug Fixes

    v6.7.0

    6.7.0 (2022-03-04)

    Features

    v6.6.0

    6.6.0 (2022-02-02)

    Features

    • added the hashStrategy option (ca4abce)

    v6.5.1

    6.5.1 (2021-11-03)

    Bug Fixes

    • regression with unicode characters in locals (b7a8441)
    • runtime path generation (#1393) (feafea8)

    v6.5.0

    ... (truncated)

    Changelog

    Sourced from css-loader's changelog.

    6.7.3 (2022-12-14)

    Bug Fixes

    6.7.2 (2022-11-13)

    Bug Fixes

    • css modules generation with inline syntax (#1480) (2f4c273)

    6.7.1 (2022-03-08)

    Bug Fixes

    6.7.0 (2022-03-04)

    Features

    6.6.0 (2022-02-02)

    Features

    • added the hashStrategy option (ca4abce)

    6.5.1 (2021-11-03)

    Bug Fixes

    • regression with unicode characters in locals (b7a8441)
    • runtime path generation (#1393) (feafea8)

    6.5.0 (2021-10-26)

    Features

    • support absolute URL in url() when experiments.buildHttp enabled (#1389) (8946be4)

    ... (truncated)

    Commits

    Updates ts-loader from 6.2.0 to 9.4.2

    Release notes

    Sourced from ts-loader's releases.

    v9.4.2

    9.4.1

    v9.4.0

    v9.3.1

    v9.3.0

    v9.2.9

    v9.2.8

    v9.2.7

    v9.2.6

    v9.2.5

    v9.2.4

    v9.2.3

    v9.2.2

    v9.2.1

    v9.2.0

    v9.1.2

    v9.1.1

    ... (truncated)

    Changelog

    Sourced from ts-loader's changelog.

    9.4.2

    9.4.1

    v9.4.0

    v9.3.1

    v9.3.0

    v9.2.9

    v9.2.8

    v9.2.7

    v9.2.6

    v9.2.5

    v9.2.4

    v9.2.3

    v9.2.2

    ... (truncated)

    Commits
    • 5e7220b Use custom transformer when building solution references (#1550)
    • 87a9fff add missing comma in README.md (#1551)
    • 620ee79 Typescript 4 9 (#1547)
    • 3319b91 chore(deps): bump minimatch in /examples/project-references-example (#1530)
    • 60e5784 Fix anchor jumping in README.md (#1521)
    • 5c66d2b Update outdated LICENSE year (#1513)
    • 64a4136 Bump terser from 4.8.0 to 4.8.1 in /examples/project-references-example (#1489)
    • cf1d227 Bump lodash in /test/execution-tests/babel-codeSplitting (#1435)
    • e76abb0 Add Tests and Remarks Concerning the New .cts And .mts File Extensions (#...
    • d9fcbfd Hotfix: Disable enhanced-resolve (#1506)
    • Additional commits viewable in compare view

    Updates vue-loader from 15.7.1 to 17.0.1

    Release notes

    Sourced from vue-loader's releases.

    v17.0.1

    Bug Fixes

    • add vue and @vue/compiler-sfc to optional peerDependencies (df0ded5), closes #1944
    • merge custom queries rather than appending (#1911) (9e4249a)

    v17.0.0

    Features

    • support reactivityTransform option (e07490e)

    BREAKING CHANGES

    v16.8.3

    Bug Fixes

    • HMR not working correctly with vue-class-component components (#1897) (76b1448)

    v16.8.2

    Bug Fixes

    v16.8.1

    Bug Fixes

    • fix template options resolving for ts (91f581b)

    v16.8.0

    Bug Fixes

    • hmr: fix hmr regression (bacc6a9)

    Features

    • enableTsInTemplate option (7613534)

      • When used with ts-loader, due to ts-loader's cache invalidation behavior, it sometimes prevents the template from being hot-reloaded in isolation, causing the component to reload despite only the template being edited. If this is annoying, you can set this option to false (and avoid using TS expressions in templates).

      • Alternatively, leave this option on (by default) and use esbuild-loader to transpile TS instead, which doesn't suffer from this problem (it's also a lot faster). However, do note you will need to rely on TS type checking from other sources (e.g. IDE or vue-tsc).

    v16.7.1

    Bug Fixes

    • remove pure annotation for custom blocks (cd891e5)

    ... (truncated)

    Changelog

    Sourced from vue-loader's changelog.

    17.0.1 (2022-10-28)

    Bug Fixes

    • add vue and @vue/compiler-sfc to optional peerDependencies (df0ded5), closes #1944
    • merge custom queries rather than appending (#1911) (9e4249a)

    17.0.0 (2021-12-12)

    Features

    • support reactivityTransform option (e07490e)

    BREAKING CHANGES

    16.8.3 (2021-11-04)

    Bug Fixes

    • HMR not working correctly with vue-class-component components (#1897) (76b1448)

    16.8.3 (2021-11-04)

    Bug Fixes

    • HMR not working correctly with vue-class-component components (#1897) (76b1448)

    16.8.2 (2021-10-26)

    Bug Fixes

    ... (truncated)

    Commits

    Updates webpack from 4.44.2 to 5.75.0

    Release notes

    Sourced from webpack's releases.

    v5.75.0

    Bugfixes

    • experiments.* normalize to false when opt-out
    • avoid NaN%
    • show the correct error when using a conflicting chunk name in code
    • HMR code tests existance of window before trying to access it
    • fix eval-nosources-* actually exclude sources
    • fix race condition where no module is returned from processing module
    • fix position of standalong semicolon in runtime code

    Features

    • add support for @import to extenal CSS when using experimental CSS in node
    • add i64 support to the deprecated WASM implementation

    Developer Experience

    • expose EnableWasmLoadingPlugin
    • add more typings
    • generate getters instead of readonly properties in typings to allow overriding them

    v5.74.0

    Features

    • add resolve.extensionAlias option which allows to alias extensions
      • This is useful when you are forced to add the .js extension to imports when the file really has a .ts extension (typescript + "type": "module")
    • add support for ES2022 features like static blocks
    • add Tree Shaking support for ProvidePlugin

    Bugfixes

    • fix persistent cache when some build dependencies are on a different windows drive
    • make order of evaluation of side-effect-free modules deterministic between concatenated and non-concatenated modules
    • remove left-over from debugging in TLA/async modules runtime code
    • remove unneeded extra 1s timestamp offset during watching when files are actually untouched
      • This sometimes caused an additional second build which are not really needed
    • fix shareScope option for ModuleFederationPlugin
    • set "use-credentials" also for same origin scripts

    Performance

    • Improve memory usage and performance of aggregating needed files/directories for watching
      • This affects rebuild performance

    Extensibility

    • export HarmonyImportDependency for plugins

    v5.73.0

    ... (truncated)

    Commits

    Updates webpack-cli from 3.3.12 to 5.0.1

    Release notes

    Sourced from webpack-cli's releases.

    v5.0.1

    5.0.1 (2022-12-05)

    Bug Fixes

    • make define-process-env-node-env alias node-env (#3514) (346a518)

    v5.0.0

    5.0.0 (2022-11-17)

    Bug Fixes

    • improve description of the --disable-interpret option (#3364) (bdb7e20)
    • remove the redundant utils export (#3343) (a9ce5d0)
    • respect NODE_PATH env variable (#3411) (83d1f58)
    • show all CLI specific flags in the minimum help output (#3354) (35843e8)

    Features

    • failOnWarnings option (#3317) (c48c848)
    • update commander to v9 (#3460) (6621c02)
    • added the --define-process-env-node-env option
    • update interpret to v3 and rechoir to v0.8
    • add an option for preventing interpret (#3329) (c737383)

    BREAKING CHANGES

    • the minimum supported webpack version is v5.0.0 (#3342) (b1af0dc), closes #3342
    • webpack-cli no longer supports webpack v4, the minimum supported version is webpack v5.0.0
    • webpack-cli no longer supports webpack-dev-server v3, the minimum supported version is webpack-dev-server v4.0.0
    • remove the migrate command (#3291) (56b43e4), closes #3291
    • remove the --prefetch option in favor the PrefetchPlugin plugin
    • remove the --node-env option in favor --define-process-env-node-env
    • remove the --hot option in favor of directly using the HotModuleReplacement plugin (only for build command, for serve it will work)
    • the behavior logic of the --entry option has been changed - previously it replaced your entries, now the option adds a specified entry, if you want to return the previous behavior please use webpack --entry-reset --entry './src/my-entry.js'

    v4.10.0

    4.10.0 (2022-06-13)

    Bug Fixes

    Features

    v4.9.2

    4.9.2 (2022-01-24)

    ... (truncated)

    Changelog

    Sourced from webpack-cli's changelog.

    5.0.1 (2022-12-05)

    Bug Fixes

    • make define-process-env-node-env alias node-env (#3514) (346a518)

    5.0.0 (2022-11-17)

    Bug Fixes

    • improve description of the --disable-interpret option (#3364) (bdb7e20)
    • remove the redundant utils export (#3343) (a9ce5d0)
    • respect NODE_PATH env variable (#3411) (83d1f58)
    • show all CLI specific flags in the minimum help output (#3354) (35843e8)

    Features

    • failOnWarnings option (#3317) (c48c848)
    • update commander to v9 (#3460) (6621c02)
    • added the --define-process-env-node-env option
    • update interpret to v3 and rechoir to v0.8
    • add an option for preventing interpret (#3329) (c737383)

    BREAKING CHANGES

    • the minimum supported webpack version is v5.0.0 (#3342) (b1af0dc), closes #3342
    • webpack-cli no longer supports webpack v4, the minimum supported version is webpack v5.0.0
    • webpack-cli no longer supports webpack-dev-server v3, the minimum supported version is webpack-dev-server v4.0.0
    • remove the migrate command (#3291) (56b43e4), closes #3291
    • remove the --prefetch option in favor the PrefetchPlugin plugin
    • remove the --node-env option in favor --define-process-env-node-env
    • remove the --hot option in favor of directly using the HotModuleReplacement plugin (only for build command, for serve it will work)
    • the behavior logic of the --entry option has been changed - previously it replaced your entries, now the option adds a specified entry, if you want to return the previous behavior please use webpack --entry-reset --entry './src/my-entry.js'

    4.10.0 (2022-06-13)

    Bug Fixes

    Features

    4.9.2 (2022-01-24)

    Bug Fixes

    • respect negatedDescription for flags from schema (#3102) (463b731)

    ... (truncated)

    Commits
    • 4a0f893 chore(release): publish new version
    • 9de982c chore: fix cspell
    • 32d26c8 chore(deps-dev): bump cspell from 6.15.1 to 6.16.0 (#3517)
    • 2788bf9 chore(deps-dev): bump eslint from 8.28.0 to 8.29.0 (#3516)
    • ac88ee4 chore(deps-dev): bump lint-staged from 13.0.4 to 13.1.0 (#3515)
    • 346a518 fix: make define-process-env-node-env alias node-env (#3514)
    • 3ec7b16 chore(deps): bump yeoman-environment from 3.12.1 to 3.13.0 (#3508)
    • c8adfa6 chore(deps-dev): bump @​types/node from 18.11.9 to 18.11.10 (#3513)
    • 0ad8cc2 chore(deps-dev): bump cspell from 6.15.0 to 6.15.1 (#3512)
    • d30f261 chore(deps-dev): bump ts-loader from 9.4.1 to 9.4.2 (#3511)
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump qs from 6.5.2 to 6.5.3

    Bump qs from 6.5.2 to 6.5.3

    Bumps qs from 6.5.2 to 6.5.3.

    Changelog

    Sourced from qs's changelog.

    6.5.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] utils.merge: avoid a crash with a null target and a truthy non-array source
    • [Fix] correctly parse nested arrays
    • [Fix] stringify: fix a crash with strictNullHandling and a custom filter/serializeDate (#279)
    • [Fix] utils: merge: fix crash when source is a truthy primitive & no options are provided
    • [Fix] when parseArrays is false, properly handle keys ending in []
    • [Fix] fix for an impossible situation: when the formatter is called with a non-string value
    • [Fix] utils.merge: avoid a crash with a null target and an array source
    • [Refactor] utils: reduce observable [[Get]]s
    • [Refactor] use cached Array.isArray
    • [Refactor] stringify: Avoid arr = arr.concat(...), push to the existing instance (#269)
    • [Refactor] parse: only need to reassign the var once
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] Clean up license text so it’s properly detected as BSD-3-Clause
    • [Docs] Clarify the need for "arrayLimit" option
    • [meta] fix README.md (#399)
    • [meta] add FUNDING.yml
    • [actions] backport actions from main
    • [Tests] always use String(x) over x.toString()
    • [Tests] remove nonexistent tape option
    • [Dev Deps] backport from main
    Commits
    • 298bfa5 v6.5.3
    • ed0f5dc [Fix] parse: ignore __proto__ keys (#428)
    • 691e739 [Robustness] stringify: avoid relying on a global undefined (#427)
    • 1072d57 [readme] remove travis badge; add github actions/codecov badges; update URLs
    • 12ac1c4 [meta] fix README.md (#399)
    • 0338716 [actions] backport actions from main
    • 5639c20 Clean up license text so it’s properly detected as BSD-3-Clause
    • 51b8a0b add FUNDING.yml
    • 45f6759 [Fix] fix for an impossible situation: when the formatter is called with a no...
    • f814a7f [Dev Deps] backport from main
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump decode-uri-component from 0.2.0 to 0.2.2

    Bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump loader-utils from 1.2.3 to 1.4.2

    Bump loader-utils from 1.2.3 to 1.4.2

    Bumps loader-utils from 1.2.3 to 1.4.2.

    Release notes

    Sourced from loader-utils's releases.

    v1.4.2

    1.4.2 (2022-11-11)

    Bug Fixes

    v1.4.1

    1.4.1 (2022-11-07)

    Bug Fixes

    v1.4.0

    1.4.0 (2020-02-19)

    Features

    • the resourceQuery is passed to the interpolateName method (#163) (cd0e428)

    v1.3.0

    1.3.0 (2020-02-19)

    Features

    • support the [query] template for the interpolatedName method (#162) (469eeba)
    Changelog

    Sourced from loader-utils's changelog.

    1.4.2 (2022-11-11)

    Bug Fixes

    1.4.1 (2022-11-07)

    Bug Fixes

    1.4.0 (2020-02-19)

    Features

    • the resourceQuery is passed to the interpolateName method (#163) (cd0e428)

    1.3.0 (2020-02-19)

    Features

    • support the [query] template for the interpolatedName method (#162) (469eeba)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump terser from 4.8.0 to 4.8.1

    Bump terser from 4.8.0 to 4.8.1

    Bumps terser from 4.8.0 to 4.8.1.

    Changelog

    Sourced from terser's changelog.

    v4.8.1 (backport)

    • Security fix for RegExps that should not be evaluated (regexp DDOS)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump jsdom from 16.4.0 to 16.7.0

    Bump jsdom from 16.4.0 to 16.7.0

    Bumps jsdom from 16.4.0 to 16.7.0.

    Release notes

    Sourced from jsdom's releases.

    Version 16.7.0

    • Added AbortSignal.abort(). (ninevra)
    • Added dummy x and y properties to the return value of getBoundingClientRect(). (eiko)
    • Implemented wrapping for textareaEl.value if the wrap="" attribute is specified. (ninevra)
    • Changed newline normalization in <textarea>s according to recent HTML Standard updates. (ninevra)
    • Fixed some bad cascade computation in getComputedStyle(). (romain-trotard)

    Version 16.6.0

    • Added parentNode.replaceChildren(). (@​ninevra)
    • Fixed jsdom's handling of when code running inside the jsdom throws null or undefined as an exception. (@​mbest)
    • Removed the dependency on the deprecated request package, in the process fixing several issues with the XMLHttpRequest implementation around header processing. Thanks go to @​tobyhinloopen, @​andrewaylett, and especially @​vegardbb, for completing this months-long effort!

    Version 16.5.3

    • Fixed infinite recursion when using MutationObservers to observe elements inside a MutationObserver callback.

    Version 16.5.2

    • Fixed Access-Control-Allow-Headers: * to work with XMLHttpRequest. (silviot)
    • Fixed xhr.response to strip any leading BOM when xhr.responseType is "json".
    • Fixed new Text() and new Comment() constructors to properly set the resulting node's ownerDocument.
    • Fixed customElements.whenDefined() to resolve its returned promise with the custom element constructor, per recent spec updates. (ExE-Boss)
    • Fixed parsing to ensure that <svg>\<template></template></svg> does not throw an exception, but instead correctly produces a SVG-namespace \<template> element.
    • Fixed domParser.parseFromString() to treat <noscript> elements appropriately.
    • Fixed form control validity checking when the control was outside the <form> element and instead associated using the form="" attribute.
    • Fixed legendEl.form to return the correct result based on its parent <fieldset>.
    • Fixed optionEl.text to exclude <script> descendants.
    • Fixed radio buttons and checkboxes to not fire input and change events when disconnected.
    • Fixed inputEl.indeterminate to reset to its previous value when canceling a click event on a checkbox or radio button.
    • Fixed the behavior of event handler attributes (e.g. onclick="...code...") when there were global variables named element or formOwner. (ExE-Boss)
    • On Node.js v14.6.0+ where WeakRefs are available, fixed NodeIterator to no longer stop working when more than ten NodeIterator instances are created, and to use less memory due to inactive NodeIterators sticking around. (ExE-Boss)

    Version 16.5.1

    • Fixed a regression that broke customElements.get() in v16.5.0. (fdesforges)
    • Fixed window.event to have a setter which overwrites the window.event property with the given value, per the specification. This fixes an issue where after upgrading to jsdom v16.5.0 you would no longer be able to set a global variable named event in the jsdom context.

    Version 16.5.0

    • Added window.queueMicrotask().
    • Added window.event.
    • Added inputEvent.inputType. (diegohaz)
    • Removed ondragexit from Window and friends, per a spec update.
    • Fixed the URL of about:blank iframes. Previously it was getting set to the parent's URL. (SimonMueller)
    • Fixed the loading of subresources from the filesystem when they had non-ASCII filenames.
    • Fixed the hidden="" attribute to cause display: none per the user-agent stylesheet. (ph-fritsche)
    • Fixed the new File() constructor to no longer convert / to :, per a pending spec update.
    • Fixed mutation observer callbacks to be called with the MutationObserver instance as their this value.
    • Fixed <input type=checkbox> and <input type=radio> to be mutable even when disabled, per a spec update.
    • Fixed XMLHttpRequest to not fire a redundant final progress event if a progress event was previously fired with the same loaded value. This would usually occur with small files.
    • Fixed XMLHttpRequest to expose the Content-Length header on cross-origin responses.
    • Fixed xhr.response to return null for failures that occur during the middle of the download.
    • Fixed edge cases around passing callback functions or event handlers. (ExE-Boss)
    • Fixed edge cases around the properties of proxy-like objects such as localStorage or dataset. (ExE-Boss)

    ... (truncated)

    Changelog

    Sourced from jsdom's changelog.

    16.7.0

    • Added AbortSignal.abort(). (ninevra)
    • Added dummy x and y properties to the return value of getBoundingClientRect(). (eiko)
    • Implemented wrapping for textareaEl.value if the wrap="" attribute is specified. (ninevra)
    • Changed newline normalization in <textarea>s according to recent HTML Standard updates. (ninevra)
    • Fixed some bad cascade computation in getComputedStyle(). (romain-trotard)

    16.6.0

    • Added parentNode.replaceChildren(). (ninevra)
    • Fixed jsdom's handling of when code running inside the jsdom throws null or undefined as an exception. (mbest)
    • Removed the dependency on the deprecated request package, in the process fixing several issues with the XMLHttpRequest implementation around header processing. Special thanks to vegardbb for completing this months-long effort!

    16.5.3

    • Fixed infinite recursion when using MutationObservers to observe elements inside a MutationObserver callback.

    16.5.2

    • Fixed Access-Control-Allow-Headers: * to work with XMLHttpRequest. (silviot)
    • Fixed xhr.response to strip any leading BOM when xhr.responseType is "json".
    • Fixed new Text() and new Comment() constructors to properly set the resulting node's ownerDocument.
    • Fixed customElements.whenDefined() to resolve its returned promise with the custom element constructor, per recent spec updates. (ExE-Boss)
    • Fixed parsing to ensure that <svg>\<template></template></svg> does not throw an exception, but instead correctly produces a SVG-namespace \<template> element.
    • Fixed domParser.parseFromString() to treat <noscript> elements appropriately.
    • Fixed form control validity checking when the control was outside the <form> element and instead associated using the form="" attribute.
    • Fixed legendEl.form to return the correct result based on its parent <fieldset>.
    • Fixed optionEl.text to exclude <script> descendants.
    • Fixed radio buttons and checkboxes to not fire input and change events when disconnected.
    • Fixed inputEl.indeterminate to reset to its previous value when canceling a click event on a checkbox or radio button.
    • Fixed the behavior of event handler attributes (e.g. onclick="...code...") when there were global variables named element or formOwner. (ExE-Boss)
    • On Node.js v14.6.0+ where WeakRefs are available, fixed NodeIterator to no longer stop working when more than ten NodeIterator instances are created, and to use less memory due to inactive NodeIterators sticking around. (ExE-Boss)

    16.5.1

    • Fixed a regression that broke customElements.get() in v16.5.0. (fdesforges)
    • Fixed window.event to have a setter which overwrites the window.event property with the given value, per the specification. This fixes an issue where after upgrading to jsdom v16.5.0 you would no longer be able to set a global variable named event in the jsdom context.

    16.5.0

    • Added window.queueMicrotask().
    • Added window.event.
    • Added inputEvent.inputType. (diegohaz)
    • Removed ondragexit from Window and friends, per a spec update.
    • Fixed the URL of about:blank iframes. Previously it was getting set to the parent's URL. (SimonMueller)
    • Fixed the loading of subresources from the filesystem when they had non-ASCII filenames.
    • Fixed the hidden="" attribute to cause display: none per the user-agent stylesheet. (ph-fritsche)
    • Fixed the new File() constructor to no longer convert / to :, per a pending spec update.
    • Fixed mutation observer callbacks to be called with the MutationObserver instance as their this value.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(v1.3.0)
Owner
null
Sets of ECMAScript / Typescript decorators that helps you write Vue component easily.

VueTyped VueTyped contains sets of ECMAScript / Typescript decorators that helps you write Vue component easily. What is this for? Normaly you wrote V

vue-typed 102 Nov 10, 2022
Typescript decorators to make vue feel more typescripty

vue-typescript Typescript decorators to make vue play nice with typescript Why do i need this? I built this mostly to remove the red squiggles on VSCo

Francis O'Brien 361 Nov 11, 2022
[DEPRECATED] Decorators to use TypeScript classes as Vue.js 2.0 components

❄️ DEPRECATION NOTICE ❄️ Official TypeScript support has been added to Vue.js 2.x and the old bindings have been changed considerably since this repos

Locoslab GmbH 26 Aug 6, 2021
Use decorators to create Vue Apollo smart queries

Vue Apollo Decorators Use decorators to create Vue Apollo smart queries Documentation Install yarn add vue-apollo-decorators npm i vue-apollo-decorato

stefanwimmer128 3 Jan 17, 2022
TypeScript declaration file that allows using 'import' with *.vue files

vue-typescript-import-dts TypeScript declaration file that allows using import with *.vue files. The primary use case is a bundler environment like we

Locoslab GmbH 28 Feb 23, 2022
Typescript decorator for Vue mixins

Vue Mixin Decorator This library fully depends on vue-class-component. Most ideas and code are stolen borrowed from @HerringtonDarkholme and his av-ts

Rhys Lloyd 56 Nov 20, 2022
Generate TypeScript declaration files for .vue files

vuedts This repository is fork from https://github.com/ktsn/vuetype Because that repository has not maintained now. Generate TypeScript declaration fi

null 20 Jan 5, 2022
Vue 3 Typescript example with Axios: CRUD application with Vue Router

Vue 3 Typescript example with Axios & Vue Router: Build CRUD App Build a Vue.js 3 Typescript example to consume REST APIs, display and modify data usi

null 67 Dec 15, 2022
A simple and self-hosted web radio management, inspired by AzuraCast. Developed with Typescript

ThRadio ThRadio is strongly inspired by AzuraCast, I started the project because AzuraCast had many features that I didn't need. For this project the

ThRadio 21 Jan 2, 2023
Vue 3 + TypeScript + TailwindCss Components Library UI

How To npm install tailpieces or yarn add tailpieces Add tailpieces to purge Road Map Add tests to project Add translations to classes and components

Alan Rezende 4 Feb 14, 2022
Vue, Nodejs, Mongodb con Typescript

MEVN with Typescript Requeriments To execute this project you need Mongodb installed and running. Installation of the project Execute the following co

Fazt Web 8 Oct 27, 2022
Vue 3 Typescript example with Axios & Vue Router: Build CRUD App

Vue 3 Typescript example with Axios & Vue Router: Build CRUD App Build a Vue.js 3 Typescript example to consume REST APIs, display and modify data usi

JS-IT 5 Oct 24, 2022
Using highcharts with Vue and TypeScript

highcharts Project setup yarn install Compiles and hot-reloads for development yarn serve Compiles and minifies for production yarn build Lints and

Rockhopper-Penguin 1 Dec 14, 2022
Test vue typescript - Hotel views

vue test https://test-vue-typescript.vercel.app/ Project setup npm install Compiles and hot-reloads for development npm run serve Compiles and minif

Jhoel Flores Alejo 26 May 5, 2022
First time trying TypeScript with Vue.

Hyrule Jobs Project setup npm install Compiles and hot-reloads for development npm run serve Compiles and minifies for production npm run build Lin

Ayoub Abidi 1 Sep 27, 2022
OctopusTravel vue nuxt.js typescript decorator vuetify project

Nuxt.js codebase(typescript, class-component) containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec a

Dsafuanova 1 Feb 13, 2022
Various tools for typescript, nodejs and vuejs development

Various tools for typescript, nodejs and vuejs development

null 1 Apr 10, 2019
TypeScript/ES7 Decorators to create Vuex modules declaratively

vuex-module-decorators Detailed Guide: https://championswimmer.in/vuex-module-decorators/ Typescript/ES7 Decorators to make Vuex modules a breeze Patr

Arnav Gupta 1.8k Jan 7, 2023
:chart_with_upwards_trend: Feature scoped Vuex modules to have a better organization of business logic code inside Vuex modules based on Large-scale Vuex application structures @3yourmind

vuex-feature-scoped-structure by igeligel A Vue.js/Vuex project showcasing a complex but scalable store structure. This project was created in coopera

Kevin Peters 225 Oct 14, 2022
Seamless mapping of class names to CSS Modules inside of Vue components.

English | ???? 中文 Vue CSS Modules Seamless mapping of class names to CSS modules inside of Vue components. yarn add vue-css-modules CDN: jsDelivr | UN

Jay Fong 38 Oct 16, 2021